- gf24153 的博客
《Mod笔谈:2025年GESP三级题目讲解》
- 2025-9-27 14:24:51 @
前言
有点水了吧……
不是,说白了,这么简单的两道编程题,怎么可能没人过!
第一题:把数组清零(应该是这个意思吧)
小明跟非全零数组过不去,如果数组不为全零,那么他就要发力了!
第一步:他要把最大的拿过来,但是如果有俩,必须是下标最大的。
第二步:他又要把最小的找到
最后把赋值为
直到这个数组为全零数组
很简单,直接枚举就行(毕竟三级的题目本来都是枚举)
代码如下
#include<iostream>
using namespace std;
int n,a[105],maxn,minn=2100000000,mxi,ans;
bool flag=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(1){
for(int i=1;i<=n;i++){
if(a[i]!=0){
flag=0;
}
if(a[i]>=maxn){
maxn=a[i];
mxi=i;
}
if(a[i]<minn&&a[i]!=0){
minn=a[i];
}
}
if(flag)break;
a[mxi]=maxn-minn;
ans++;
mxi=0;
maxn=0;
minn=2100000000;
flag=1;
}
cout<<ans;
return 0;
}
第二题:输出2025年n月份的日历
题目的介绍和标题一个意思
这个更是简单,打印图形题目都做完了吧?嵌套if语句学了吧?好了,你可以把这题做出来了。
#include<iostream>
#include<iomanip>
using namespace std;
int n;
int main(){
cin>>n;
cout<<"MON TUE WES TUR FRI SAT SUN"<<endl;//打了星期先
if(n==1){
for(int i=1;i<=8;i++)cout<<' ';//把空格打了先
for(int i=1;i<=5;i++){
cout<<setw(3)<<i<<' ';
}
for(int i=6;i<=31;i++){//i为天数
if((i-6)%7==0)cout<<endl;
cout<<setw(3)<<i<<' ';
}
}
//后面不会还要我写吧啊?
return 0;
}