调试函数
Debugging a function
在这段 C 代码中,我试图提取出用户的信息。这段代码有两部分:一个是获取正确的账户值,另一个是打印出用户信息。
#include <stdio.h>
#include <cs50.h>
#include <string.h>
int acc();
这部分是存储信息的,必须用i提取信息;从第二部分得到 i 值后,代码将打印出用户信息。
int main()
{
int i ;
acc();
int acc[6] = {12341 ,12342 ,12342 ,12344,12345 };
string name[6] = {"aabb" , "ccdd" ,"eeff","gghh","iijj"};
string password[6] = {"a1b2c3" , "a2b2c3" ,"A3b2c3" , "A4b2c3" , "A5b2c3" };
int initial[6] = {5000 , 1000 , 25000 , 700 , 100000};
printf("info = %d,%s,%s,%d\n" , acc[i] ,name[i] , password[i] , initial[i]);
return 0;
}
在这部分中,代码试图获取用户输入,帐户号,如果帐户正确,则会设置 i 值。
int acc()
{
// finding the account and the other information
int acc , i ;
printf("Account number: ");
scanf("%d\n" , &acc);
if (acc == 12341)
{
i = 0 ;
}
else if (acc == 12342)
{
i = 1;
}
else if (acc == 12343)
{
i = 2;
}
else if (acc == 12344)
{
i = 3;
printf("lose\n");
}
else if (acc == 12345)
{
i = 4;
}
return i;
};
关于您的信息,每次我打印出代码时,终端总是给我相同的值,即:
info = 12341 ,"aabb" , "a1b2c3" , 5000 .
在这一行
acc();
您正在丢弃从函数 acc()
返回的内容,并使变量 i
未初始化。
未初始化的 non-static 局部变量的值是不确定的,使用它们会调用 未定义的行为。
您必须将函数 acc()
的返回值分配给变量 i
,而不是该行,如下所示:
i = acc();
在这段 C 代码中,我试图提取出用户的信息。这段代码有两部分:一个是获取正确的账户值,另一个是打印出用户信息。
#include <stdio.h>
#include <cs50.h>
#include <string.h>
int acc();
这部分是存储信息的,必须用i提取信息;从第二部分得到 i 值后,代码将打印出用户信息。
int main()
{
int i ;
acc();
int acc[6] = {12341 ,12342 ,12342 ,12344,12345 };
string name[6] = {"aabb" , "ccdd" ,"eeff","gghh","iijj"};
string password[6] = {"a1b2c3" , "a2b2c3" ,"A3b2c3" , "A4b2c3" , "A5b2c3" };
int initial[6] = {5000 , 1000 , 25000 , 700 , 100000};
printf("info = %d,%s,%s,%d\n" , acc[i] ,name[i] , password[i] , initial[i]);
return 0;
}
在这部分中,代码试图获取用户输入,帐户号,如果帐户正确,则会设置 i 值。
int acc()
{
// finding the account and the other information
int acc , i ;
printf("Account number: ");
scanf("%d\n" , &acc);
if (acc == 12341)
{
i = 0 ;
}
else if (acc == 12342)
{
i = 1;
}
else if (acc == 12343)
{
i = 2;
}
else if (acc == 12344)
{
i = 3;
printf("lose\n");
}
else if (acc == 12345)
{
i = 4;
}
return i;
};
关于您的信息,每次我打印出代码时,终端总是给我相同的值,即:
info = 12341 ,"aabb" , "a1b2c3" , 5000 .
在这一行
acc();
您正在丢弃从函数 acc()
返回的内容,并使变量 i
未初始化。
未初始化的 non-static 局部变量的值是不确定的,使用它们会调用 未定义的行为。
您必须将函数 acc()
的返回值分配给变量 i
,而不是该行,如下所示:
i = acc();