【发布时间】:2016-04-21 06:57:20
【问题描述】:
int iPassCode, iNumber = 0;
void main()
{
iNumber = get_name();
iPassCode = get_code();
name_strucutre();
}
int get_name()
{
printf("Please enter your name: ");
cName[MAX_NAME_LEN] = getchar();
if(strcmp(cName,"leia"||"Leia"))
{
iNumber = 1;
}
if(strcmp(cName,"darth"||"Darth"))
{
iNumber = 2;
}
if(strcmp(cName,"r2d2"||"R2D2"))
{
iNumber = 3;
}
if(strcmp(cName,"solo"||"Solo"))
{
iNumber = 4;
}
if(strcmp(cName,"jabba"||"Jabba"))
{
iNumber = 5;
}
if(strcmp(cName,"yoda"||"Yoda"))
{
iNumber = 6;
}
else
{
iNumber = 0;
}
return(iNumber);
}
int get_code()
{
printf("Please enter your pass code: ");
scanf("%d", iPassCode);
return (iPassCode);
}
我在这里得到了几个函数。我认为其中之一是get name() 函数导致程序崩溃。现在我要做的就是从用户那里收集姓名和密码,然后将信息传回main()。我不想把整个名字传回去,尽管只是一个单数。
【问题讨论】:
-
MAX_NAME_LEN??? -
"leia"||"Leia"没有做你认为它正在做的事情。您需要两个单独的strcmp调用,或stricmp变体。 (而且你拼错了某个西斯领主的小写版本)。 -
#define MAX_NAME_LEN 42忘了说我一开始就有这个 -
首先,学会使用调试器!