一、输入流
#include<stdio.h>
int main(){
int a,b,c;
scanf("_______",&a,&b,&c);//请补充代码
printf("%d",a+b+c);
return 0;
}
输入流中有五个整数,但要求你只输出其中的第1、3、5个数的和。
输入样例:
1 2 3 4 5
输出样例:
9
输入样例:
12 25 8 65 7
输出样例:
27
解决代码:
#include<stdio.h>
int main() {
int a, b, c;
scanf("%d %*d %d %*d %d", &a, &b, &c); //请补充代码
printf("%d", a + b + c);
return 0;
}
解析:
%d
:读取并存储一个整数。%*d
:读取一个整数但不存储(*
是赋值抑制符,表示跳过该值)。
二、输入定制
输入数据是一大串数字,要求读取五个数,但要求你只处理其中的第1、3、5个数,输出这三个数的和。第一个数只读1位数,第二个数只读2位数,第三个数只读3位数,第四个数只读4位数,第五个数只读5位数。
输入样例:
说明:按照题意,此样例要求你读入的数据依次是:1,23,456,7890,12345,最后输出1+456+12345的和是12802
12345678901234567890
输出样例:
12802
解决代码:
#include <stdio.h>
int main() {
int num1, num3, num5;
// %1d 表示读取 1 位整数,%2d 表示读取 2 位整数,以此类推
// 利用 %*d 跳过不需要处理的数
scanf("%1d %*2d %3d %*4d %5d", &num1, &num3, &num5);
int sum = num1 + num3 + num5;
printf("%d\n", sum);
return 0;
}
代码解析
- 变量定义:定义
num1
、num3
、num5
三个整型变量,用于存储需要处理的第 1、3、5 个数。 scanf
函数:%1d
:表示从输入流中读取 1 位整数,并存储到num1
中。%*2d
:*
是赋值抑制符,%*2d
表示从输入流中读取 2 位整数,但不存储,即跳过第二个数。%3d
:表示从输入流中读取 3 位整数,并存储到num3
中。%*4d
:表示从输入流中读取 4 位整数,但不存储,跳过第四个数。%5d
:表示从输入流中读取 5 位整数,并存储到num5
中。- 计算与输出:将
num1
、num3
、num5
相加得到sum
,然后使用printf
函数输出sum
的值。
三、一个或多个输入
输入最多两个整数,如果输入的是一个整数,就输出它的平方,如果输入的是两个整数,就输出它们的乘积。
输入样例:
25
输出样例:
625
输入样例:
2 5
输出样例:
10
解决代码:
#include <stdio.h>
int main() {
int num1, num2;
char ch; // 用于检测输入中的字符
// 尝试读取第一个整数
if (scanf("%d", &num1) == 1) {
// 检查是否有第二个整数
ch = getchar(); // 读取下一个字符(可能是空格或换行符)
if (ch == ' ') {
// 如果有空格,说明可能有第二个整数
if (scanf("%d", &num2) == 1) {
printf("%d\n", num1 * num2);
} else {
// 如果没有第二个整数,输出第一个整数的平方
printf("%d\n", num1 * num1);
}
} else {
// 没有空格,说明只有一个整数
printf("%d\n", num1 * num1);
}
}
return 0;
}
四、一个或多个输入(二)
编程输入几个整数,最多4个,最少1个,输出它们的和、平均值。
输入样例1:
1 2 3 4
输出样例1:
SUM=10,AVG=2.50
输入样例2:
1 3 2
输出样例2:
SUM=6,AVG=2.00
输入样例3:
1
输出样例3:
SUM=1,AVG=1.00
解决代码:
#include <stdio.h>
int main() {
int nums[4];
int count = 0;
double sum = 0.0;
double avg = 0.0;
// 读取输入的整数,最多4个
while (count < 4 && scanf("%d", &nums[count]) == 1) {
sum += nums[count];
count++;
}
// 计算平均值
if (count > 0) {
avg = sum / count;
}
// 输出结果,保留两位小数
printf("SUM=%.0f,AVG=%.2f\n", sum, avg);
return 0;
}
代码说明:
- 数组定义:定义了一个长度为 4 的整数数组
nums
,用于存储输入的整数。 - 计数器与累加和:使用
count
记录实际输入的整数个数,sum
累加所有输入的整数。 - 输入处理:通过
while
循环读取输入,最多读取 4 个整数,当读取到文件结束符或达到 4 个整数时停止。 - 平均值计算:在输入结束后,根据实际输入的整数个数计算平均值。
- 输出格式化:使用
%.0f
确保和没有小数部分,%.2f
确保平均值保留两位小数。
评论区