|
发表于 2018-11-11 19:56:31
|
显示全部楼层
吧res定义成字符就不报错了
代码我改了下
- #include<stdio.h>
- #include<string.h>
- #include<malloc.h>
- int fun( char *a , char *b)//密码正确时返回1,不正确时返回2
- {
- int i=0;
- // printf("%s %s\n",a,b);
- for( i=0;i<4;i++)
- {
-
- if(a[i]!=b[i])
- return 0;
- }
- return 1;
- }
- int main()
- {
- char *a = "m123";//设定密码为m123
- char res[4];
- printf("请输入四位数密码:\n");
- scanf("%s",&res);
- // printf("%d",sizeof(res));
- if (strlen(res)!=4)
- {
- puts("wrong");
- return 0;
- }
- /* while(1)
- {
- printf("字符数错误,请重新输入:\n");
- scanf("%s",&res);
- if (strlen(res)==4)
- break;
- }
- */
- // res = (char *) malloc(10*sizeof(char));
- /*printf("\n");
- puts(res);*/
- if(fun(a,res)==0)//此行报错,大概意思是参数类型不匹配
- puts("wrong");
- if(fun(a,res)==1)//此行原因同上
- puts("right");
- // free(res);
- return 0;
- }
复制代码 |
|