C语言比较字符串大小
#include<stdio.h>#include<string.h>
#define M 100
int main()
{
char str1,str2;
int a,i;
printf("please input str1:");
gets(str1);
printf("please input str2:");
gets(str2);
for(i=0;i<M; )
{if(str1!=str2)
a=str1-str2;
else i++;
}
printf("%d",a);
return 0;
}为什么不能运行
没太懂你是想怎么比较字符串,不能运行的原因是因为你代码中如果满足if的调节,i永远不会增加,所以在那死循环了 就只比较第一个不同的 那么可以把i++上的else去掉,在上面的if语句里的末尾加break #include<stdio.h>
#include<string.h>
#define M 100
int main()
{
char str1, str2;
int a, i;
printf("please input str1:");
gets_s(str1);
printf("please input str2:");
gets_s(str2);
for (i = 0; i < M; )
{
if (str1 != str2) {
a = str1 - str2;
break;
}
i++;
}
printf("%d", a);
return 0;
} 最好把a初始化为0 #include<stdio.h>
#include<string.h>
#define M 100
int main()
{
char str1,str2;
int a,i;
printf("please input str1:");
gets(str1);
printf("please input str2:");
gets(str2);
for(i=0;i<M; i++)
{
if(str1 != str2) {
a = str1-str2;
break;
}
}
printf("%d\n",a);
return 0;
}
楼主的代码可能是死循环了。因为如果进入if分支,那么i是不会自增的,那么这个时候就是死循环了。
页:
[1]