數字輸入、輸出、排序輸出和去重 這是我最近做的交互作業。它和我之前學C語言時寫的程式相比多了對用戶提示的語句,對用戶使用程式更友好。 我參考了一些代碼的思路並按照自己的需求進行了修改,其間調試程式、寫函數花了不少時間(有點生疏了,在寫參數那經常會忘記定義參數類型…)最終成功做出來了,蠻有成就感的! ...
數字輸入、輸出、排序輸出和去重
這是我最近做的交互作業。它和我之前學C語言時寫的程式相比多了對用戶提示的語句,對用戶使用程式更友好。
我參考了一些代碼的思路並按照自己的需求進行了修改,其間調試程式、寫函數花了不少時間(有點生疏了,在寫參數那經常會忘記定義參數類型…)最終成功做出來了,蠻有成就感的!
分享下代碼,給自己留個紀念~~
#include<stdio.h>
#define MAX 1000//定義數組最大容量
int shuchu(int a[],int n){
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
printf("*-------------------------------------------------------------------------*\n\n");}
void bubble1(int a[],int n){//冒泡排序從小到大
int i,j,t;
for(i=0;i<n;i++){
for(j=0;j<n-i;j++){
if(a[j]>a[j+1]){
t=a[j]; a[j]=a[j+1]; a[j+1]=t;
}}}
}
void quchong(int a[],int n){//去重輸出
int i;
printf("%d ",a[0]); //輸出首數
for(i=1;i<n;i++) //迴圈到n
{
if( a[i] != a[i-1] ) //如果當前這個數是第一次出現則輸出
printf("%d ",a[i]);}
}
void shuru(int a[],int i,int n){//讀入數字
for(i=0;i<n;i++) {//迴圈讀入n個數字
scanf("%d",&a[i]);
}}
int leijia(int a[],int n){//數組數字累加求和
int i,mix;
for(i=0;i<n;i++){
mix+=a[i];
}
return mix;
}
int main(){
int a[MAX],n,i,j,k;
printf("請輸入數字個數:");//n為用戶自定義輸入數字個數
scanf("%d",&n);
printf("\n您一共要輸入%d個數字\n",n);
printf("請輸入%d個數字:\n",n);
shuru(a,i,n);
printf("輸入的數字為:\n");
shuchu(a,n);
printf("將%d個數字累加得:",n);
k=leijia(a,n);
printf("%d",k);
printf("\n從大到小排序後:");//冒泡排序結果
bubble1(a,n);
shuchu(a,n);//顯示未去重排序
printf("去掉重覆數字後排序為:\n");
quchong(a,n);
printf("(從小到大)\n");
return 0;
}
運行截圖: