2.2 变量的输入和输出
例 2-5
苹果采购(洛谷P5703)。现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
输入格式
输入两个不超过 109 正整数,分别表示每人分到的数量和同学的人数。
输出格式
一个整数,表示答案。保证输入和答案都在int范围内的非负整数。
输入输出样例
| 输入 | 输出 |
|---|---|
5 3 |
15 |
解答
建模分析
已经知道人数和苹果,题目就可以转化成简单的乘法运算了。
#include<iostream>
using namespace std;
int main()
{
int t,n;
cin>>t>>n;
cout<<t*n<<endl;
return 0;
}
例 2-6
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。
建模分析
char变量类型本质是一个 0 ~ 127 的整数。大小写转换只需要减去大小写字母之间的差值即可。
解答
#include<iostream>
using namespace std;
int main()
{
char x;
cin>>x;
x=x-('a'-'A');
cout<<x;
return 0;
}
注意: 小写字母的值比大写字母大。
例 2-7
输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。
建模分析
首先格式十分规范,保证了是三位数加一位小数。那么就可以通过取余来获得各位数字。小数点后的数字可以通过升位来解决。
得到各位数字后,反向输出即可。
解答
#include<iostream>
using namespace std;
float a;
int bb,q,b,s,g;
int main()
{
cin>>a;
a=a*10;
bb=a;
q=bb/1000;
b=bb%1000/100;
s=bb%100/10;
g=bb%10;
cout<<g<<"."<<s<<b<<q;
return 0;
}
另外一个解法就是获取输入的时候不把输入当作数字来获取,直接当作一个一个的字符来获取。
而且输入位数固定,那就更简单了。
#include<iostream>
using namespace std;
int main()
{
char a,b,c,dot,d;
cin>>a>>b>>c>>dot>>d;
cout<<d<<dot<<c<<b<<a<<endl;
return 0;
}
C语言版
#include<cstdio>
using namespace std;
int main()
{
char a,b,c,d;
scanf("%c%c%c.%c",&a,&b,&c,&d);
printf("%c.%c%c%c",d,c,b,a);
return 0;
}
例 2-8
现在有 t 毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。输入一个实数 t 和一个整数 n,使用空格隔开。输出两个数字表示答案,使用换行隔开。
0≤t≤10000 且不超过3位小数,1≤n≤1000
建模分析
因为知道总数 t 和 n 个同学,可以将题目需求转化成 除法 运算。
解答
#include<iostream>
#include <iomanip>
using namespace std;
float n;
int t;
int main()
{
cin>>n>>t;
n=n/(float)t;
t=t*2;
cout<<setprecision(3)<<fixed<<n<<endl;
cout<<t;
return 0;
}
C语言版
#include<iostream>
using namespace std;
int main()
{
double t;
int n;
scanf("%lf%d",&t,&n);
printf("%.3f\n%d",t/n,n*2);
return 0;
}
表 2-3
常见输入输出占位符
| 占位符 | 说明 |
|---|---|
%d |
一个十进制整数,一般用于int类型。 |
%nd (n是正整数) |
输出一个整数,如果不足 n 位,前面用空格补齐直到够 n 位 |
%I64d (Windows)%lld (Linux) |
一个十进制整数,一般用于 long long 类型。要非常注意在不同的操作系统下,这个占位符是不一样的 |
%f |
读入一个 float 类型的带小数点的浮点数,或者输出 float 或者 double 类型的浮点数,默认 6 位小数 |
%lf |
读入doulbe类型的浮点数 |
%.nf (n是正整数) |
用于输出一个固定n位小数的浮点数 |
%0nd (n是正整数) |
输出一个整数,如果不足 n 位,前面用 0 补齐直到够 n 位 |
%c |
一个char类型的字符 |
%s |
一个字符串 |
博主的个人网站:https://codespark.cn/

浙公网安备 33010602011771号