不知道哪里错了,数据类型
程序代码:
#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; }
原本输入数字是错误的,可是被保留到下一次循环中了,出现好多次信息的执行判断