1012 数字分类
思路
根据A1,A2,A3,A4,A5的相关内容进行编程(较为简单,具体详见代码)
补充:判断字符为回车的代码:
// An highlighted block
#include<iostream>
using namespace std;
int main(){
int a[50],i=0;
while(std::cin>>a[i]){
if(cin.get()!=='\n')
break;
i++;
}
}
注意事项
-
格式问题
建议使用printf函数,当然使用
cout
函数也可以,只要能把握好格式。
// An highlighted block
#include<cstdio>
int main(){
printf("<格式化字符串>", <参量表>);
return 0;
}
这样可以解决大多数的格式问题。
- 输出问题
题目中要求输出A1~A5,若没有该类,则输出N
。
此题的关键点在此,判断是否有该类的数存在。
首先要对每一类初始化一个计数变量来记录下每类的个数,而不能通过查看A1~A5的值是否大于0来判断(我刚开始一直AC不成功,后来顿悟!)
代码
// An highlighted block
//
// main.cpp
// 数字分类 (20)
//
// Created by Zide Liu on 2019/8/9.
// Copyright © 2019 Zide Liu. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <cmath>
#include<iomanip>
using namespace std;
int main(int argc, const char * argv[]) {
int A1=0,A2=0,A3=0,A4=0,A5=0;
int a;
int a1=0,a2=0,a3=0,a5=0;
float a4=0.0;
int N;
cin>>N;
while(cin>>a&&N){
if(a%5==0){
if(a%2==0){A1+=a;a1++;}
}
else if(a%5==1){
A2+=pow(-1, a2)*a;
a2++;
}
else if(a%5==2){
A3++;
a3++;
}
else if(a%5==3){
A4+=a;
a4++;
}
else if(a%5==4){
if(A5<a){A5=a;a5++;}
}
if(cin.get()=='\n')
break;
N--;
}
(a1>0)?(cout<<A1<<" "):(cout<<"N ");
(a2>0)?(cout<<A2<<" "):(cout<<"N ");
(a3>0)?(cout<<A3<<" "):(cout<<"N ");
(a4>0)?(cout<<fixed<<setprecision(1)<<A4/a4<<" "):(cout<<"N ");
(a5>0)?(cout<<A5):(cout<<"N");
return 0;
}