一、题目
编写程序,从键盘输入n个学生的分数,并输出其中的最小值。
如图:
二、思路分析
1、将学生成绩由小到大排序
2、排序后,第一位学生成绩为最小值
三、代码图片【带注释】
四、源代码【带注释】
#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]);
}
五、运行效果
关注我, 每天分享编程知识