三位数反向输出
问题描述
输入一个三位数,要求把这个数的百位与个位对调,输出对调后的数,例如输入123,输出321。
分析
先求出这个三位数的百位、十位、个位,然后个位和百位对调。
代码实现
#include <iostream>
using namespace std;
int m90009(vector<int> cans);
int main() {
std::cout << "尘远同学编程-少年班欢迎您! 报名热线 : 025 - 8662 0610" <<std::endl;
// g sh b 分别表示 个位 十位 百位 上的数 news 是反转后的数
int num,g,sh,b,news;
cout<<"请输入一个三位数:";
cin>>num;
for(;;){
if(num >=100 && num <=999){
break ;
}
cout<<"\n您的输入不是三位数,请重新输入一个三位数:";
cin>>num;
}
b=num/100;
sh=(num/10)%10;
g=num%10;
news=g*100+sh*10+b;
printf("num==%4d,new num==%4d\n",num,news);
return 0;
}
运行结果
扩展:如果是4位数、5位数,反向输出的处理。
求班级平均分
问题描述
已知班级有M位男同学,N位女同学。男同学的平均分是88分,女同学的平均分是85分。
求全体同学的平均分是多少?
代码实现
#include <iostream>
using namespace std;
int main() {
std::cout << "尘远同学编程-少年班欢迎您! 报名热线 : 025 - 8662 0610" <<std::endl;
float m,n,avg_m,avg_n;
float avg;
cout<<"请输入男同学数量 M 和女同学数量 N : ";
avg_m=88;
avg_n=85;
cin>>m>>n;
avg=(avg_m*m + avg_n*n)/(m+n);
printf("班级的平均分是 %4.4f 分.\n",avg);
return 0;
}
运行结果
扩展
1、权重计分
2、去掉最高最低分方式计分