0
点赞
收藏
分享

微信扫一扫

【数据结构】第二章——线性表(5)

小月亮06 2024-01-03 阅读 14

文章目录

一,题目

最高分最低分之差
输入n个成绩,换行输出n个成绩中最高分数和最低分数的差

输入 :
两行:
第一行为n,表示n个成绩,不会大于一千;
第二行为n个成绩(整数表示,范围为0~100,以空格隔开)

输出:
一行,输出n个成绩中的最高分数和最低分数的差


二,方法

1,方法一

void bubble_sort(int arr[100],int n)
{
	int i = 0;
	for (i = 0; i < n-1; i++)
	{
		//一趟冒泡排序
		int j = 0;
		for (j = 0; j < n - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = 0;
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}
int main()
{
	int arr[100] = { 0 };
	int i = 0;
	int n = 0;
	scanf("%d",&n);
	for (i = 0; i < n; i++)
	{
		scanf("%d",&arr[i]);
	}
	bubble_sort(arr,n);
	int cha = arr[n - 1] - arr[0];
	printf("%d",cha);
	return 0;
}
分析

在这里小编先用一个冒泡函数将函数从小到大排序一遍,于是最大的值就是数组下标为n-1的数,最小的值就是数组下标为0的数,将两个值进行相减得到差值。

2,方法二

int main()
{
	int n = 0;
	scanf("%d",&n);
	int arr[50] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d",&arr[i]);
	}
	//求最大值
	int max = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max) 
			max = arr[i]; 
	}
	//求最小值 
	int min = arr[0]; 
	for (i = 1; i < n; i++) 
	{
		if (arr[i] < min) 
			min = arr[i]; 
	}
	printf("%d",max-min); 
	return 0; 
}

3,方法三

int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//求最大值和最小值
	int max = arr[0];
	int min = arr[0];
	for (i = 1; i < n; i++)
	{
		if (arr[i] > max)
			max = arr[i];
		if (arr[i] < min)
			min = arr[i];
	}
	printf("%d", max - min);
	return 0;
}

4,方法四

nt main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[50] = { 0 };   
	int i = 0;    
	int min = 100;    
	int max = 0;    
	for (i = 0; i < n; i++)    
	{
		scanf("%d", &arr[i]);    
		if (arr[i] > max)    
			max = arr[i];    
		if (arr[i] < min)    
			min = arr[i];    
	}
	printf("%d", max - min);    
	return 0;    
}


三,示例结果

在这里插入图片描述

举报

相关推荐

0 条评论