本文部分题目提供c/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;
}
02d的含义:当有效数字不足2位时,前面使用0将其补成2位
比如输入了6月,直接输出会输出2003-6-11,但是我们需要的是2023-06-11,
求成绩最大值
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的返回值来作为循环条件
但是这种输入方式的题不会太多 了解就行,重点在如何判断素数
C
#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;
标签:main,return,23,int,题解,CEIT,score,max,include
From: https://www.cnblogs.com/ChengMao/p/17768185.html