打卡二十四天(剔除数组中的数 )(最大最小值)

 剔除数组中的某个数后,输出剩余的元素

#include <stdio.h>

#define num 5

int eliminate_num(int arr[], int a)
{
	int j = 0;
	for (int i = 0; i < num; i++)
	{
		if (arr[i] != a)
		{
			arr[j] = arr[i];
			j++;
		}
	}
	return j;
}

void Printf_arr(int arr[],int j)
{
	for (int i = 0; i < j; i++)
	{
		printf("%d ", arr[i]);
	}
}

int main()
{
	//输入一个数组,和要剔除的数
	printf("输入一个数组");
	int arr[num] = { 0 };
	for (int i = 0; i < num; i++)
	{
		scanf_s("%d", &arr[i]);
	}
	printf("输入一个数");
	int del = 0;
	scanf_s("%d", &del);
	
	//写一个剔除函数
	int j = eliminate_num(arr, del);

	//输出剔除后的数组
	Printf_arr(arr, j);

	return 0;
}

 输出数组中的最小值,最大值,最大差值

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

void MaoPao_dispaly(int arr[], int sz)
{
	int j = 0;
	for (int i = 0; i < sz - 1; i++)
	{
		for (j = 0; j < sz - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
}

int main()
{
	//生成10个0-99的随机数
	srand((unsigned int)time(NULL));
	int arr[10] = { 0 };
	for (int i = 0; i < 10; i++)
	{
		arr[i] = rand() % 100;
	}

	//显示上述的10个随机数
	printf("10个学生成绩:");
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");

	//从小到达排序
	MaoPao_dispaly(arr, sizeof(arr) / sizeof(arr[0]));

	//输出最大值,最小值,最大差值
	printf("最小值=%d 最大值=%d 最大差值=%d\n", arr[0], arr[9], arr[9] - arr[0]);

}

优化: 直接得出最大值和最小值

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
	//生成10个0-99的随机数
	srand((unsigned int)time(NULL));
	int arr[10] = { 0 };
	for (int i = 0; i < 10; i++)
	{
		arr[i] = rand() % 100;
	}

	//显示上述的10个随机数
	printf("10个学生成绩:");
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");

	//取最大值
	int max = arr[0];
	for (int i = 1; i < 10; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}

	//取最小值
	int min = arr[0];
	for (int i = 1; i < 10; i++)
	{
		if (arr[i] < min)
		{
			min = arr[i];
		}
	}

	//输出最大值,最小值,最大差值
	printf("最小值=%d 最大值=%d 最大差值=%d\n", min, max, max - min);

	return 0;
}

优化: 循环次数相同看情况进行合并

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
	//生成10个0-99的随机数
	srand((unsigned int)time(NULL));
	int arr[10] = { 0 };
	int max = 0;
	int min = 100;
	printf("10个学生成绩:");
	for (int i = 0; i < 10; i++)
	{
		arr[i] = rand() % 100;

		//显示上述的10个随机数
		printf("%d ", arr[i]);

		//取最大值,最小值
		if (arr[i] > max)
		{
			max = arr[i];
		}
		if (arr[i] < min)
		{
			min = arr[i];
		}
	}
	printf("\n");

	//输出最大值,最小值,最大差值
	printf("最小值=%d 最大值=%d 最大差值=%d\n", min, max, max - min);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值