c语言:输入n个学生成绩,求最低分|练习题

2023-12-21 14:32:18

一、题目
编写程序,从键盘输入n个学生的分数,并输出其中的最小值。

如图:

272e33b8863a470fb1006c7ca0b4974a.jpg

?

二、思路分析
1、将学生成绩由小到大排序
2、排序后,第一位学生成绩为最小值

?

三、代码图片【带注释】

13a863fe406140739b494b60095ef241.jpg

?

四、源代码【带注释】

#include <stdio.h>
//思路分析:
//1、将学生成绩由小到大排序,
//2、排序后,第一位学生成绩为最小值
int main()
{
? ? int arricon[50];
? ? int num=0;
? ? int i=1;

? ? //如果输入的数小于1个(无法比较)则重新输入
? ? for(;;)
? ? {
? ? ? ? printf("请输入学生人数:");
? ? ? ? scanf("%d",&num);
? ? ? ? if(num>1)
? ? ? ? ? ? break;
? ? ? ? printf("\n请输入一个大于1的数。\n");
? ? }
? ? printf("\n请输入%d名学生的分数:\n",num);

? ? //输入num个学生的成绩
? ? do
? ? {
? ? ? ? printf("第%i名学生分数是:",i);
? ? ? ? scanf("%d",&arr[i]);
? ? ? ? i++;
? ? }
? ? while(i<=num);
? ? minNum(arr,num);//调用最小值函数
}

//先用冒泡排序法从小到大排列成绩
//排序以后,第一位学生的成绩即为最小值
int minNum(int arr[],int num)
{
? ? int temp=0;
? ? for(int i=0; i<num-1; i++)
? ? {
? ? ? ? for(int j=0; j<num-1-i; j++)
? ? ? ? {
? ? ? ? ? ? if(arr[j]>arr[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? temp=arr[j+1];
? ? ? ? ? ? ? ? arr[j+1]=arr[j];
? ? ? ? ? ? ? ? arr[j]=temp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? //打印排序后,第一位学生的成绩
? ? printf("\n最低分数为:%d",arr[0]);
}

?

五、运行效果

69273ed0ff034c99979296106e9f169e.jpg

?

关注我,?每天分享编程知识

?

文章来源:https://blog.csdn.net/2301_76173427/article/details/135127924
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。