?? 一維數組 升序 插入數據.cpp
字號:
/**/
#include<stdio.h> //導入包含I/O函數的頭文件stdio.h
#include<stdlib.h> //導入包含隨機數函數的頭文件stdlib.h
#include<time.h> //導入 的頭文件time.h
void main()
{
printf("\n\t在有序數組中插入數據\n\n");
while(1)
{
printf("\n 用隨機數函數rand()給數組a[25]動態賦值(取值范圍0~32767)后排序 ");
int i,j,k; long a[50],x,temp;
srand((unsigned)time(NULL)); //用當前的時間設置rand()隨機數函數的種子值
printf("\n 升序排序后的數列為:\n");
for(i=0;i<20;i++){a[i]=rand(); } //產生隨機數(0~32767)給數組元素賦值
for(i=0;i<20;i++) //冒泡排序法 升序遞增
{
for(j=19/*元素尾標*/;j>i;j--)
{
if(a[j-1]>a[j]){temp=a[j-1];a[j-1]=a[j];a[j]=temp; } //兩兩相鄰元素比較,>成立則交換
}
}
/* 選擇排序法 升序遞增
for(i=0;i<n-1;i++)
{
min=a[i]; minsub=i; //設第1個元素值為當前最小值,記錄其下標
for(j=i+1;j<n;j++) //在a[i+1]~a[i]中尋找最小值
{
if(a[j]<min){min=a[j]; minsub=j;} //當前元素小于最小值,則記錄
}
temp=a[i];a[i]=a[minsub];a[minsub]=temp; //a[i]與最小值交換
}*/
for(i=0;i<20;i++){printf("%-8d",a[i]); if((i+1)%8==0){printf("\n");}} //輸出1行8個
int num=20;
while(1)
{
printf("\n 輸入欲插入的數值: "); scanf("%d",&x);
for(k=0;k<num;k++)
{
if(x<a[k]){break;}
if(x==a[k]){printf(" 該數值已存在."); goto goto1;}
}
for(j=num-1;j>=k;j--){a[j+1]=a[j];}
a[k]=x; num++;
printf("\n 插入數值后的數列為: \n");
for(i=0;i<num;i++){printf("%-8d",a[i]);
if((i+1)%8==0){printf("\n");}
}
goto1:printf("\n 欲繼續插入嗎?是則回車,否則輸入‘空格’回車 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
printf("\n\t欲重新開始嗎?是則回車,否則輸入‘空格’回車 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -