选夫婿1
2016-07-25 20:48
183 查看
题目描述
**
选夫婿1
输入数据的第一行是一个正整数N(0 < N < 1000)。然后N行数据,每行包含三部分,用空格隔开。第一部分是报名者的姓名name(长度小于20的字符串),然后是整数身高h(0 < h < 300),第三部分是整数体重w (0 < w < 200)。最后一行是四个整数a,b,c,d.表示身高的合格范围是[a,b],体重的合格范围是[c,d](0 < a < b < 200, 0 < c < d < 300)。你需要把合格的信息按照身高从低到高输出,格式每行三个信息,共N行,如果身高相同则按体重从轻到重输出,若没有合格人选则输出No.**
**
选夫婿1
输入数据的第一行是一个正整数N(0 < N < 1000)。然后N行数据,每行包含三部分,用空格隔开。第一部分是报名者的姓名name(长度小于20的字符串),然后是整数身高h(0 < h < 300),第三部分是整数体重w (0 < w < 200)。最后一行是四个整数a,b,c,d.表示身高的合格范围是[a,b],体重的合格范围是[c,d](0 < a < b < 200, 0 < c < d < 300)。你需要把合格的信息按照身高从低到高输出,格式每行三个信息,共N行,如果身高相同则按体重从轻到重输出,若没有合格人选则输出No.**
#include<stdio.h> struct sdut { char name[21]; int h,w; }s[1001],t; int main() { int n,i,a,b,c,d,j,k=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%s%d%d",&s[i].name,&s[i].h,&s[i].w); scanf("%d%d%d%d",&a,&b,&c,&d); for(i=1;i<=n;i++) { if(a<=s[i].h&&b>=s[i].h&&c<=s[i].w&&d>=s[i].w) { k++; s[k]=s[i]; } } for(i=1;i<=k;i++) { for(j=1;j<=k-i;j++) { if(s[j].h>s[j+1].h) { t=s[j]; s[j]=s[j+1]; s[j+1]=t; } else if(s[j].h==s[j+1].h&&s[j].w>s[j+1].w) { t=s[j]; s[j]=s[j+1]; s[j+1]=t; } } } if(k==0) printf("No\n"); else for(i=1;i<=k;i++) printf("%s %d %d\n",s[i].name,s[i].h,s[i].w); return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C 语言简单加减乘除运算
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言二进制思想以及数据的存储
- C语言中计算正弦的相关函数总结