-
Notifications
You must be signed in to change notification settings - Fork 1
/
9.1加减法问题.cpp
45 lines (43 loc) · 1.7 KB
/
9.1加减法问题.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// 9.1加减法问题.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//某明星每年都会做慈善,小明统计了一下这个明星今年做了3次慈善,第一次捐助希望小学x万元,第二次捐助一个癌症患者y万元,第三次举办了慈善晚会,募捐z万元,其中有t万元是其他人捐助的。
//
//请问,这个明星今年一共捐助了多少钱?(万元)
//输入: 4个空格分开的正实数(单精度实数)
// 输出:总共捐款数(只输出数值,保留小数点后的小数2位)
// 如果输入不合法,则输出error
// 例如 :
//输入:3 5 7 5.5
//输出:10.50
//
//输入:5 - 2 1 3
//输出:error
//
//输入:3 a 2 1
//输出:error
#include "pch.h"
#include <iostream>
#include "stdio.h"
int main()
{
float sum, x, y, z, t,a;
a = scanf_s("%f %f %f %f", &x, &y, &z, &t);
if ((a==4)&&(x >= 0 && y >= 0 && z >= 0 && t >= 0))//a==4表明四个输入格式全正确,均为数字
{
sum = x + y + z - t;
printf("%.2f\n", sum);
// printf("%.2f", a);//可用于检测正确的输入个数
}
else
{
printf("error");
}
}
/*此题难度在于非数字输入的处理,单纯使用scanf不能判断输入格式是否正确,这时要考虑其返回值,
scanf返回一个int型的数字,若有多个输入变量,此数字为直到第一个错误出现之前的正确输入变量个数,
例如本题设置为4个float型,输入字符则会错误,
输入 1 2 3 4
scanf返回值为4,4个输入均正确
输入1 2 a 4
返回值为2,错误出在第三个输入处,因此只有前两个正确
输入 a 2 3 4
返回值为0,因为第一个输入就出错*/