CEIT 23练习编程题 代码
本文部分题目提供c/c++两种解法,顺便可以让你们知道c++在面对某些题时的优势
部分题目提供多种解法
日期格式化
#include <stdio.h>
int main(){
int m,d,y;
scanf("%d-%d-%d",&m,&d,&y);
printf("%04d-%02d-%02d",y,m,d);
return 0;
}
求成绩最大值
C
1.全部录入后处理
#include <stdio.h>
int main(){
int score[7]; //储存成绩
int max_idx; //最大成绩下标
int max_score = 0; //最大成绩
for(int i=0;i<7;i++)scanf("%d",score+i);
for(int i=0;i<7;i++){
if(score[i]>max_score){
max_idx = i;
max_score = score[i];
}
}
printf("选手最高得分:%d",score[max_idx]);
return 0;
}
2.实时维护最大值
#include <stdio.h>
int main(){
int max_score=0,tmp;
for(int i=0;i<7;i++){
scanf("%d",&tmp);
if(tmp>max_score)max_score = tmp;
}
printf("选手最高得分:%d",max_score);
return 0;
}
C++
全部录入处理
#include "iostream"
#include "algorithm"
using namespace std;
int main(){
int s[7];
for(int i=0;i<7;i++)cin>>s[i];
cout<<"选手最高得分:"<<*max_element(s,s+7);
return 0;
}
实时维护最大值
#include "iostream"
using namespace std;
int main(){
int tmp,max_score;
for(int i=0;i<7;i++){
cin>>tmp;
max_score=max(tmp,max_score);
}
cout<<"选手最高得分:"<<max_score;
return 0;
}
素数
因为题目中并未说明有多少行数据,所以要使用scanf的返回值来作为循环条件
但是这种输入方式的题不会太多 了解就行,重点在如何判断素数
#include <stdio.h>
bool isPrime(int x) {
if(x==1)return false ;
int i = 2;
for (; i <= x; i++)if (x % i == 0)break;
if (i >= x)return true;
else return false;
}
int main() {
int l, r;
while (scanf("%d %d", &l, &r)!=EOF) {
bool is_first = true;
for (int i = l; i <= r; i++) {
if (isPrime(i)) {
if (!is_first)printf(" ");
is_first = false;
printf("%d", i);
}
}
printf("\n");
}
}
return 0;
求简单交错序列前N项和
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
double zi=1,mu=1,ans=0;
for(int i = 1;i<= n;i++,mu+=4){
if(i%2==0)ans-=zi/mu;
else ans+=zi/mu;
}
printf("sum = %.6lf",ans);
}
最小回文数
C
#include <stdio.h>
bool Reversible(int num){
int reversed_num = 0;
int origin_num = num;
while (num%10){
reversed_num = reversed_num*10 + num%10;
num/=10;
}
if(reversed_num == origin_num)return true;
else return false;
}
int main(){
int t,n;
scanf("%d",&t);
while (t--){
scanf("%d",&n);
while (!Reversible(++n));
printf("%d\n",n);
}
}
C++
#include "iostream"
#include "algorithm"
using namespace std;
bool Reversible(int num){
string str_num;
str_num = to_string(num);
reverse(str_num.begin(), str_num.end());
return to_string(num) == str_num;
}
int main(){
int t,n;
cin>>t;
while (t--){
cin>>n;
while (!Reversible(++n));
cout<<n<<endl;
}
}