乘务员飞机舱门跌落:(c语言)有何问题?

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 12:33:03
想做一个超小型的测生字游戏.但结果全不正确
main ()
{
char c2[10],b2[10]={"employment"};
int i ;

scanf("%s",c2);

for (i=0;i<=10;i++)
if (c2[i]=b2[i]) printf("+");
else printf("-");
}

他们在误导你啊 在c 中字符串是不能用==测试的
所以你的程序应该是
#include "stdio.h"
#include "string.h" 字符串的头文件
main ()
{
char c2[10],b2[10]={"employment"};
scanf("%s",c2);
if(strcmp(c2,b2)==0)
print("hehe");
else
print("wuwu");
}
strcmp 是比较字符串的函数 如果第一个和第二个一样就返回0
如果不一样判断一直到不一样的位置 如果第一个小就返回负数
如果第二个小就返回正数
例如strcmp("aaaa","bbbb");
那么两个字符串到第一位就不一样了,所以a比b的ascii码小,返回的是负数

if (c2[i]=b2[i]) ...
这里应该是

if (c2[i]==b2[i])...

初学者最容易犯的错误,= 是赋值号,== 才是等于号。

赋值运算符 :=
等号 :==
if (c2[i]=b2[i]) 应该改为 if (c2[i]==b2[i])

1.
循环中,i从0开始直接<10就可以了;
2.
=是赋值运算符,
判断两个字符是否相同,应该用恒等,即:==

main ()
{
char c2[10],b2[10]={"employment"};
int i ;

scanf("%s",c2);

for (i=0;i<10;i++)
if (c2[i]==b2[i]) printf("+");
else printf("-");
}

if (c2[i]=b2[i]) ...
这里应该是

if (c2[i]==b2[i])...

初学者最容易犯的错误,= 是赋值号,== 才是等于号。

第一,字符串的位数应该是字符的个数加1,不要忘了'\0',所以
main ()
{
char c2[11],b2[11]={"employment"};
int i ;

scanf("%s",c2);

for (i=0;i<=10;i++)
if (c2[i]==b2[i]) printf("+");
else printf("-");
}

第二就是if中的==