一个程序,让用户输入5 句话,并计算出最长和最短的两句字符数,代码写完有哪里错了
#include <stdio.h>int main()
{
int i=0,n=0,max,min,v;
char str={0};
for (i;i<5;i++)
{
printf("请输入第%d句话:\n",i+1);
while ((str=getchar())!='\n')
{
n++;
}
if (n>max)
{
max=n;
}
else (n<min)
{
min=n;
}
n=0;
}
i=0;
printf("你输入了下面五句话:\n");
for (i=0;i<5;i++)
{
printf("%s",str);
}
printf("其中最长的有%d个字符\n",max);
printf("其中最短的有%d个字符\n",min); 刚来这个论坛 说说我看出的问题:
1.max,min,v没有初始化;
2.printf("%s",str); 改为printf("%s",str);, printf输出%s时用指针作为参数;
3.我感觉用fgets输入字符串更好一点,要是楼主没学过的话可以跳过这条{:10_254:}
全是错。。。
基础语法没学吗 ,函数一对花括号都漏了 本帖最后由 自始而终 于 2021-7-21 17:21 编辑
#include <stdio.h>
#include <string.h>
int main()
{
int i=0,n=0,max,min,v;
char str={0};
printf("请输入第1句话: ");
fgets(str,100,stdin);
putchar('\n');
max=strlen(str);min==strlen(str);
for (int i=1;i<5;i++)
{
printf("请输入第%d句话:\n",i+1);
fgets(str,100,stdin);
n=strlen(str);
if (n>max)
{
max=n;
}
else if (n<min)
{
min=n;
}
n=0;
}
printf("你输入了下面五句话:\n");
for (i=0;i<5;i++)
{
printf("%s\n",str);
}
printf("其中最长的有%d个字符\n",max);
printf("其中最短的有%d个字符\n",min);
} 自始而终 发表于 2021-7-21 17:09
刚来这个论坛 说说我看出的问题:
1.max,min,v没有初始化;
2.printf("%s",str); 改为printf("%s",st ...
不初始化默认是0吧,这还没学到指针和fget函数{:10_272:},应该不用这些 #include <stdio.h>
int main()
{
int i=0,n=0,max,min,v;
char str={0};
for (i;i<5;i++)
{
printf("请输入第%d句话:\n",i+1);
while ((str=getchar())!='\n')
{
n++;
}
if (n>max)
{
max=n;
}
else (n<min)
{
min=n;
}
n=0;
}
i=0;
printf("你输入了下面五句话:\n");
for (i=0;i<5;i++)
{
printf("%s",str);
}
printf("其中最长的有%d个字符\n",max);
printf("其中最短的有%d个字符\n",min);
这问题是也没见你哪里写了输入啊...不管是是scanf还是神马都没有哇,上哪去输入啊 烫烫烫的锟斤拷 发表于 2021-7-22 09:27
这问题是也没见你哪里写了输入啊...不管是是scanf还是神马都没有哇,上哪去输入啊
getchar()不是输入吗? a13766971255 发表于 2021-7-22 19:53
getchar()不是输入吗?
哦哦看错了{:10_260:} a13766971255 发表于 2021-7-21 17:57
不初始化默认是0吧,这还没学到指针和fget函数,应该不用这些
你这属于局部变量,默认是随机值,只有全局变量才默认是0,你可以分别在主函数内外定义一个整型变量,打印看看就知道了 而且可以用strlen函数计算长度,比较就可以得出大小
页:
[1]