C++ 数字分类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++ 数字分类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2582字,纯文字阅读大概需要4分钟。
内容图文
1012 数字分类 (20分)
输入格式:
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。
输出格式:
对给定的 N 个正整数,按题目要求计算 A?1??~A?5?? 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出 N
。
输入样例 1:
13 1 2 3 4 5 6 7 8 9 10 20 16 18
?
输出样例 1:
30 11 2 9.7 9
?
输入样例 2:
8 1 2 4 5 6 7 9 16
?
输出样例 2:
N 11 2 N 9
算法思想:
由于输出的数字只有5个,就不需要数组了,直接在接收数据时对其进行处理就可以。我又犯了没看题的老毛病,把开始的13看成一个数,得出的平均数就不同,看了好久才找到哪里错了。
其中要注意的一点是:余数=1时,一开始设定的初始值是0,但是交错相加有等于0 的可能,因此我设定了一个bool类型的值,如果没有余数=1 的数,flag的值就不会变。
还有一点是两个函数:
1.cout << fixed << setprecision(1) << average4 << " "; 输出的精确到小数点后几位 #include <iomanip>
2.sum2 += pow(-1.0,time2)*num; -1的n次幂 #include <cmath>
完整代码如下:
1 #include <iostream> 2 #include <iomanip> 3 #include <cmath> 4 5 using namespace std; 6 int main() 7 { 8 //输入个数 9 int counts,time = 0; 10 cin >> counts; 11 12 int num; 13 int sum1 = 0;//A1 14 15 int time2 = 1,sum2 = 0;//A2 16 bool flag2 = false;//判断是否有余数为1的数 17 18 int count3 = 0;//A3 19 20 double count4 = 0,sum4 = 0,average4 = 0;//A4 21 22 int max_num = 0;//A5 23 while(time < counts && cin >> num) 24 { 25 int remainder = num % 5; 26 switch(remainder) 27 { 28 case 0: 29 if(num%2 == 0)sum1+=num; 30 break; 31 case 1: 32 time2++; 33 sum2 += pow(-1.0,time2)*num; 34 flag2 = true;//若flag2的值改变则表示有余数为1的值 35 break; 36 case 2: 37 count3 ++; 38 break; 39 case 3: 40 sum4 += num; 41 count4++; 42 average4 = sum4/count4; 43 break; 44 case 4: 45 max_num = num > max_num ? num:max_num; 46 break; 47 } 48 time++; 49 } 50 51 if(sum1 == 0)cout << "N "; 52 else cout << sum1 << " "; 53 54 if(!flag2)cout << "N "; 55 else cout << sum2 << " "; 56 57 if(count3 == 0)cout << "N "; 58 else cout << count3 << " "; 59 60 if(average4 == 0)cout << "N "; 61 else cout << fixed << setprecision(1) << average4 << " "; 62 63 if(max_num == 0)cout << "N"; 64 else cout << max_num; 65 66 67 68 return 0; 69 }
内容总结
以上是互联网集市为您收集整理的C++ 数字分类全部内容,希望文章能够帮你解决C++ 数字分类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。