案例--最大值与最小值 ,学生成绩排序

79 阅读1分钟

1.最大值与最小值:

#include <iostream>
using namespace std;

int main()
{
    int arr[10];                   //定义数组 arr
	printf("请输入10个数据:\n");
	for (int i = 0; i < 10; i++)   //从键盘输入数组元素
		scanf("%d",&arr[i]);
	int max,min;                   //max用于存储最大值,min用于存储最小值
	max  = arr[0];                 //假设数组中的第1个元素是最大值
	for (int i = 1; i < 10; i++)   //依次用其他数组元素与max比较
	{
		if (arr[i] > max)
			max = arr[i];
	}
	min = arr[0];                  //假设数组中的第1个元素为最小值
	for (int i = 1; i < 10; i++)   //依次用其他数组元素与min比较
	{
		if (arr[i] < min)
			min = arr[i];
	}
	printf("这一组数据中的最大值:%d\n",max);
	printf("这一组数据中的最小值:%d\n",min);
	return 0;
}

运行效果如下:

image.png

2.学生成绩排序:

#include <iostream>
using namespace std;

int main()
{
    float score[20];
	printf("请输入20名学生的成绩:\n");
	for (int i = 0; i < 20; i++)
		scanf("%f", &score[i]);               //输入学生的成绩
	//使用冒泡排序将成绩从大到小排序
	for (int i = 0; i < 20 - 1 ; i++)         //外层循环,控制比较的轮数
	{
		for (int j = 0; j < 20 - 1 - i ; j++) //内层循环,控制比较的次数
		{
			//如果当前元素小于后一个元素,就交换两个元素的值
			if (score[j] < score[j + 1])
			{
				float temp = score[j];
				score[j] = score[j + 1];
				score[j + 1] = temp;
			}
		}	
	}
	printf("从大到小排序:\n");
	for (int i = 0; i < 20; i++)
	{
		printf("%.2f ", score[i]);
		if (i == 9)
			printf("\n");
	}
	return 0;
}

运行结果如下:

image.png