【发布时间】:2017-06-04 20:57:24
【问题描述】:
这是我的代码
int main(){
int N,i,radius,diameter,count =0;
char str[20];
char color[N][20];
printf("Get the num : ");
scanf("%d",&N);
printf("Enter the mesage\n");
for(i=0;i<N;i++){
fgets(color[i],20,stdin);
}
for(i=0;i<N;i++){
printf("%s",color[i]);
}
return 0;
}
给定的输入是:
N = 3
red 50,
50 green,
blue 50
这里的问题是,如果N 为3,则for 循环中的fgets 只会执行两次。如果我评论scanf 语句,则不会出现此问题。谁能解释一下是什么导致了这个问题以及如何解决?
【问题讨论】:
-
scanf("%d%*c", &N); char color[N][20]; -
告诉我你给 fputs 的确切三个输入
-
问题是您使用
scanf进行用户输入。 -
请不要那样做!不要在建议的修复中进行编辑。您刚刚使 cmets/answers 无效!有人应该回滚。
-
char color[N][20] N是什么值?