为了账号安全,请及时绑定邮箱和手机立即绑定

C语言入门6-12综合练习 出现这个错误term does not evaluate to a function

#include<stdio.h>
int main()
{
     
	int num;
	double average;
	int score[10]={67,98,75,63,82,79,81,91,66,84};
	num=score[0]+score[1]+score[2]+score[3]+score[4]+score[5]+score[6]+score[7]+score[8]+score[9];
	average=num/10;
	printf("总分:num=%d\n",num);
	printf("平均分:average=%d\n",average);
    
       int i,j;
   for(i=8;i>=0;i--)
   {
	    for(j=0;j<=i;j++)
		{
           if(score[j]<score[j+1])
		   {
			   int a;
			   a=score[j];
				score[j]=score[j+1];
				score[j+1]=a;
		   }
		}

   }

   

	for(i=0;i<=9;i++)
	{
		printf("%d \n",score(i));
		
	}
	
    printf("最高分:%d\n",score(0));
	printf("最低分:%d\n",score(9));
   return 0;
}

这是我写的代码  可是放在VC6.0编译时 :

 printf("最高分:%d\n",score(0));

 printf("最高分:%d\n",score(0));

printf("最低分:%d\n",score(9));

这三句代码同时出现相同的错误:term does not evaluate to a function

我不知道怎么改 麻烦大神求解一下


正在回答

2 回答

问题1:average定义的是double 类型,输出却是整型,没对上,把%d改成%f(控制下小数点位数可改为%.2f)。(还有这里average其实定义成float类型就好了,没必要到double)。

问题2:就是问题问的,排序和最低最高分输出提示错误。

这是因为这三个score(i),score(0),score(9)出错了,这是要输出数组元素,是score[i],score[0],score[9]才对

问题3:把问题1和2改了之后,程序编译后,你会发现输出的平均分:average=78.00(按%.2f控制2位小数点位数输出的情况),但实际相除下来,average=78.60才对,问题源自average=num/10,num是整型,10也是,所以num/10也是整型,虽然定义了average为浮点型,但这时num/10还是取了整值再赋给average。解决办法1就是强制转换数据类型:average=(double) num/10 【注意这里写成(double)(num/10)可不对。还可以考虑如(int)(x+y)写成(int)x+y有何区别】。办法2就是average=(double) num/10.0【直接把除数10变成浮点型,这样方便,其实这里相当于average=num/(double)10】。



0 回复 有任何疑惑可以回复我~
#1

落叶伤剑 提问者

1. 大神 请受小弟一拜!你圆满解决了我的问题 刚才编译已经通过了 得到了想要的结果 2. 现在越来越感觉是 当局者迷旁观者清啊!自己写的程序 有了错怎么都看不出来 可是一旦问题被大神指点后 发现都是些低级错误 一看就懂 问题1和问题3在《C语言入门》里都讲过 问题2实在是太低级 但是自己就是看不出来!想不到!好笨! 3.另外上面这个程序 本宝宝花了一个半小时才写出来 而且我也知道求总分绝对不是我上面那种笨方法(应该用到for循环) 但是想不出来 哎 学完了入门课 感觉基础还是不扎实 还得努力!
2016-12-04 回复 有任何疑惑可以回复我~
#2

落叶伤剑 提问者

对了 大神 你的问题3办法2 里的average=(double) num/10.0中的(double)应该可以省去 %f可以存6位小数 好像是吧
2016-12-04 回复 有任何疑惑可以回复我~
#3

慕后端3326841 回复 落叶伤剑 提问者

这里(double)确实不该要,本来把10写作10.0就是为了简单嘛,应该省去,我这里多余了。 %f默认的保留6位小数。
2016-12-04 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//5843f8dd00017d5906630431.jpg

已经运行成功了    么么哒  嘻嘻嘻    不努力就去死!!!!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926258    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

C语言入门6-12综合练习 出现这个错误term does not evaluate to a function

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信