CEIT 23练习编程题 代码

本文部分题目提供c/c++两种解法,顺便可以让你们知道c++在面对某些题时的优势
部分题目提供多种解法

日期格式化

image

#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;
}

求成绩最大值

image

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的返回值来作为循环条件
但是这种输入方式的题不会太多 了解就行,重点在如何判断素数
image

#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;
    }
}
posted @ 2023-10-16 19:58  Cheng_Mao  阅读(81)  评论(0编辑  收藏  举报