今天复习的知识点:
1、循环
2、选择排序
3、结构(话说做这道题的时候 突然想起来考试的时候定义结构忘记加分号了T--T)
题目:称体重
描述:
赵、钱、孙、李四个人中既有大人也有小孩,给他们称体重时发现,他们每个人的体重都不一样,且体重(单位:公斤)恰好是10的整数倍,且他们的体重都不高 于50公斤,已知赵、钱两人的体重之和恰好等于孙、李两人的体重之和;赵、李两人的体重之和大于孙、钱两人的体重之和,并且赵、孙俩人的体重之和还小于钱的体重。请编写一个程序,按照体重从小到大的顺序,打印出四人的姓氏的首字母和体重数。
输入:
无
输出:
打印出四人的姓氏的首字母(小写)和体重数(每人一行,姓名首字母和体重数之间用空格隔开)。
#include<iostream>
#include<cstring>
using namespace std;
struct w
{
char name;
int weight;
};
void sort(w a[],int n)
{
w max;
for(int i=0;i<n-1;i++)
{
max=a[i];
for(int j=i+1;j<n;j++)
{
if(a[j].weight>max.weight)
{
max=a[j];
a[j]=a[i];
a[i]=max;
}
}
}
}
int main()
{
int flag=0;
w wa[5];
wa[0].name='z';
wa[1].name='q';
wa[2].name='s';
wa[3].name='l';
for(wa[0].weight=10;wa[0].weight<=50;wa[0].weight+=10)
{
for(wa[1].weight=10;wa[1].weight<=50;wa[1].weight+=10)
{
for(wa[2].weight=10;wa[2].weight<=50;wa[2].weight+=10)
{
for(wa[3].weight=10;wa[3].weight<=50;wa[3].weight+=10)
{
if(wa[0].weight+wa[1].weight==wa[2].weight+wa[3].weight&&
wa[0].weight+wa[3].weight>wa[1].weight+wa[2].weight&&
wa[0].weight+wa[2].weight<wa[1].weight&&
wa[0].weight!=wa[1].weight&&
wa[0].weight!=wa[2].weight&&
wa[0].weight!=wa[3].weight&&
wa[1].weight!=wa[2].weight&&
wa[1].weight!=wa[3].weight&&
wa[2].weight!=wa[3].weight
)
{
flag=1;
break;
}
}
if(flag==1) break;
}
if(flag==1) break;
}
if(flag==1) break;
}
sort(wa,4);
for(int i=3;i>=0;i--)
cout<<wa[i].name<<" "<<wa[i].weight<<endl;
}
-------------