首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问老鸟们!关于return的一个异常需要大家的指正!

2012-02-17 
请教老鸟们!关于return的一个错误需要大家的指正!!各位好:我编写了一个“学生职业规划测试系统”,在做题中,

请教老鸟们!关于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;
}

努力呀,楼主,基础欠火候!

热点排行