标签:变量 超过 分类 精度控制 pre min getch ott net
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:
每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。
对给定的 N 个正整数,按题目要求计算 A?1??~A?5?? 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出 N
。
13 1 2 3 4 5 6 7 8 9 10 20 16 18
30 11 2 9.7 9
8 1 2 4 5 6 7 9 16
N 11 2 N 9
1 #include<iostream> 2 #include<iomanip> 3 using namespace std; 4 5 int main() { 6 int n; //测试用例的个数 7 int a[1000] = { 0 }; //存放输入的数据 8 cin >> n; //输入正整数 9 getchar(); 10 for (int i = 0; i < n-1; i++) { 11 cin >> a[i]; 12 getchar(); 13 } 14 cin >> a[n - 1]; 15 16 //计算A1 17 int a1=0; 18 for (int i = 0; i < n; i++) { 19 if (a[i] % 5 == 0 && a[i]%2==0) { 20 a1 += a[i]; 21 } 22 } 23 24 //计算A2 25 int a2 = 0; 26 int b = -1; 27 int judge = 0; 28 for (int i = 0; i < n; i++) { 29 if (a[i] % 5 == 1) { 30 b *= -1; 31 a2 += b * a[i]; 32 judge++; 33 } 34 } 35 36 //计算A3 37 int cnt1 = 0;//计数器1 38 int a3 = 0; 39 for (int i = 0; i < n; i++) { 40 if (a[i] % 5 == 2) { 41 cnt1++; 42 } 43 } 44 a3 = cnt1; 45 46 //计算A4 47 double a4 = 0; 48 int cnt2 = 0; //计数器2 49 for (int i = 0; i < n; i++) { 50 if (a[i] % 5 == 3) { 51 a4 += a[i]; 52 cnt2++; 53 } 54 } 55 if (a4 > 0) { 56 a4 /= cnt2; 57 } 58 59 //计算A5 60 int max = 0; 61 for (int i = 0; i < n; i++) { 62 if (a[i] % 5 == 4) { 63 if (a[i] >= max) { 64 max = a[i]; 65 } 66 } 67 } 68 69 //输出 70 if (a1 == 0) cout << "N" << ‘ ‘; 71 else if (a1 > 0) cout << a1 << ‘ ‘; 72 73 if (judge == 0)cout << "N" << ‘ ‘; //因为a2的结果可能是负,可能为正,也可能为0 74 else cout << a2 << ‘ ‘; //所以需要一个judge变量,来记录有没有出现除5余数为1的数 75 76 if (a3 == 0) cout << "N" << ‘ ‘; 77 else if (a3 > 0) cout << a3 << ‘ ‘; 78 79 if (a4 == 0) cout << "N" << ‘ ‘; //fixed可以保证是保留小数点后一位 80 else if (a4 > 0) cout <<fixed<<setprecision(1)<< a4 << ‘ ‘; 81 82 if (max == 0) cout << "N" ; 83 else if (max > 0) cout << max ; 84 85 86 return 0; 87 }
有关于输出的精度控制,如何指定保留几位小数,可以参考这篇文章:https://www.cnblogs.com/shikamaru/p/7830963.html
标签:变量 超过 分类 精度控制 pre min getch ott net
原文地址:https://www.cnblogs.com/oaoa/p/10664421.html