sscanf,sprintf使用
1. 原文
The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be legal. A legal input is a real number in [−1000,1000] and is accurate up to no more than 2 decimal places. When you calculate the average, those illegal numbers must not be counted in.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤100). Then Nnumbers are given in the next line, separated by one space.
output Specification:
For each illegal input number, print in a line ERROR: X is not a legal number
where X
is the input. Then finally print in a line the result: The average of K numbers is Y
where K
is the number of legal inputs and Y
is their average, accurate to 2 decimal places. In case the average cannot be calculated, output Undefined
instead of Y
. In case K
is only 1, output The average of 1 number is Y
instead.
Sample Input 1:
1 | 7 |
Sample output 1:
1 | ERROR: aaa is not a legal number |
Sample Input 2:
1 | 2 |
Sample output 2:
1 | ERROR: aaa is not a legal number |
2. 解析
输入格式判断
sscanf(c,”%lf”,&num); 字符串以浮点数格式赋值给num
sprintf(c,”%.2f”,num); num以字符串格式赋值给字符串
3. AC代码
1 |
|