关键词不能为空

当前您在: 首页 > 育儿 >

螃蟹死了能不能吃了c语言程序 高矮个比较

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-02-24 09:54

-性疲劳

2021年2月24日发(作者:湖南白癜风)
题目








200
个学生不按身高任意排成
10
行﹑
20
列的长方形队列。在每 一列中选出一个
最矮者
(如这样人有几个,
可任选其中一个)

然后 在所选的
20
个矮人中挑出最
高者一人,叫做“矮人中的高个子”
。然后,令 这
20
个矮人各回原位。再在每一
行中选出一个最高者,又从这
10
个高人中挑出最矮者一人,叫“高个子中的矮
子”
。请问“矮人中的高个子”和“高个子中的矮 子”这二人中哪个高?

1



题分析与设计。

1

输入问题。
200
个学生不按身高任意排成
10
行﹑
20
列的长方形队列,
所以定
义了二维数组
a[10][20 ],
通过两重循环录入数据。但是由于
200
个数据手动录
入会比较繁琐,< br>所以本程序提供电脑自动随机生成数据的模式。
所以用户可以根
据需要选择手动输入或者 随机生成模式。
另外考虑到时身高数据,
所以以厘米为
单位把数据限定在
10 0

200
之间
(因为群体是学生,
但不知道是小学生还是中
学生,
排除特别高的和特别矮的,
折中选择把数据限定在
[100,200),同时因为数
据都是三位数,
便于显示效果的整齐性)

输入时防止输入为 不符合要求的数据,
同样定义了
input
()函数。

2

由于
200
个数据的手动输入太慢,
不利于功能演示,
所以定义了 宏指令
#define
M 10 #define N 20
定义数组为
a[M][N].
为了显示方便可以随时修改
MN

值。

3
、由于手动输入大量数据,很可能会出错,所以本程序在当输入的数据不符合
要求时 会提醒用户重新输入,
此外还提供修改功能,
对指定的某行某列的身高进
行修改,并且 可以重复修改,值到满意为止。

4
、录入结束和修改之后,将数据按照
10

20
列的格式全部显示出来,以便于
查看

5

矮个中的高个和高个中的矮个,
采用数组的两重循环,
不停地进行比对。
ma x[i]
中存储每一行的最高的人,
min[j]
存放每一列的最矮的人。再对
max[i]
求最小

minmax
,对
min[j]
求 最大值,
maxmin























流程图:






























开始

1.
手动输入
2.

机生成
0.
退出

结束

录入数据

显示数据

修改数据

显示数据

是否继续
修改

找出
maxmin
minmax
并比较

输出



2
、编程实现。

1

/******
菜单
******/
int menu()//
考虑到手动输入的真实性和随机输入的便捷性

提供
2
种模式

{

printf(
手动录入
2.
随机生成
0:
退出
n
printf(
请选择
0/1/2:>>

scanf(

while(m!=0&&m!=1&&m!=2)

{


printf(
请选择
0/1/2:>>


fflush(stdin);


scanf(

}

return m;
2

/**
显示所录入的数据
**/
void show(int (*p)[N])
{

int i,j;

printf(
所有数据如下
:n
for(i=0;i
{
for(j=0;j
{printf(
printf(

}
3


/***rectify** ***///
考虑到录入发生错误的情况,本程序提供修改

void rectify(int (*p)[N])
{
int x1,x2,k;
char c;

printf(
对录入结果是否需要修改?
y/n >>
re2:
fflush(stdin);
scanf(
if(c=='y')
{
re3:
printf(
请按以下格式输入需要修改的参数(行,列,身高)

n>>
fflush(stdin);
scanf(

while(x1<=0||x1>M||x2<=0||x2>N||k<100||k>=200)

{


printf(
请按照格式和要求输入!
n


goto re3;

}
p[x1-1][x2-1]=k;//
考虑到实 际人眼看到的行列数与数组的关系相差
1


人为本


show(p);

printf(
是否继续修改?
y/n >>

goto re2;
}
if(c!='y'&&c!='n')
{

printf(
输入有误,请输入
y

n >>

goto re2;
}
}
}
}
4
、随机生成数据:在100到200之间

srand((unsigned)time(NULL));
for(i=0;i for(j=0;j


{


a[i][j]=rand()%100+100;



}

5

//
遍历并比较
maxmin

minmax
for(j=0;j//
在每一列中选出一个最矮者(如这样人有几 个,可任选其
中一个)
。然后在所选的
20
个矮人中挑出最高者一人

{ min[j]=a[0][j];//min[j]
存放每一列的最矮的人

for(i=0;i{
if(a[i][j]min[j]=a[i][j];
}
}
maxmin=min[0]; //maxmin
存放
min[j]
中的最
max


for(j=0;j{ if(maxminmaxmin=min[j];
}
printf(
矮个中的高个身高 为
:%dn
for(i=0;i//
在每一行中选出一个最 高者(如这样人有几个,可任选其
中一个)
。然后在所选的
10
高人中挑出最 矮者一人

{ max[i]=a[i][0]; //max[i]
中存储每一行的最高的人

for(j=0;j{
if(a[i][j]>max[i])
max[i]=a[i][j];
}
}
minmax=max[0];
for(i=0;i{ if(minmax>max[i])
minmax=max[i];
}
printf(
高个中的矮个身高 为
:%dn
3
、测试数据、测试结果、结果分析。

测试
1
:随机生成模式

测试结果:




















结果分析:输入
2
选择随机生成模式,可以看出,所输入的数据都是在
100







测试
2
:手动录入

测试数据:见截图

测试结果:





























结果分析:

-性疲劳


-性疲劳


-性疲劳


-性疲劳


-性疲劳


-性疲劳


-性疲劳


-性疲劳



本文更新与2021-02-24 09:54,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/457690.html

c语言程序 高矮个比较的相关文章