吧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;
}
|