分屏處理數據系統(簡陋)

隨機產生 1000 個數,並分屏顯示(每行顯示 10 個數字,每頁顯示 10 行),而且在每一
屏的下方顯示本屏中數據的最大值、最小值和平均值。
提示:循環顯示,在分屏點上輸出 press any key to continue…,通過 getchar()函數讓用戶

以按回車鍵的方式進入下一屏。


定義4個函數:分別是最小值,最大值,平均值,以及主菜單。這樣讓main函數很清晰了。


#include<stdio.h>
#include<time.h>
#include<stdlib.h>
main()
{


//float *類型的實參與float類型的形參不兼容。


int i, j, k, m, n=0;
int num[1050] = {0};
float sum[100] = { 0 }, ave[100];
int  min[100], max[100];
void Srand(int);
void Min(int, int);
void Max(int, int);
void Mainthing(int, int, int, int, float);
void Ave(int, float[], float[]);

int system(const char *string);
Srand(num); //獲取隨機數
Min(num, min);
Max(num, max);
Ave(num, sum, ave);
for (i = 0; i < 10; i++)//因爲有1000個數字,一共10頁,所以這裏循環執行10次,如果不知道具體的次數,可以把數字總數除以每頁多少個(1000/100 = 10)
{
Mainthing(i, max[i], min[i], num, ave[i]);
printf("\npress any key to continue...");
getchar(); //這樣輸入回車就直接下一頁了,但是如果是輸入其他字符後再輸入回車,會一口氣顯示 :輸入字符數+一個回車   的頁數,比如輸入ab+回車,那麼會一口氣顯示3頁的。

system("cls"); //清屏,上次沒有清屏效果,這次補上
}
}


void Srand(int num[]) //獲取隨機數
{
int i, j, k;

srand((unsigned int)(time(NULL))); //很抱歉,因爲個人疏忽,忘記取時間爲種子,現在補上

for (i = 0; i < 1000; i++)
{
num[i] = rand() % 1000 + 1;
}
}


void Min(int num[],int min[]) //獲取最小值
{
int i, j, k=num[0], m=0, n;
for (i = 0;i<=1000; i++)
{
if ((i % 100 == 0) && (i != 0))
{
min[m] = k;
m++;
k = num[i];
}
if (k >= num[i])
k = num[i];
}
}


void Max(int num[], int max[]) //獲取最大值
{
int i, j, k = num[0], m = 0, n;
for (i = 0; i<=1000; i++)
{
if ((i % 100 == 0) && (i != 0))
{
max[m] = k;
m++;
k = num[i];
}
if (k <= num[i])
k = num[i];
}
}


void Ave(int num[], float sum[],float ave[]) //求平均值
{
int i, j, k, m=0, n;
for (i = 0; i <= 1000; i++)
{
if ((i % 100 == 0) && (i != 0))
{
ave[m] = sum[m] / 100.0;
m++;
}
sum[m] += num[i];
}
}


void Mainthing(int n,int max,int min,int num[], float ave)
{
int i, j, k, m;
printf("第%d頁\n", n + 1);
for (i = n*100; i < 100*(n+1); i++)
{
if ((i % 10 == 0) && (i != 0))
printf("\n");
printf("%5d", num[i]);

}
printf("\n最大值:%d\t最小值:%d\t平均值:%.2f\n", max, min, ave);
printf("*********************************************\n");
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章