牛客锦集 新手上路语法入门题解 选择结构习题M-W
创始人
2025-05-31 13:47:34
0

题单地址:选择结构题单
M 最大最小值
题意:输入三个数,输出其中最大值和最小值。

分析:使用max函数和min函数即可完成

题解:

#include
using namespace std;
int main()
{int a,b,c;cin >> a >> b >> c;cout << "The maximum number is : " << max(a,max(b,c)) << endl;cout << "The minimum number is : " << min(a,min(b,c));return 0;
}

N 送分题
题意:输入三个数,不改变三个数的顺序的情况下,添加括号或+或*,使得三个数的运算结果最大。

分析:由于三个数的加乘只有六种结果,列举出来即可。

题解:

#include
using namespace std;
int main()
{int a,b,c;cin >> a >> b >> c;int ans = 0;ans = max(ans, a+b*c);ans = max(ans, a*b+c);ans = max(ans, a+b+c);ans = max(ans, a*b*c);ans = max(ans, a*(b+c));ans = max(ans, (a+b)*c);cout << ans;return 0;
}

O 四季
题意:输入年月,输出对应的季节。

分析:季节只与月份有关,使用取模运算求出月份,if-else语句判断季节。

题解:

#include
using namespace std;
int main()
{int year;cin >> year;int month = year%100;if(month>=3 && month<=5)cout << "spring";else if(month>=6 && month<=8)cout << "summer";else if(month>=9 && month<=11)cout << "autumn";elsecout << "winter";return 0;
}

P B是不是太迟了
题意:输入年月日,判断是否大于2020/10/29。

分析:使用scanf的格式化输出,去除月和日,比较日期和10月29的前后大小。

题解:

#include
using namespace std;
int main()
{int y,m,d;scanf("%d/%d/%d",&y,&m,&d);if(m>10) cout << "QAQ";else{if(m==10&&d>28) cout << "QAQ";elsecout << "No. It's not too late.";}return 0;
}

Q 前天是哪天
题意:输入日期,输入这一天的前一天的日期。

分析:判断日期为1或2的时候会变成前一个月份,月份为1,会变成前一个年份,需要判断闰年。注意输出格式。(不然wa7个点。

题解:

#include
using namespace std;
bool ex(int year)
{if((year%4==0 && year%100!=0)||(year%400==0))return 1;return 0;
}
int s[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int ss[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int main()
{int a,b,c;scanf("%d-%d-%d",&a,&b,&c);if(c>=3){c-=2;}else{if(b>=2){c-=2;if(ex(a))c+=ss[b-1];elsec+=s[b-1];b-=1;}else{a-=1;b=12;c-=2;c+=31;}}printf("%d-%02d-%02d",a,b,c);return 0;
}

R L1-2单位换算
题意:给你英尺数,换算成毫米并输出。

分析:直接写出简单算式即可。

题解:

#include
using namespace std;
int main()
{int n;cin >> n;cout << n*12*2.54*10;return 0;
}

S 纸牌
题意:两张数值为n的纸牌,每次操作可以让一张纸牌的数值减去小于等于另一张纸牌数值的数,问三次操作后,两纸牌的和最小为多少。

分析:写几个样例不难发现,当n为偶数时,纸牌最小和为n/2,当n为奇数时,最小和为n/2+1。

题解:

#include
using namespace std;
int main()
{int n;cin >> n;if(n&1)cout << n/2+1;elsecout << n/2;return 0;
}

T 排队领水
题意:n个人排队,不少于a个人在他前面,不多于b个人在他后面。

分析:前面取最少的a个人,后面就是取0、1、2…b个位置。但如果n-a比较大,就只有n-a个位置。

题解:

#include
using namespace std;int main()
{int n, a, b;cin >> n >> a >> b;n-=a;cout << min(n,b+1);return 0;
}

U 可编程拖拉机比赛
题意:比赛中10%、20%、30%的队伍会获得金牌、银牌、铜牌,上取整会使很多奖牌上升一级,问多少铁牌变铜牌、铜牌变银牌、银牌变金牌。

分析:上取整和下取整,相减即可。

题解:

#include
using namespace std;
int main()
{double n;cin >> n;int a,b,c,aa,bb,cc;a = (int)(n*0.1);b = (int)(n*0.2);c = (int)(n*0.3);aa = ceil(n*0.1);bb = ceil(n*0.2);cc = ceil(n*0.3);int aaa, bbb, ccc;aaa = aa - a;bbb = bb - b;ccc = cc - c;cout << aaa << " ";cout << aaa + bbb << " ";cout << aaa + bbb + ccc << endl;return 0;
}

V [NOIP2004]不高兴的津津
题意:输入津津上课时间和上复习班时间,津津的学习时间越长越会不高兴,问哪一天最不高兴,一样最不高兴就输出最前面的一天。

分析:把上课时间和上复习班的时间相加,判断最大的一天。

题解:

#include
using namespace std;
int main()
{int ans=0;int max=0;for(int i=1;i<=7;i++){int x, y;cin >> x >> y;int p = x + y;if(p>max){ans = i;max = p;}}cout << ans;return 0;
}

W [NOIP2008]ISBN号码
题意:输入合法的ISBN的号码,要求按规则计算ISBN的识别码,判断识别码是否正确。

分析:以此取出各位数字,计算后与识别码对比,输出即可。

题解:

#include
using namespace std;
int main()
{int ans=0;int max=0;for(int i=1;i<=7;i++){int x, y;cin >> x >> y;int p = x + y;if(p>max){ans = i;max = p;}}cout << ans;return 0;
}

相关内容

热门资讯

“男子持刀入室盗窃”视频引发关... 近日,一段疑似“小偷”入室盗窃被业主家中监控拍下的视频在网上引发关注。11月21日晚,“翠屏公安”微...
绝不允许日本军国主义幽灵复活!... 2025年11月7日,日本首相高市早苗宣称,如果中国大陆对台湾出动军舰并使用武力,可能会构成“存亡危...
【解决】AI法律助手荣获202... 2025全球数字经济大会启幕,搭建国际数字合作高端平台 经国务院批准,由北京市人民政府、国家互联网信...
嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...
家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...