目录
1000 : A+B Problem
C语言版
C++版
1001 : 植树问题
C语言版
C++版
1002 : 简单多项式求和
C语言版
C++版
1003 : 两个整数的四则运算
C语言版
C++版
1004 : 三位数的数位分离
C语言版
C++版
补充代码
1005 : 整数幂
C语言版
C++版
1006 : 求等差数列的和
C语言版
C++版
1007 : 鸡兔同笼
C语言版
C++版
1008 : 美元和人民币
C语言版
C++版
1009 : 求平均分
C语言版
C++版
1010 : 求圆的周长和面积
C语言版
C++ 版
1000 : A+B Problem
题目描述
Calculate a+b
输入
Two integers a,b (0<=a,b<=10)
输出
Output a+b
样例输入
1 2样例输出
3
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int a, b; // 定义两个整型变量a和b,用于存储用户输入的两个整数
scanf("%d%d", &a, &b); // 使用scanf函数从标准输入读取两个整数,分别存储到变量a和b中
printf("%d\n", a + b); // 使用printf函数将变量a和b的和输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main() // 主函数,程序的入口
{
int a, b; // 定义两个整型变量a和b,用于存储用户输入的两个整数
cin >> a >> b; // 使用cin从标准输入读取两个整数,分别存储到变量a和b中
cout << a + b << endl; // 使用cout将变量a和b的和输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
1001 : 植树问题
题目描述
某学校植树节开展植树活动,已知树苗有m株,参加植树的同学有n人(且m>n),请问每位同学平均可以植树几株?还有几株剩余?
输入
输入两个整数m和n,分别表示树苗的数量和学生的人数(m>n)。
输出
输出每位同学平均植树的数量及剩余的树苗数量。
样例输入
163 32
样例输出
5 3
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int m, n; // 定义两个整型变量m和n,用于存储树苗数和人数
scanf("%d%d", &m, &n); // 使用scanf函数从标准输入读取两个整数,分别存储到变量m和n中
int average = m / n; // 计算m除以n的商,结果存储在变量average中,表每位同学平均植树的数量
int surplus = m % n; // 计算m除以n的余数,结果存储在变量surplus中,表剩余的树苗数量。
printf("%d %d\n", average, surplus); // 使用printf函数将商和余数输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main() // 主函数,程序的入口
{
int m, n; // 定义两个整型变量m和n,用于存储用户输入的两个整数
cin >> m >> n; // 使用cin从标准输入读取两个整数,分别存储到变量m和n中
int average = m / n; // 计算m除以n的商,结果存储在变量average中,表每位同学平均植树的数量
int surplus = m % n; // 计算m除以n的余数,结果存储在变量surplus中,表剩余的树苗数量。
cout << average << " " << surplus << endl; // 使用cout将商和余数输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
1002 : 简单多项式求和
题目描述
求下列多项式的值:
y=2+x+8
输入
输入整数x的值
输出
计算并输出y的值
样例输入
1样例输出
11
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int x; // 定义一个整型变量x,用于存储用户输入的整数
scanf("%d", &x); // 使用scanf函数从标准输入读取一个整数,存储到变量x中
int y = 2 * x * x + x + 8; // 计算二次多项式2x^2 + x + 8的值,结果存储在变量y中
printf("%d\n", y); // 使用printf函数将计算结果输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main() // 主函数,程序的入口
{
int x; // 定义一个整型变量x,用于存储用户输入的整数
cin >> x; // 使用cin从标准输入读取一个整数,存储到变量x中
int y = 2 * x * x + x + 8; // 计算二次多项式2x^2 + x + 8的值,结果存储在变量y中
cout << y << endl; // 使用cout将计算结果输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
1003 : 两个整数的四则运算
题目描述
输入两个整数num1和num2,请你设计一个程序,计算并输出它们的和、差、积、整数商及余数。
输入
输入只有两个正整数num1、num2。
输出
输出占一行,包括两个数的和、差、积、商及余数,数据之间用一个空格隔开。
样例输入
1 2
样例输出
3 -1 2 0 1
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int num1, num2; // 定义两个整型变量num1和num2,用于存储用户输入的两个整数
scanf("%d%d", &num1, &num2); // 使用scanf函数从标准输入读取两个整数,分别存储到变量num1和num2中
int ans1 = num1 + num2; // 计算num1和num2的和,结果存储在变量ans1中
int ans2 = num1 - num2; // 计算num1和num2的差,结果存储在变量ans2中
int ans3 = num1 * num2; // 计算num1和num2的积,结果存储在变量ans3中
int ans4 = num1 / num2; // 计算num1和num2的商,结果存储在变量ans4中
int ans5 = num1 % num2; // 计算num1和num2的余数,结果存储在变量ans5中
printf("%d %d %d %d %d\n", ans1, ans2, ans3, ans4, ans5); // 使用printf函数将计算结果输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main()
{
int num1, num2; // 定义两个整型变量num1和num2,用于存储用户输入的两个整数
cin>>num1>>num2; // 使用cin从标准输入读取两个整数,分别存储到变量num1和num2中
int ans1 = num1 + num2; // 计算num1和num2的和,结果存储在变量ans1中
int ans2 = num1 - num2; // 计算num1和num2的差,结果存储在变量ans2中
int ans3 = num1 * num2; // 计算num1和num2的积,结果存储在变量ans3中
int ans4 = num1 / num2; // 计算num1和num2的商,结果存储在变量ans4中
int ans5 = num1 % num2; // 计算num1和num2的余数,结果存储在变量ans5中
cout<<ans1<<" "<<ans2<<" "<<ans3<<" "<<ans4<<" "<<ans5<<endl; // 使用cout将计算结果输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
1004 : 三位数的数位分离
题目描述
从键盘输入一个任意的3位正整数,分别求出其个位、十位和百位上的数字
输入
输入任意的一个三位正整数。
输出
依次输出个位、十位、百位上的数字。以空格间隔,但最后一个数据的后面没有空格,直接换行。
样例输入
367
样例输出
7 6 3
思路:输入一个三位数,通过取模和整除操作提取个位、十位和百位数,然后输出这三个数。
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int num; // 定义一个整型变量num,用于存储用户输入的整数
scanf("%d", &num); // 使用scanf函数从标准输入读取一个整数,存储到变量num中
int ans1 = num % 10; // 计算num的个位数,结果存储在变量ans1中
int ans2 = num / 10 % 10; // 计算num的十位数,结果存储在变量ans2中
int ans3 = num / 100; // 计算num的百位数,结果存储在变量ans3中
printf("%d %d %d\n", ans1, ans2, ans3); // 使用printf函数将个位、十位和百位数输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main()
{
int num; // 定义一个整型变量num,用于存储用户输入的整数
cin>>num;// 使用cin从标准输入读取一个整数,存储到变量num中
int ans1 = num % 10; // 计算num的个位数,结果存储在变量ans1中
int ans2 = num / 10 % 10; // 计算num的十位数,结果存储在变量ans2中
int ans3 = num / 100; // 计算num的百位数,结果存储在变量ans3中
cout<<ans1<<" "<<ans2<<" "<<ans3<<endl;// 使用cout将个位、十位和百位数输出到标准输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
补充代码
思路:将三位数表示看作三个字符,分别顺序存储到字符数组的三个位置,然后逆序输出这三个字符。
C语言(字符数组)版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
char num[3]; // 定义一个字符数组num,长度为3,用于存储用户输入的三个字符
scanf("%c%c%c", &num[0], &num[1], &num[2]); // 使用scanf函数从标准输入读取三个字符,分别存储到num数组的三个位置
printf("%c %c %c\n", num[2], num[1], num[0]); // 使用printf函数将num数组中的字符以相反的顺序输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
C++(字符数组)版
#include<iostream> // 包含标准输入输出流库,用于使用cin和cout
using namespace std; // 使用标准命名空间,这样可以避免在使用cin和cout时需要前缀std::
int main() // 主函数,程序的入口
{
char num[3]; // 定义一个字符数组num,长度为3,用于存储用户输入的三个字符
cin >> num[0] >> num[1] >> num[2]; // 使用cin从标准输入读取三个字符,分别存储到num数组的三个位置
cout << num[2] << " " << num[1] << " " << num[0] << endl; // 使用cout将num数组中的字符以相反的顺序输出,并换行
return 0; // 主函数返回0,表示程序正常结束
}
1005 : 整数幂
题目描述
输入3个整数,输出它们的1次幂、2次幂和3次幂。
输入
输入3整数,用空格隔开
输出
输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐
样例输入
1 5 100
样例输出
1 1 1 5 25 125 100 10000 1000000
注意:输出格式的有特别要求
思路:输入三个整数,程序分别计算每个数的平方和立方,然后以左对齐、宽度为9的格式输出每个数及其平方和立方。
C语言版
#include<stdio.h> // 包含标准输入输出头文件,用于使用printf和scanf函数
int main() // 主函数,程序的入口
{
int a, b, c; // 定义三个整型变量a、b和c,用于存储用户输入的三个整数
scanf("%d%d%d", &a, &b, &c); // 使用scanf函数从标准输入读取三个整数,分别存储到变量a、b和c中
// 输出变量a及其平方和立方,每个输出项占9个字符宽度,左对齐
printf("%-9d%-9d%-9d\n", a, a * a, a * a * a);
// 输出变量b及其平方和立方,每个输出项占9个字符宽度,左对齐
printf("%-9d%-9d%-9d\n", b, b * b, b * b * b);
// 输出变量c及其平方和立方,每个输出项占9个字符宽度,左对齐
printf("%-9d%-9d%-9d\n", c, c * c, c * c * c);
return 0; // 主函数返回0,表示程序正常结束
}
C++版
了解操纵符setw点击这里:C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed -CSDN博客
#include<iostream>
#include<iomanip> // 包含用于控制输出格式的头文件
using namespace std;
int main()
{
int a, b, c; // 定义三个整数变量
cin >> a >> b >> c; // 从标准输入读取三个整数
// 输出每个数的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐
// 对于变量a:
cout << setw(9) << left << a // 输出a的1次幂,占9列,左对齐
<< setw(9) << left << a * a // 输出a的2次幂,占9列,左对齐
<< setw(9) << left << a * a * a << endl; // 输出a的3次幂,占9列,左对齐,换行
// 对于变量b:
cout << setw(9) << left << b // 输出b的1次幂,占9列,左对齐
<< setw(9) << left << b * b // 输出b的2次幂,占9列,左对齐
<< setw(9) << left << b * b * b << endl; // 输出b的3次幂,占9列,左对齐,换行
// 对于变量c:
cout << setw(9) << left << c // 输出c的1次幂,占9列,左对齐
<< setw(9) << left << c * c // 输出c的2次幂,占9列,左对齐
<< setw(9) << left << c * c * c << endl; // 输出c的3次幂,占9列,左对齐,换行
return 0; // 程序结束
}
C++(使用C语言风格的输入输出)
#include<iostream>
using namespace std;
int main()
{
int a, b, c; // 定义三个整数变量
scanf("%d%d%d", &a, &b, &c); // 使用scanf从标准输入读取三个整数
// 使用printf输出每个数的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐
// 对于变量a:
printf("%-9d%-9d%-9d\n", a, a * a, a * a * a); // 输出a的1次幂、2次幂和3次幂,左对齐,每列9个字符
// 对于变量b:
printf("%-9d%-9d%-9d\n", b, b * b, b * b * b); // 输出b的1次幂、2次幂和3次幂,左对齐,每列9个字符
// 对于变量c:
printf("%-9d%-9d%-9d\n", c, c * c, c * c * c); // 输出c的1次幂、2次幂和3次幂,左对齐,每列9个字符
return 0; // 程序结束
}
1006 : 求等差数列的和
题目描述
给出三个整数,分别表示等差数列的第一项、最后一项和公差,求该数列的和。
输入
输入三个整数,之间用空格隔开。第1个数作为首项,第2个数作为末项,第3个数作为公差,
输出
输出占一行,包含一个整数,为该等差数列的和。
样例输入
2 11 3
样例输出
26
本质同1002,把等差求和公式表示出来即可
注意:此数列的公差d一定不为0,因为d为0,项数就无法确定,数列和就求不出来.另外题目已经表明数列和为整数,无需考虑数列和为浮点数的情况
C语言版
#include<stdio.h>
int main()
{
int a1, an, d; // 定义变量,分别表示等差数列的首项、末项和公差
scanf("%d%d%d", &a1, &an, &d); // 从用户输入读取首项、末项和公差
// 计算等差数列的项数
// 项数 = (末项 - 首项) / 公差 + 1
int length = (an - a1) / d + 1;
// 计算等差数列的和
// 等差数列的和公式:sum = (首项 + 末项) * 项数 / 2
// 注意:这里假设输入的首项、末项和公差能够形成一个合法的等差数列
int sum = ((a1 + an) * length) / 2;
// 输出等差数列的和
printf("%d\n", sum);
return 0; // 程序正常结束
}
C++版
#include<iostream>
using namespace std;
int main()
{
int a1, an, d; // 定义变量,分别表示等差数列的首项、末项和公差
cin >> a1 >> an >> d; // 从标准输入读取首项、末项和公差
// 计算等差数列的项数
// 项数 = (末项 - 首项) / 公差 + 1
int length = (an - a1) / d + 1;
// 计算等差数列的和
// 等差数列的和公式:sum = (首项 + 末项) * 项数 / 2
// 注意:这里假设输入的首项、末项和公差能够形成一个合法的等差数列
int sum = ((a1 + an) * length) / 2;
// 输出等差数列的和
cout << sum << endl;
return 0; // 程序正常结束
}
若用C语言风格的输入输出,代码几乎同C语言版,除了头文件
#include<iostream>
int main()
{
int a1,an,d;
scanf("%d%d%d",&a1,&an,&d);
int length=(an-a1)/d + 1;
int sum = ((a1+an)*length)/2;
printf("%d\n",sum);
return 0;
}
1007 : 鸡兔同笼
题目描述
鸡和兔关在一个笼子里,鸡有2只脚,兔有4只脚,没有例外。已知现在可以看到笼子里m个头和n只脚,求鸡和兔子各有多少只?
输入
输入两个整数m和n,分别代表笼子里头的个数和脚的个数。(假设m和n都在合法的数据范围内)
输出
依次输出鸡和兔的只数。(数字为0的也要输出)
样例输入
12 40
样例输出
4 8
本质同1002,列出公式即可
思路:
兔子数量计算:
使用公式
rabbit = (leg - 2 * head) / 2
计算兔子的数量。这个公式基于鸡兔同笼问题的性质,即兔子的数量等于脚数减去两倍的头数,再除以2。
鸡的数量计算:
使用公式
chick = head - rabbit
计算鸡的数量。这个公式基于鸡兔同笼问题的性质,即鸡的数量等于头数减去兔子的数量。
C语言版
#include<stdio.h>
int main()
{
int head, leg; // 定义变量,分别表示头数和脚数
scanf("%d%d", &head, &leg); // 从用户输入读取头数和脚数
// 计算兔子的数量
// 兔子的数量 = (脚数 - 2 * 头数) / 2
int rabbit = (leg - 2 * head) / 2;
// 计算鸡的数量
// 鸡的数量 = 头数 - 兔子的数量
int chick = head - rabbit;
// 输出鸡和兔子的数量
printf("%d %d\n", chick, rabbit);
return 0; // 程序正常结束
}
C++版
#include<iostream>
using namespace std;
int main()
{
int head, leg; // 定义变量,分别表示头数和脚数
cin >> head >> leg; // 从标准输入读取头数和脚数
// 计算兔子的数量
// 兔子的数量 = (脚数 - 2 * 头数) / 2
int rabbit = (leg - 2 * head) / 2;
// 计算鸡的数量
// 鸡的数量 = 头数 - 兔子的数量
int chick = head - rabbit;
// 输出鸡和兔子的数量
cout << chick << " " << rabbit << endl;
return 0; // 程序正常结束
}
1008 : 美元和人民币
题目描述
美元越来越贬值了,手上留有太多的美元似乎不是件好事。赶紧算算你的那些美元还值多少人民币吧。假设美元与人民币的汇率是1美元兑换6.5573元人民币,编写程序输入美元的金额,输出能兑换的人民币金额。
输入
输入美元的金额。
输出
输出能兑换的人民币的数值。输出保留2位小数。
样例输入
100
样例输出
655.73
注意:定义变量时要用double或者flaot
C语言版
#include<stdio.h> // 包含标准输入输出头文件
const double rate = 6.5573; // 定义美元对人民币的汇率常量
int main() {
double dollar, RMB; // 定义两个双精度浮点变量,分别存储美元和人民币金额
scanf("%lf", &dollar); // 从用户输入中读取美元金额
RMB = dollar * rate; // 将美元金额乘以汇率,计算出对应的人民币金额
printf("%.2f\n", RMB); // 输出计算后的人民币金额,保留两位小数
return 0; // 程序正常结束,返回0
}
C++版
(了解操纵符fixed和setprecision:C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed -CSDN博客)
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出格式控制库
using namespace std; // 使用标准命名空间
const double rate = 6.5573; // 定义美元对人民币的汇率常量
int main() {
double dollar, RMB; // 定义两个双精度浮点变量,分别存储美元和人民币金额
cin >> dollar; // 从用户输入中读取美元金额
RMB = dollar * rate; // 将美元金额乘以汇率,计算出对应的人民币金额
cout << setprecision(2) << fixed << RMB << endl; // 输出计算后的人民币金额,保留两位小数
return 0; // 程序正常结束,返回0
}
1009 : 求平均分
题目描述
已知某位学生的数学、英语和计算机课程的成绩,求该生三门课程的平均分
输入
输入三个整数,数据之间由空格隔开。
输出
输出一行,包含一个实数,为三门课的平均分,保留两位小数
样例输入
87 73 93
样例输出
84.33
C语言版
#include<stdio.h> // 包含标准输入输出头文件
int main() {
int math, Chinese, computer; // 定义三个整型变量,分别存储数学、语文和计算机的成绩
double average; // 定义一个双精度浮点变量,用于存储平均成绩
scanf("%d%d%d", &math, &Chinese, &computer); // 从用户输入中读取三门课程的成绩
average = (math + Chinese + computer) / 3.0; // 计算三门课程的平均成绩
printf("%.2f\n", average); // 输出平均成绩,保留两位小数
return 0; // 程序正常结束,返回0
}
C++版
了解格式操纵符点击:C++ 中用于控制输出格式的操纵符——setw 、setfill、setprecision、fixed -CSDN博客
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出格式控制库
using namespace std; // 使用标准命名空间
int main() {
int math, Chinese, computer; // 定义三个整型变量,分别存储数学、语文和计算机的成绩
double average; // 定义一个双精度浮点变量,用于存储平均成绩
cin >> math >> Chinese >> computer; // 从用户输入中依次读取三门课程的成绩
average = (math + Chinese + computer) / 3.0; // 计算三门课程的平均成绩
cout << setprecision(2) << fixed << average << endl; // 输出平均成绩,保留两位小数
return 0; // 程序正常结束,返回0
}
1010 : 求圆的周长和面积
题目描述
输入圆的半径,求圆的周长和面积。
要求定义圆周率为如下宏常量
#define PI 3.14159了解#define宏定义点击:C/C++中的#define和const的特点与区别-CSDN博客
输入
输入一个实数,表示圆的半径r。
输出
输出一行,包括周长和面积。数据之间用一个空格隔开,数据保留小数后面两位。
样例输入
3样例输出
18.85 28.27注意:用double或float定义半径、周长和面积变量
输入为实数时用浮点型定义变量
C语言版
#include<stdio.h> // 包含标准输入输出头文件
#define PI 3.14159 // 定义宏PI,表示圆周率的值
int main() {
double r, C, S; // 定义三个双精度浮点变量,分别存储半径、周长和面积
scanf("%lf", &r); // 从用户输入中读取圆的半径
C = 2 * PI * r; // 计算圆的周长
S = PI * r * r; // 计算圆的面积
printf("%.2f %.2f\n", C, S); // 输出圆的周长和面积,均保留两位小数
return 0; // 程序正常结束,返回0
}
C++ 版
#include<iostream> // 包含标准输入输出流库
#include<iomanip> // 包含输入输出格式控制库
#define PI 3.14159 // 定义宏PI,表示圆周率的值
#define av(y) setprecision(y)<<fixed // 定义宏av,用于设置输出的精度和固定小数点格式
using namespace std; // 使用标准命名空间
int main() {
double r, C, S; // 定义三个双精度浮点变量,分别存储半径、周长和面积
cin >> r; // 从用户输入中读取圆的半径
C = 2 * PI * r; // 计算圆的周长
S = PI * r * r; // 计算圆的面积
cout << av(2) << C << " " << av(2) << S << endl; // 输出圆的周长和面积,均保留两位小数
return 0; // 程序正常结束,返回0
}