scanf("%d\n",&n);的问题
本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最小的字符串:
Min is: 最小字符串
输入样例:
5
Li
Wang
Zha
Jin
Xian
输出样例:
Min is: Jin
#include <stdio.h>
#include <string.h>
int main()
{
int n;
int i;
char *min=NULL;
scanf("%d\n",&n);
char str={0};
for(i=0;i<n;i++){
gets(str);
}
min=str;
for(i=1;i<n;i++){
if(strcmp(min,str)>0){
min=str;
}
}
printf("Min is: %s",min);
}
为什么scanf("%d\n",&n);改为scanf("%d",&n);结果返回空指针NULL?
因为你会输入一个\n啊 scanf会接收你输入完之后的'\n',也就是回车,他也会接收的
页:
[1]