我应该编写一个简单的C程序来读取一个整数并循环n次来处理该字符串,但是如果我使用scanf整数,第一个循环会自动传递一个空字符串,但如果我使用一个常量编号循环正常工作。请有人向我解释一下发生了什么事。
#include <stdio.h>
#define MAX 80
int main(){
char sentence[MAX];
int n, i;
scanf("%d", &n);
for(i=0; i<3; i++){//it loops with empty string automatically if I replace 3 with n
gets(sentence);
printf("%s\n", sentence);
}
}
最佳答案
试试这个代码
#include<stdio.h>
#include<conio.h>
#define MAX 80
void main()
{
char sentence[MAX];
int n,i;
clrscr();
scanf("%d",&n);
for(i=0;i<n;i++)
scanf(" %99[^\n]",sentence);
printf("\n%s\n",sentence);
getch();
}
关于C 数组循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869055/