不知道哪里错了,数据类型
程序代码:#include<stdio.h>
main()
{
int a[26][26][26];//整个for循环就是定义三维数组的值,为0
int x,y,z,i;
char c[100];
int m[100];
for(x=0;x<26;x++){
for(y=0;y<26;y++){
for(z=0;z<26;z++){
a[x][y][z]=0;
}
}
}
x=y=z=0;//此处可省略,还是加上吧
a[25][18][5]=1;//定义搜索的值,zsf的值为1,用于下面的选择语句
a[0][0][0]=2;
goto kaishi;//连接到开始语句
if(0){//如果不用goto语句的话,永远不可能执行本句
cuowu://错误时执行本条语句
printf("\n输入错误,请重新输入:\n");
}
if(0){
kaishi://最开始时执行的语句
printf("请输入查找人姓名的第一个字母:");
}
x=y=z=0;//忘了当初为什么加这条语句了
for(i=0;i<100;i++){//定义输入的长度为100
c[i]=getchar();
if(c[i]=='\n')//如果遇到回车时会跳出循环
break;
m[i]=(int)c[i];//强制字符转换
if(m[i]>=9&&m[i]<=0){//如果是数字,则无条件跳转到到显示错误语句上
goto cuowu;
}
if(m[i]>64&&m[i]<91){//小写转化成26个字母对应的数字
m[i]=m[i]-63;
}
else if(m[i]>96&&m[i]<123){//大写转化成26个字母对应的数字
m[i]=m[i]-97;
}
else goto cuowu;//如果都不是,则显示错误
}
if(i<=2){//如果输入的长度小于3位,显示错误
goto cuowu;
}
x=m[0],y=m[1],z=m[2];
switch(a[x][y][z])
{
case 1:
printf("\nXXX:电话:11111111111111111 住址:XXXXXXXXXXXXX\n");
break;
case 2:
printf("2\n");
break;
case 0:
printf("\n无此人数据!\n");
break;
}
m[0]=0,m[1]=0,m[2]=0;
goto kaishi;
}原本输入数字是错误的,可是被保留到下一次循环中了,出现好多次信息的执行判断







