分屏处理数据系统(简陋)

随机产生 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");
}


  • 12
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu系统中,你可以通过多个方法实现分操作。一种方法是通过创建多个工作桌面来实现分。你可以使用Ubuntu提供的快捷键来轻松切换工作桌面。另一种方法是使用终端分功能,比如使用terminator这个终端模拟器。 要创建多个工作桌面,你可以使用Ubuntu的默认桌面环境(如Unity或GNOME)提供的功能。在Ubuntu 16.04及以上版本中,你可以使用快捷键`Ctrl + Alt + D`来打开工作区总览。然后,你可以在右上角的工作区总览视图中点击"+"按钮来添加新的工作区。你可以根据需要添加多个工作区,并在它们之间切换以实现分操作。 另外,你还可以使用快捷键`Ctrl + Alt + ←`或`Ctrl + Alt + →`来在不同的工作桌面之间进行切换。这样,你可以在不同的工作区上打开不同的应用程序,并在它们之间方便地切换。 如果你想在同一工作区内实现分操作,你可以使用终端分功能。一个常用的终端分工具是terminator。你可以通过终端输入以下命令来安装terminator: ``` sudo apt-get install terminator ``` 安装完成后,你可以打开terminator,并使用快捷键`Ctrl + Shift + E`来进行垂直分,使用`Ctrl + Shift + O`来进行水平分。这样,你就可以在同一个终端窗口上同时显示多个终端会话,方便进行多任务操作。 除了terminator,还有其他一些终端分工具可供选择,比如tmux和screen等。你可以根据自己的需求选择适合你的终端分工具。 综上所述,Ubuntu系统提供了多种方法来实现分操作,包括创建多个工作桌面和使用终端分工具。你可以根据自己的喜好和需求选择适合你的方法来进行分操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值