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

这篇具有很好参考价值的文章主要介绍了【C语言】中,输入一个数组,用for循环实现将输入的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语言】中,输入一个数组,用for循环实现将输入的n个数字按照从大到小的顺序输出。【通俗简单易懂】

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

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

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

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

五.完整代码

#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-415578.html

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

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

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

相关文章

  • 【c语言】对结构体数组按照某项规则进行排序

            这是基于qsort()函数进行的简单排序。(附带其他类型的数组使用qsort()进行的排序) 目录 一、qsort()函数 二、compare()函数 1.结构体数组 1)升序实现 2)降序实现 2.整型数组 为什么不直接返回 ab(a )? 如果就是想用 ab(a )返回?  1)升序实现 2)降序实现 3.浮点

    2024年02月03日
    浏览(31)
  • 【JavaScript保姆级教程】for循环与for循环遍历数组

    JavaScript是一门强大的编程语言,它允许开发者有效地控制程序的流程。在JavaScript中,有多种循环结构可供选择,其中for循环是最常用的之一。本教程将深入探讨for循环的基本概念,提供示例代码,并展示如何使用for循环来遍历数组。同时,我们还将介绍如何在for循环中嵌套

    2024年02月06日
    浏览(33)
  • 数组、for循环(基础)

    创建数组方法  数组的长度(.length) 增删改查      增 = 数组[下标] = 新的值      改 = 数组[下标] = 新的值      查 = 数组[下标]   querySelectorAll参数是选择器 = 获取匹配选择器的所有元素.     然后返回一个存储着这些元素的数组.     aDiv就是一个存储着5个div的数组

    2024年02月05日
    浏览(20)
  • 手把手教你实现一个循环队列(C语言)

    这是一道leetcode关于队列的经典题: 622. 设计循环队列 https://leetcode.cn/problems/design-circular-queue/  大家注意这个题目要求,这个队列是定长的,如果满了则不能再添加数据。那么我们设计一个队头front和队尾rear,每次添加数据rear向后走,这时就有一个问题, 怎么区分空和满呢

    2024年02月04日
    浏览(45)
  • 【JavaScript】数组 ② ( JavaScript 数组索引 | JavaScript 遍历数组 | 使用 for 循环遍历数组 )

    在 JavaScript 中 , 数组 的 \\\" 索引 \\\" 又称为 \\\" 下标 \\\" , 从 0 开始计数 , 是 可用于访问 数组元素 的 \\\" 序号 \\\" ; 通过 数组索引 可以 访问 / 获取 / 修改 对应的数组元素 , 语法如下 : 访问数组 元素 时 , 要注意数组的边界 , 如果尝试访问一个不存在的索引 , 会返回 undefined 值 , 并不会报

    2024年04月28日
    浏览(41)
  • 数组的5种遍历(for循环、for...in、for...of、forEach()、map()

    数组:内存中一块连续的存储单元,这些存储单元具有共同的名称,不同的索引(下标)。 数组5种遍历: 1、for循环        任何数组都可以使用for循环进行遍历,使用频率最高                                 for (let i = 0; i arr.length; i++) {                            

    2024年02月06日
    浏览(29)
  • C语言:写一个函数,实现一个整型有序数组的二分查找

    写一个 函数 ,实现一个 整型有序数组 的 二分查找 ,找出 要找的数字 在 数组中对应的下标 。                       =========================================================================                         (一)自定义函数部分:                  (1). 参数: int arr[]

    2024年02月08日
    浏览(35)
  • v-for 遍历数组数字

    1.v-for遍历数组 v-for 相当于js for循环,直接写在标签内使用,循环生成标签。例如: div v-for=\\\"(item,index) in arr\\\"{{item}}div arr 是一个数组 item 代表数组中每一项, index代表数组的索引 可以在标签内使用数组的元素,如果数组中的每一项还有数组,则可以嵌套多层for循环 2.v-for遍历数

    2023年04月08日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包