你可以试一下我帮你改的这个,我帮你解释了你的错误地方

程序代码:
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "string.h"
void main()
{
int mm(char x[],char y[]);//把x改成x[],y改成y[]
char a[20],b[20]={"abcd1234"};
printf("请输入密码:");
gets(a);
while(1)
{
if(mm(a,b)==1)//下面加了个括号,a[20]改成a,b[20]改成b,因为当你在另外的函数中处理整个数组元素时,只需要用数组名作为函数实参
{
printf("登陆成功!\n");
break;
}// 如果break在大括号外面时,就不属于if里的语言,因为语句的结束标志是分号;
if(mm(a,b)==0)//这里和上面一样
printf("密码错误!\n");
break;//这里也要加个break;要不然会不停的循环,也就是死循环
}
}
int mm(char x[],char y[])//把x改成x[],y改成y[],用数组接收数组,
{
int c;
if(strcmp(x,y)==0)
c=1;
else
c=0;
return(c);
}
//没有提示错误信息,但运行时出错!帮忙看一下问题出在哪……