请教老鸟们!关于return的一个错误需要大家的指正!!
各位好:
我编写了一个“学生职业规划测试系统”,在做题中,需要累加分数而做了一个累加器之类的东西,打算做一题加一次分,加分后用return继续作题,一直到做题完毕!可是编译的时候错误,恳请大家的帮忙!
void T_2()
{ char i,a,b,c,d;
printf( "你是否非常清楚自己的能力、性格等方面的优势与劣势?\n ");
printf( "A:非常清楚\n ");
printf( "B:比较清楚\n ");
printf( "C:不太清楚\n ");
printf( "D:不清楚\n ");
score();
//添加一个printf( "%d ",&sum); 打印的总是12477。
}
void score() //我认为这个函数错误
{
char ch,a,b,c;
int i=0,sum=0;
ch=getchar();
if(ch=a)
i=i+3;
else if(ch=b)
i=i+2;
else if(ch=c)
i=i+1;
else
i=i+0;
sum=sum+i;
return;
}
恳请高手指点错误!
不知道我的这个思路是否错误,如果哪位有什么好的思路或者有样板参考小弟不胜感激!!
[解决办法]
...楼上说的不错,一行一行看吧
void score()
{
char ch; //a,b,c随后程序中均没用到,不需定义
int i=0,sum=0;
ch=getchar();
if(ch== 'a ') //=是赋值运算符,==才是相等比较,判断逻辑是:ch是否等于a 这个字母的ASCII码值,而不是是否等于a这个变量
i+=3; //i+=3即代表i=i+3,从楼主的书写习惯来看似乎是basic的语法
else if(ch== 'b ') //以下几行均同上
i+=2;
else if(ch== 'c ')
i+=1;
else
//i值不变i就不用进行运算了
sum+=i; //理由同前
return sum; //虽然是将sum返回,但调用中没有定义变量接受,故逻辑上这是一个无效的返回值
}
[解决办法]
void score() { ... return sum;} //无类型函数不应该有返回值!
int sum; //考虑定义成全程变量
[解决办法]
void score() //我认为这个函数错误
{
char ch,a,b,c;
int i=0,sum=0;
ch=getchar();
if(ch== 'a ')
i+=3;
else if(ch== 'b ')
i+=2;
else if(ch== 'c ')
i+=1;
else
i=i+0;
sum+=i;
return sum;
}
努力呀,楼主,基础欠火候!