找出最长的字符串。输入5个字符串,输入其中最长的字符串。输入字符串调用函数scanf。错在哪?为什么?怎么改?谢谢。
#include <stdio.h>
#include <string.h >
int main()
{
int i = 0;
char s[80] = {""}, max[80] = {""};
printf("输入五个字符串:\n");
scanf("%s",s);
strcpy(max,s);
for(i=1; i<5; i++)
{
scanf("%s",s);
if( strcmp(max,s)<0 )
strcpy(max,s);
}
printf("最大的字符串是:%s \n",max);
return 0;
}
扩展资料:
printf函数使用注意事项
1、域宽
%d:按整型数据的实际长度输出。
如果想输出指定宽度可以指定域宽,%md-->m域宽,打印出来以后,在控制台上,显示m位;
如果要打印的数的位数如果超过我们设定m则原样输出;
如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:
如果m为正数,则左对齐(左侧补空白);
如果m为负数,则右对齐(右侧补空白)。
2、转义字符
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。
如:printf("%f%%",1.0/3);输出结果:0.333333%。
#include <stdio.h>
#include <string.h>
int main(void)
{
int i,j=0,max=0;
char str[5][20];
for(i=0;i<5;i++)
{
printf(" 请输入第 %d 个字符串:",i+1);
scanf("%s",str[i]);
if(!max)
max=strlen(str[i]);
if(max<strlen(str[i]))
{
max=strlen(str[i]);
j=i;
}
}
printf(" 输入的 5 个字符串中最长的字符串是:%s\n",str[j]);
return 0;
}
if(k[i]>max) //不是k(i)