
C程序求指错 比较两个数组大小
#include<stdio.h>voidmain(){chara[20],b[20];inti,c,k=0;gets(a);gets(b);for(i=0;i<=19;...
#include<stdio.h>
void main()
{char a[20],b[20];
int i,c,k=0;
gets(a);gets(b);
for(i=0;i<=19;i++)
{if(a[i]!=b[i])
{k++;
c=a[i]-b[i];
if(c>0) printf("a>b");
if(c<0) printf("a<b");}break;}
if(k==0) printf("a=b");
return 0;
}
输出结果为何只能比较第一个字符????求指错谢谢 展开
void main()
{char a[20],b[20];
int i,c,k=0;
gets(a);gets(b);
for(i=0;i<=19;i++)
{if(a[i]!=b[i])
{k++;
c=a[i]-b[i];
if(c>0) printf("a>b");
if(c<0) printf("a<b");}break;}
if(k==0) printf("a=b");
return 0;
}
输出结果为何只能比较第一个字符????求指错谢谢 展开
展开全部
这是因为被你的break语句强行退出了。原来的break语句是无条件执行的,所以就只有第一个字符被比较了。下面的程序已经改正,并运行通过。
#include<stdio.h>
void main()
{char a[20],b[20];
int i,c,k=0;
gets(a);gets(b);
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
{if(a[i]!=b[i])
{k++;
c=a[i]-b[i];
if(c>0) printf("a>b\n");
if(c<0) printf("a<b\n");
break;
}
}
if(a[i]==b[i]) printf("a=b\n");
return 0;
}
#include<stdio.h>
void main()
{char a[20],b[20];
int i,c,k=0;
gets(a);gets(b);
for(i=0;a[i]!='\0'&&b[i]!='\0';i++)
{if(a[i]!=b[i])
{k++;
c=a[i]-b[i];
if(c>0) printf("a>b\n");
if(c<0) printf("a<b\n");
break;
}
}
if(a[i]==b[i]) printf("a=b\n");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询