m0_58584878 2021-05-28 13:34 采纳率: 47.4%
浏览 76
已采纳

编写程序,使用变长数组计算任意多个学生的最高、最低和平均成绩。

编写程序,使用变长数组计算任意多个学生的最高、最低和平均成绩。要求:

1)通过直到型循环do. .. while i 进行学生成绩的循环输入

2)用户只输入学生成绩而不输入学生人数

3)平均成绩保留1位小数输出。

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-05-28 14:24
    关注

    代码如下,如有帮助,请采纳一下,谢谢。

    #include <stdio.h>
    int main()
    {
    	int* score = new int[4];
    	int sc,max,min,i;
    	float avg = 0;;
    	int size = 4;  //数组初始大小
    	int nmb = 0;  //人数
    	do 
    	{
    		printf("请输入学生成绩:");
    		scanf("%d",&sc);
    		if (sc < 0) //输入负数退出
    		{
    			break;
    		}
    		if (nmb == 0)
    		{
    			max = sc;
    			min = sc;
    		}else 
    		{
    			if(sc > max)
    				max = sc;
    			if(sc < min)
    				min = sc;
    		}
    		//数组中插入数据
    		if (nmb < size)
    		{
    			score[nmb] = sc;
    			nmb++;
    		}else
    		{
    			int *pnew = new int[size * 2]; //size扩充2倍
    			size *= 2;
    			for(i = 0;i < nmb; i++)
    				pnew[i] = score[i];
    			pnew[nmb] = sc;
    			nmb++;
    			delete[] score;
    			score = pnew;
    			pnew = 0;
    		}
    		//求平均值
    		for (i = 0; i < nmb; i++)
    			avg += score[i];
    		avg = avg / nmb;
    		printf("最大值:%d,最小值:%d,平均值:%.1f\n",max,min,avg);
    	} while (true);
    
    	delete[] score;
    	score = 0;
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?