博主:命运之光
专栏:算法修炼之练气篇
前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)
目录
题目 1036: [编程入门]带参数宏定义练习
题目描述
输入格式
输出格式
样例输入
样例输出
题目 1051: [编程入门]结构体之成绩统计2
题目描述
输入格式
输出格式
样例输入
样例输出
题目 1050: [编程入门]结构体之成绩记录
题目描述
输入格式
输出格式
样例输入
样例输出
题目 1049: [编程入门]结构体之时间设计
题目描述
输入格式
输出格式
样例输入
样例输出
题目 1042: [编程入门]电报加密
题目描述
输入格式
输出格式
样例输入
样例输出
🍓🍓今日份修炼结束,再接再厉!!!
题目 1036: [编程入门]带参数宏定义练习
题目描述
定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
输入格式
两个数,空格隔开
输出格式
交换后的两个数,空格隔开
样例输入
1 2
样例输出
2 1
#include<bits/stdc++.h>
#define change(a,b) t=a,a=b,b=t
int main()
{
int a,b,t;
scanf("%d %d",&a,&b);
change(a,b);
printf("%d %d",a,b);
return 0;
}
题目 1051: [编程入门]结构体之成绩统计2
题目描述
有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)
输入格式
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出格式
各门课的平均成绩 最高分的学生的数据(包括学号、姓名、3门课成绩)
样例输入
2
1 blue 90 80 70
b clan 80 70 60
样例输出
85 75 65
1 blue 90 80 70
#include<bits/stdc++.h>
int n,i,sum1=0,sum2=0,sum3=0,temp=0,cout=0;
struct student{
char id[100];
char name[100];
int score[3];
int Totalscore;
}s[100];
void input(int i){
scanf("%s %s %d %d %d",s[i].id,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);
}
void average()
{
for(i=0;i<n;i++)
{
sum1=sum1+s[i].score[0];
sum2=sum2+s[i].score[1];
sum3=sum3+s[i].score[2];
}
sum1=sum1/n;sum2=sum2/n;sum3=sum3/n;
printf("%d %d %d\n",sum1,sum2,sum3);
}
void height()
{
for(i=0;i<n;i++)
{
s[i].Totalscore=s[i].score[0]+s[i].score[1]+s[i].score[2];
}
for(i=0;i<n;i++)
{
if(temp<=s[i].Totalscore)
{
temp=s[i].Totalscore;
cout=i;
}
}
printf("%s %s %d %d %d\n",s[cout].id,s[cout].name,s[cout].score[0],s[cout].score[1],s[cout].score[2]);
}
int main()
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
input(i);
}
average();
height();
return 0;
}
题目 1050: [编程入门]结构体之成绩记录
题目描述
现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。 编写一个函数input,用来输入一个学生的数据记录。 编写一个函数print,打印一个学生的数据记录。 在主函数调用这两个函数,读取N条记录输入,再按要求输出。 N<100
输入格式
学生数量N占一行 每个学生的学号、姓名、三科成绩占一行,空格分开。
输出格式
每个学生的学号、姓名、三科成绩占一行,逗号分开。
样例输入
2
a100 clang 70 80 90
b200 dotcpp 90 85 75
样例输出
a100,clang,70,80,90
b200,dotcpp,90,85,75
#include<bits/stdc++.h>
struct student{
char id[100];
char name[100];
int score[3];
}s;
void input(){
scanf("%s %s %d %d %d",s.id,s.name,&s.score[0],&s.score[1],&s.score[2]);
}
void print(){
printf("%s,%s,%d,%d,%d\n",s.id,s.name,s.score[0],s.score[1],s.score[2]);
}
int main()
{ int n;
scanf("%d",&n);
while(n--)
{
input();
print();
}
return 0;
}
题目 1049: [编程入门]结构体之时间设计
题目描述
定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
输入格式
年月日
输出格式
当年第几天
样例输入
2000 12 31
样例输出
366
#include<bits/stdc++.h>
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},i,sum=0;
struct time
{
int year;
int m;
int day;
}t;
int main()
{
scanf("%d %d %d",&t.year,&t.m,&t.day);
if(t.year%100!=0&&t.year%4==0||t.year%400==0)
{
month[2]=29;
}
for(i=1;i<t.m;i++)
{
sum=sum+month[i];
}
printf("%d",sum+t.day);
return 0;
}
题目 1042: [编程入门]电报加密
题目描述
输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。
输入格式
一行字符
输出格式
加密处理后的字符
样例输入
a b
样例输出
b c
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s[1000];
int i;
gets(s);
int len=strlen(s);
for(i=0;i<len;i++)
{
if(s[i]>='a'&&s[i]<='z')
{
if(s[i]=='z')
{
s[i]='a';
}
else
{
s[i]=s[i]+1;
}
}
printf("%c",s[i]);
}
return 0;
}