永发信息网

C语言逻辑错误。。

答案:1  悬赏:30  手机版
解决时间 2021-11-27 15:11
  • 提问者网友:蓝琪梦莎
  • 2021-11-27 00:29
C语言逻辑错误。。
最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-11-27 01:00
// 终于看懂了,评委不超过10人,输入成绩后,由低到高排序,再输出平均成绩

void main(void)
{
int i, j, k, n, a[10], *p, *q;    //全程q没有使用过
double sum = 0;
j = 0, p = a; // 题主,全程p==a,为何需要一个多余的p呢
                // 每个for循环都初始化了j,这个初始化可以淘汰
printf("输入评委人数(小于等于10):");
scanf("%d", &i);
if(i>10)
printf("error"), return; // 建议报错后退出更好
for(j=1; j<=i; j++)
{
printf("%d:", j);
scanf("%d", p+j-1); // 这里应该要减一,不然a[0]空间没利用
}
p = a; // 完全多余的一条语句,请用a代替所有的p
for(j = 0; j<= i-1; j++)
for(k = i-2; k>=0; k++) // 这应该是冒泡排序法吧
if(p[k]>p[k+1])
{
n = p[k]; // 其实*(p+n)形式也行
p[k] = p[k+1];
p[k+1] = n;
}
for(j=1; j printf("%d ", p[j]); // 这里不要一直输出p[0]
for(j=1; j sum += p[j];
printf("Final:%f", sum/(i-2));
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯