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

有大神告诉我下我这代码哪里错了吗

#include <stdio.h>
int all(int score[])
{
   int i;
   int sum=0;
   for(i=0;i<10;i++)
   {
       sum+=score[i];
   }
   return sum;
}
int most(int score)
{
    int i,j;
    for(i=8;i>=0;i--)
    {
        for(j=0;j<=i;j++)
        {
            if(score[j]>score[j+1])
            {
                int temp;
                temp=score[j+1];
                score[j+1]=score[j];
                score[j]=temp;
            }
        }
    }
    printf("排列之后顺序为\n");
    for(i=0;i<10;i++)
    {
        if(i!=9)
        printf("%d,",arr[i]);
        else
        printf("%d",arr[i]);
    }
    printf("最低分为%d",arr[1]);
    printf("最高分为%d",arr[9]);
}
int main()
{
    int score[N]={67,98,75,63,82,79,81,91,66,84};
    most();
    printf("考试总分为%d,平均分为%d",(all),(all)/10);
    return 0;
}

正在回答

7 回答

你的程序本身有几个问题,首先,你在定义函数的时候score后面没有中括号[],这样后面 你打score[i]他会提示找不到指针(编译报错说的,我也不懂);其次,你在定义得到most函数中用了未定义的arr[];再次,你most函数中第一个for循环条件写错“;”写成“,”;还有你输出总分和平均分的时候用的方式不对,你用(all)他会输出all的ASCLL码(我也不清楚,反正输出一串不相干的数,应该是这样),所以我用了定义值得方式;哦还有,你不等号打错了;这些是程序本身的问题,还有就是输出问题,降序排列score[j]<score[j+1]才执行换位,最小的是score[9],最大的是score[0],嗯,应该就这些吧=-=。

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

拎着自己飞呀 提问者

谢谢 非常感谢大佬 还是小白所以还很多地方犯错误
2017-11-06 回复 有任何疑惑可以回复我~

这是我做这道题时敲的代码。

0 回复 有任何疑惑可以回复我~
#include <stdio.h>
int i,j;
int sum,num;
int main()
{
    int score[10]={67,98,75,63,82,79,81,91,66,84};
    for(i=9;i>=0;i--)
    {
        for(j=0;j<=i;j++)
        {
            if(score[j]<score[j+1])
            {
                int tamp;
                tamp=score[j];
                score[j]=score[j+1];
                score[j+1]=tamp;
            }
        }
    }
    printf("成绩降序排序为\n");
    for(i=0;i<10;i++)
    {
        printf("%d ",score[i]);
        sum+=score[i];
    }
    num=sum/10;
    printf("\n成绩总分为\n%d",sum);
    printf("\n成绩平均分为\n%d",num);
    printf("\n成绩最高分和最低分分别为\n%d,%d",score[0],score[9]);
    return 0;
}


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

我也是才自学入门的,一起努力吧

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

你看看你复制粘贴的时候出了什么问题吧,还有我把sum和num定义在函数外表示他们俩是全局变量,如果定义在定义的函数里,输出的时候它会显示找不到sum和num的值

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

http://img1.sycdn.imooc.com//5a01486a0001a39808610468.jpghttp://img1.sycdn.imooc.com//5a0148cd00018f4a11720483.jpg我用慕课网和vs2013都没问题啊

0 回复 有任何疑惑可以回复我~
#include <stdio.h>
int num;
int sum = 0;
int all(int score[])
{
	int i;
	for (i = 0; i < 10; i++)
	{
		sum += score[i];
	}
	num = sum / 10;
	return sum;
}
int most(int score[])
{
	int i, j;
	for (i = 9;i>=0; i--)
	{
		for (j = 0; j <= i; j++)
		{
			if (score[j] <score[j+1])
			{
				int temp;
				temp = score[j+1];
				score[j+1] = score[j];
				score[j] = temp;
			}
		}
	}
	printf("排列之后顺序为\n");
	for (i = 0; i < 10; i++)
	{
		if (i!=9)
			printf("%d,", score[i]);
		else
			printf("%d", score[i]);
	}
	printf("最低分为%d", score[9]);
	printf("最高分为%d", score[0]);
}
int main()
{
	int score[10]={67,98,75,63,82,79,81,91,66,84};
	most(score);
	all(score);
	printf("考试总分为%d,平均分为%d",sum,num);
	return 0;
}


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

拎着自己飞呀 提问者

为什么我运行你这代码也是错的 你的sum,还有num直接定义在函数外可以吗
2017-11-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有大神告诉我下我这代码哪里错了吗

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