數字輸入、輸出、排序輸出和去重
這是我最近做的互動作業,它和我之前學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;
}
運行截圖:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/468717.html
標籤:C
上一篇:C++ 不使用虛析構的后果及分析
