当前位置:   article > 正文

1054 求平均值 (C++)_c++问题 a: 循环结构实验——求输入的一组实数中正数的平均值

c++问题 a: 循环结构实验——求输入的一组实数中正数的平均值

本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。

输入格式:

输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。

输出格式:

对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出结果:The average of K numbers is Y,其中 K 是合法输入的个数,Y 是它们的平均值,精确到小数点后 2 位。如果平均值无法计算,则用 Undefined 替换 Y。如果 K 为 1,则输出 The average of 1 number is Y

输入样例 1:

  1. 7
  2. 5 -3.2 aaa 9999 2.3.4 7.123 2.35

结尾无空行

输出样例 1:

  1. ERROR: aaa is not a legal number
  2. ERROR: 9999 is not a legal number
  3. ERROR: 2.3.4 is not a legal number
  4. ERROR: 7.123 is not a legal number
  5. The average of 3 numbers is 1.38

结尾无空行

输入样例 2:

  1. 2
  2. aaa -9999

结尾无空行

输出样例 2:

  1. ERROR: aaa is not a legal number
  2. ERROR: -9999 is not a legal number
  3. The average of 0 numbers is Undefined

结尾无空行

代码:

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <cmath>
  4. using namespace std;
  5. int Str_Cmp(char str1[],char str2[]);
  6. int main()
  7. {
  8. int n;
  9. scanf("%d",&n);
  10. int k = n;
  11. double sum = 0.0;
  12. char str1[50],str2[50];
  13. for(int i = 0; i < n; i++){
  14. double temp;
  15. scanf("%s",str1);
  16. sscanf(str1,"%lf",&temp);
  17. sprintf(str2,"%.2lf",temp);
  18. if(fabs(temp) <= 1000&&!Str_Cmp(str1,str2)){
  19. sum += temp;
  20. }
  21. else{
  22. k--;
  23. printf("ERROR: %s is not a legal number\n",str1);
  24. }
  25. }
  26. if(!k){
  27. printf("The average of 0 numbers is Undefined");
  28. }
  29. else if(k == 1){
  30. printf("The average of 1 number is %.2lf",sum);
  31. }
  32. else{
  33. printf("The average of %d numbers is %.2lf",k,sum / k);
  34. }
  35. return 0;
  36. }
  37. int Str_Cmp(char str1[],char str2[])
  38. {
  39. int len1 = strlen(str1);
  40. for(int i = 0; i < len1; i++){
  41. if(str1[i] != str2[i]){
  42. return 1;
  43. }
  44. }
  45. return 0;
  46. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/517645
推荐阅读
相关标签
  

闽ICP备14008679号