一、题目
编写程序,从键盘输入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]);
}
?
五、运行效果
?
关注我,?每天分享编程知识
?