C語言(online c) 寫簡單的 程式 ( 輸入n個位數的數值並計算 (1)總和 (2)平均值 (3)最大值 (4)最小值 (5)第2大的數 )
輸入n個位數的數值並計算
(1)總和 (2)平均值 (3)最大值 (4)最小值 (5)第2大的數
#include<stdio.h>
#include<math.h>
#define max(x,y) (x > y?x:y)
#define min(x,y) (x < y?x:y)
int bubble_sort(int A[50], int n){
int i, j, flag ,temp;
for(i = 0; i<n-1; i++){ //n個數字排序,只用 n-1 回
int flag = 0; //表示有無發生交換
for(j = 0; j < n-i; j++){ //從第一個數字開始比較,直到最後一個數字
if(A[j]>A[j+1]){
temp=A[j];
A[j]=A[j+1];
A[j+1]=temp;
flag = 1;
}
}
if(flag == 0) break; //此回合沒有發生交換
}
}
int main()
{
int n,i,x[50] ,maxnum ,minnum ;
float sum , avg ;
printf("輸入n個位數的數值 並計算(1)總和 (2)平均值 (3)最大值 (4)最小值 (5)第2大的數請\n");
printf("請輸入n個數字 n:\n");
scanf("%d ", &n);
for (i=0;i<=n-1;i++)
scanf("%d ", &x[i]);
printf("你輸入的 n=%d\n\n", n);
printf("你輸入的數值= ");
for (i=0;i<=n-1;i++)
printf("%d ", x[i]);
//======================
maxnum=max(x[0],x[1]);
for (i=2;i<=n-1;i++)
maxnum=max(maxnum,x[i]);
printf("\n最大值=%d",maxnum);
//======================
minnum=min(x[0],x[1]);
for (i=2;i<=n-1;i++)
minnum=min(minnum,x[i]);
printf("\n最小值=%d",minnum);
//======================
for (i=0;i<=n-1;i++)
sum=sum+x[i];
avg=sum/n;
printf("\n總和=%0.0f",sum);
printf("\n平均值=%0.2f",avg);
printf("\n");
printf("\n排序後的輸入數值為");
bubble_sort(x,n-1);
for (i=0;i<=n-1;i++)
printf("%d ", x[i]);
printf("\n第2大數值=%d",x[1]);
return 0;
}
輸入n個位數的數值 並計算(1)總和 (2)平均值 (3)最大值 (4)最小值 (5)第2大的數請
請輸入n個數字 n:
你輸入的 n=5
你輸入的數值= 12 23 45 54 15
最大值=54
最小值=12
總和=149
平均值=29.80
排序後的輸入數值為12 15 23 45 54
第2大數值=15
沒有留言:
張貼留言