【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;}

四.運行結果

我們來看程序運行的結果。5是我們輸入的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;
}

最后,希望以上內容能對你有所幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165229.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

通過HTML網頁對mysql數據庫進行增刪改查(CRUD實例)

首先我們得了解一下大致的架構 ,如下: 我們采用自底向上的方式進行開發, 一、先寫mysql數據庫 二、再寫java后端(Spring MVC架構)(這個是什么東西不懂不要緊,跟著步驟做就行了) 三、最后寫前端頁面(HTML) 一、 Mysql數據庫部分 我們要通過網頁對數據庫進行開發&#xff0c;…

解決:Gitee + PicGo配置圖床失敗

解決&#xff1a;Gitee PicGo配置圖床失敗 PicGo安裝插件的時候選擇&#xff1a;gitee-uploader&#xff0c;不要選擇gitee&#xff01; 在Gitee新建的圖床倉庫中設置一個images文件夾&#xff0c;用來保存上傳的圖片&#xff0c;但是要注意在PicGo中的path中要寫上路徑/img…

數據庫基礎入門 — SQL運算符

我是南城余&#xff01;阿里云開發者平臺專家博士證書獲得者&#xff01; 歡迎關注我的博客&#xff01;一同成長&#xff01; 一名從事運維開發的worker&#xff0c;記錄分享學習。 專注于AI&#xff0c;運維開發&#xff0c;windows Linux 系統領域的分享&#xff01; 本…

linux的基礎命令

文章目錄 linux的基礎命令一、linux的目錄結構&#xff08;一&#xff09;Linux路徑的描述方式 二、Linux命令入門&#xff08;一&#xff09;Linux命令基礎格式 三、ls命令&#xff08;一&#xff09;HOME目錄和工作目錄&#xff08;二&#xff09;ls命令的參數1.ls命令的-a選…

基于yolov2深度學習網絡的喝水行為檢測系統matlab仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1、YOLOv2網絡原理 4.2、基于YOLOv2的喝水行為檢測 5.算法完整程序工程 1.算法運行效果圖預覽 2.算法運行軟件版本 matlab2022a 3.部分核心程序 clc; clear; close all; warning off;…

PPT思維導圖怎么做?這2個思維導圖工具墻裂推薦!

在日常學習和工作中&#xff0c;我們常常會面臨需要處理大量信息的情況&#xff0c;這時候&#xff0c;一種叫做思維導圖的工具可能會成為你的救星。 不同于傳統的線性記錄方式&#xff0c;思維導圖以其獨特的視覺表現力和結構化的信息處理方式&#xff0c;使得人們能夠更加有…

Flutter學習(四)如何取消listview的越界效果

背景 在flutter的開發過程中&#xff0c;ListView是很常見的一個組件&#xff0c;但是&#xff0c;由于ListView的某些自帶的體驗&#xff0c;導致不太好的用戶體驗。例如ListView中&#xff0c;滑動到頂部或者底部的時候&#xff0c;再次滑動&#xff0c;會有越界的效果&…

同步和異步

同步和異步是處理任務時的兩種不同方式。 同步是指一個進程在執行某個請求的時候&#xff0c;如果該請求需要一段時間才能返回信息&#xff0c;那么這個進程會一直等待下去&#xff0c;直到收到返回信息才繼續執行下去。這種方式下&#xff0c;任務是按照順序一個一個執行的&am…

2023年亞太地區數學建模大賽 問題A

采果機器人的圖像識別技術 中國是世界上最大的蘋果生產國&#xff0c;年產量約為3500萬噸。與此同時&#xff0c;中國也是世界上最大的蘋果出口國&#xff0c;全球每兩個蘋果中就有一個&#xff0c;全球超過六分之一的蘋果出口自中國。中國提出了一帶一路倡議&#xff08;BRI&…

Cache學習(2):Cache結構 命中與缺失 多級Cache結構 直接映射緩存

1 Cache名詞解釋 命中&#xff08;hit&#xff09;&#xff1a; CPU要訪問的數據在Cache中有緩存缺失&#xff08;miss&#xff09;&#xff1a; CPU要訪問的數據在Cache中沒有緩存Cache Size&#xff1a;Cache的大小&#xff0c;代表Cache可以緩存最大數據的大小Cache Line&a…

快速在WIN11中本地部署chatGLM3

具體請看智譜倉庫github&#xff1a;GitHub - THUDM/ChatGLM3: ChatGLM3 series: Open Bilingual Chat LLMs | 開源雙語對話語言模型 或者Huggingface:https://huggingface.co/THUDM/chatglm3-6b 1. 利用Anaconda建立一個虛擬環境&#xff1a; conda create -n chatglm3 pyt…

2023全球數字貿易創新大賽-人工智能元宇宙-11-12,數據二十條,數字產業化和產業數字化

目錄 長沙千博信息技術有限公司-手語翻譯 數據二十條 數字產業化和產業數字化

java--static的應用知識:單例設計模式

1.什么是設計模式(Design pattern) ①一個問題通常有n中解法&#xff0c;其中肯定有一種解法最優的&#xff0c;這個最優的解法被人總結出來了&#xff0c;稱之為設計模式。 ②設計模式有20多種&#xff0c;對應20多種軟件開發中會遇到的問題。 2.單例設計模式 確保一個類只…

Linux安裝與配置Maven

案例中Linux版本為CentOS7.9&#xff0c;安裝目錄為 /root/software/ 1、使用 wget 命令從官網下載安裝包&#xff08;https://maven.apache.org/download.cgi&#xff09; wget https://dlcdn.apache.org/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz2、解壓…

搭建線上jvm監控

這里寫目錄標題 Springboot項目配置maven依賴application.properties添加監控JVM的配置類啟動springboot項目 Prometheus配置配置grafana Springboot項目配置 maven依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

mac mysql連接中斷重新啟動辦法

遇到如圖所示問題&#xff0c;可以用下面的命令重啟mysql服務 sudo /usr/local/mysql/support-files/mysql.server start

詳解分布式微服務架構

目錄 一、微服務簡介 1、分布式微服務架的誕生 2、微服務架構與SOA架構的區別 3、微服務框架引來的問題 二、服務通信 RESTful API&#xff1a; 消息隊列&#xff08;如RabbitMQ、Kafka&#xff09;&#xff1a; gRPC&#xff1a; GraphQL&#xff1a; Service Mesh&…

Vector - CANoe - Vector Hardware Manager以太網

前面的文章中有介紹過基于Network based mode和channel base mode的環境配置&#xff0c;不過我們都是使用比較舊的辦法&#xff0c;在我使用了一段時間Vector Hardware Manager配置之后發現這個更加好用結合之前的配置方法&#xff0c;使用起來也更加的靈活&#xff0c;今天就…

HTML的學習

知己知彼百戰不殆 打算學習一下javascript 所以先從基礎的html語言開始 其實就是頭部 和身體 頭部控制整個 html的語言 title等 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…

61 權限提升-RedisPostgre令牌竊取進程注入

目錄 演示案例:Redis數據庫權限提升-計劃任務PostgreSQL數據庫權限提升Windows2008&7令牌竊取提升-本地Windows2003&10進程注入提升-本地pinjector進程注入工具針對-win2008以前操作系統pexec64 32進程注入工具針對-win2008及后操作系統- (佛系) 涉及資源: postgersql是…