永发信息网

各位大侠快来看额,这个程序

答案:1  悬赏:40  手机版
解决时间 2021-05-08 07:13
  • 提问者网友:树红树绿
  • 2021-05-07 20:15

这个是书上的例子

#include<stdio.h>
#include<stdio.h>
void main()
{
char string[20];
char str[3][20];
int i;
for(i=0;i<3;i++)
gets(str[i]);
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("%nthe largest string is:\n%s\n",string);
}
感觉那个FOR用了和没用没什么区别;因为后面直接用的是str[0],str[1];

这个是我写的

#include<stdio.h>
#include<string.h>
void main()
{
char string[30],str1[30],str2[30],str3[30];
gets (str1);
gets (str2);
gets (str3);
if(strcmp(str1,str2)>0)
strcpy(string,str1);
else
strcpy(string,str2);
if(strcpy(str3,string)>0)
strcpy(string,str3);
printf("%s\n",string);
}
两个运行结果一样,只不过改了一维和二维;

哪位高手能给我讲解下吗?希望能详细点额! 在这先说声谢谢哈

最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-05-07 21:17

例子的程序只是给了一个3行20列的数组


for循环是这样的,当i=0是,gets获取的输入填入到str0,0~str0,19之间


当i=0是,gets获取的输入填入到str1,0~str,19之间,如此类推


之后在str这个二位数组里面进行每一行内容的比较,得出最大的一行,将数据赋值给string



而你的是用了3次gets分别获取3个一维数组的数据,你的也只是3个一维数组的比较

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯