課程
/后端開發
/C
/C語言入門
將整形數組按從小到大排序,然后在這個數組中插入一個新的數,使得這個數組仍然有序,用C語言怎么做,求程序和解釋
2016-11-10
源自:C語言入門 6-1
正在回答
#include<stdio.h>
#define N 5
int main()
{
? ? int i,j,p,n,temp;
? ? int a[N],b[N+1];//a[N]為原數組,b[N+1]為插入后的數組
? ? printf("請輸入%d個數\n",N);
? ? for(i=0;i<N;i++)
? ? ? ?scanf("%d",&a[i]);//a[N]的輸入
? ? for(i=0;i<N-1;i++)//選擇法排序,按升序排好a[N]
? ? {
? ? ? ? ?p=i;
? ? ? ? ?for(j=i+1;j<N;j++)
? ? ? ? ? ? if(a[i]>a[j])
? ? ? ? ? ? ? ?p=j;
? ? ? ? ? ? if(p!=j)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?temp = a[p];
? ? ? ? ? ? ? ?a[p] = a[i];
? ? ? ? ? ? ? ?a[i] = temp;
? ? ? ? ? ? }
? ? }
? ? for(i=0;i<N;i++)//輸出a[N]的每一項
? ? ? ? printf("%d ",a[i]);
? ? ? ? printf("\n");
? ? printf("請輸入一個數\n");
? ? scanf("%d",&n);//插入一個數
? ? ? ?b[i] = a[i];
? ? b[N] = n; //b[N+1]的輸入
? ? for(i=0;i<N;i++)//選擇法排序,按升序排好b[N+1]
? ? ? ? ?for(j=i+1;j<N+1;j++)
? ? ? ? ? ? if(b[i]>b[j])
? ? ? ? ? ? ? ? ? temp = b[p];
? ? ? ? ? ? ? ? ? b[p] = b[i];
? ? ? ? ? ? ? ? ? b[i] = temp;
? ? for(i=0;i<N+1;i++)//輸出b[N+1]的每一項
? ? ? ? printf("%d ",b[i]);
}
各處都有解釋,不懂再問我!
qq_晨曦Flame_04116129
滿天星17 提問者
用冒泡排序寫個程序,多謝
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答c語言程序
3 回答c語言算術順序
2 回答C語言簡單程序
3 回答C語言程序設計
2 回答C語言運算順序?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-10
#include<stdio.h>
#define N 5
int main()
{
? ? int i,j,p,n,temp;
? ? int a[N],b[N+1];//a[N]為原數組,b[N+1]為插入后的數組
? ? printf("請輸入%d個數\n",N);
? ? for(i=0;i<N;i++)
? ? ? ?scanf("%d",&a[i]);//a[N]的輸入
? ? for(i=0;i<N-1;i++)//選擇法排序,按升序排好a[N]
? ? {
? ? ? ? ?p=i;
? ? ? ? ?for(j=i+1;j<N;j++)
? ? ? ? ? ? if(a[i]>a[j])
? ? ? ? ? ? ? ?p=j;
? ? ? ? ? ? if(p!=j)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?temp = a[p];
? ? ? ? ? ? ? ?a[p] = a[i];
? ? ? ? ? ? ? ?a[i] = temp;
? ? ? ? ? ? }
? ? }
? ? for(i=0;i<N;i++)//輸出a[N]的每一項
? ? ? ? printf("%d ",a[i]);
? ? ? ? printf("\n");
? ? printf("請輸入一個數\n");
? ? scanf("%d",&n);//插入一個數
? ? for(i=0;i<N;i++)
? ? ? ?b[i] = a[i];
? ? b[N] = n; //b[N+1]的輸入
? ? for(i=0;i<N;i++)//選擇法排序,按升序排好b[N+1]
? ? {
? ? ? ? ?p=i;
? ? ? ? ?for(j=i+1;j<N+1;j++)
? ? ? ? ? ? if(b[i]>b[j])
? ? ? ? ? ? ? ?p=j;
? ? ? ? ? ? if(p!=j)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? temp = b[p];
? ? ? ? ? ? ? ? ? b[p] = b[i];
? ? ? ? ? ? ? ? ? b[i] = temp;
? ? ? ? ? ? }
? ? }
? ? for(i=0;i<N+1;i++)//輸出b[N+1]的每一項
? ? ? ? printf("%d ",b[i]);
? ? ? ? printf("\n");
}
各處都有解釋,不懂再問我!
2016-11-12
用冒泡排序寫個程序,多謝