【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

这篇具有很好参考价值的文章主要介绍了【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本篇文章中,我们将讲述在C语言中,输入一个数组,如何用for循环实现将输入的n个数字按照从大到小输出。

一.定义数组并初始化

首先,我们定义一个整形的数组并将其初始化。输入n,来决定数组中整数的个数。

然后用for循环来输入这个数组中的各个数字。


	int n = 0;
	scanf("%d", &n);

	int* arr = (int*)malloc(sizeof(int) * n);//动态开辟
	
	//输入n个整数
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}


二.排序

接下来,就是对这个数组中的数字进行比较排序了。

我们先来看代码。


	//将这n个数按从大到小排序

	for (i = 0; i < n; i++)
	{
		int temp = 0; //创建temp变量用于存储临时值
		temp = arr[i]; 

/*把arr[i]也就是arr[0]的值赋给temp,避免数组中有负数而产生不必要的错误*/

		int j = 0; //j表示每次循环开始时arr的下标

/* 下面的for循环中,将i赋值给j,
就避免了前面已经排序好的数字再参与到后面的循环(排序)中去。*/

		for (j = i; j < n; j++) 
		{
			if (temp < arr[j])
			{
//如果数组里还有比temp更大的值,那么将它的值和temp互换

				temp = arr[j];
				arr[j] = arr[i];
				arr[i] = temp;

			}
		}

	}

第一次循环时,原数组中arr[0]的值赋给了temp,因此,我们可以没有后顾之忧地在第二个for循环里,将我们找到的数组里的最大值赋给arr[0],再将temp的值赋给原数组中最大的数的位置。

第一次循环结束后,进入第二次循环时,arr[0]这个地址中存放的就是原先数组的最大值,它就不会再参与接下来的循环了。第二次循环结束后,arr[1]的位置存放第二大的数字,以此类推,就实现了我们将数组中的数从大到小排序的目的。

三.输出

最后,我们利用一个简单的for循环,就能将排序之后的数组输出了


	//输出
	for (i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;

}

四.运行结果

c语言循环输入数组,C语言,c语言,开发语言,c++,排序算法

我们来看程序运行的结果。5是我们输入的n。接下来的五个数字就是我们输入的数字。

最后一行就是经过从大到小排序之后的数字。

c语言循环输入数组,C语言,c语言,开发语言,c++,排序算法

可以看出,输入负数时,程序运行结果仍然正确。

五.完整代码

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

int main()
{
	int n = 0;
	scanf("%d", &n);

	int* arr = (int*)malloc(sizeof(int) * n);
	
	//输入n个整数
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
	//将这n个数按从大到小排序

	for (i = 0; i < n; i++)
	{
		int temp = 0;
		temp = arr[i];
		int j = 0;
		for (j = i; j < n; j++)
		{
			if (temp < arr[j])
			{

				temp = arr[j];
				arr[j] = arr[i];
				arr[i] = temp;

			}
		}

	}

	for (i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);
	}

	free(arr);
	arr = NULL;

	return 0;
}

最后,希望以上内容能对你有所帮助。文章来源地址https://www.toymoban.com/news/detail-718243.html

到了这里,关于【C语言】中,输入一个数组,实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包