1012 数字分类
#include<stdio.h>
int main(){
int list[1005];
int a[5];
int temp=0;
int flag=1;//每次进行交错求和
int count=0;//统计a4的个数
int max=0,n=0;//统计a5的最大值
int num;//N个正整数
scanf("%d",&num);
for(int i=0;i<5;i++){//将a1~a5存在数组中
a[i]=0;
}
while(num>0){//持续获得输入的元素
scanf("%d",&temp);
if(temp%5==0){//a1
if(temp%2==0) a[0]+=temp;
}
else if(temp%5==1){//a2
a[1]+=flag*temp;
flag*=-1;
n=1;//代表进行了加减运算
}
else if(temp%5==2){//a3
a[2]+=1;
}
else if(temp%5==3){//a4
a[3]+=temp;
count++;
}else if(temp%5==4){//a5
if(temp>max){
max=temp;
}
}
num--;
}
//输出
if(a[0]==0){
printf("N ");
}else{
printf("%d ",a[0]);
}
if(n==1){
printf("%d ",a[1]);
}else{
printf("N ");
}
if(a[2]==0){
printf("N ");
}else{
printf("%d ",a[2]);
}
if(count>0){
printf("%.1f ",(float)a[3]/(float)count);
}else{
printf("N ");
}
if(max==0){
printf("N");
}else{
printf("%d",max);
}
return 0;
}
ps.
a4时考虑Not a number
特别提醒:不能利用a2等于0来判断是否存在a2这类数,需要另外使用一个标记项来进行判断,测试点8:A2可以存在和为0 的情况,此时需要输出0
这道题很细节,网上也有很多人直接将a5初始值为0,导致了最后测试8不通过的情况
1018 锤子剪刀布
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
题目中缺少了一个条件:
一局没赢就输出布B;如果解不唯一,则输出按字母序最小的解,所以判断的顺序必须是’B’,‘C’,‘J’
这个点我没注意到所以改了很久
#include<stdio.h>
int main(){
int count;//交锋的次数
scanf("%d",&count);
int a=0,b=0,c=0;//分别表述甲胜,乙胜,平的次数
char ch1,ch2;//分别表示当局甲乙两人的手势
int m[3]={0};//分别表示甲赢的时候出手势CJB
int n[3]={0};//分别表示乙赢的时候出手势CJB
char sample[3]={'B','C','J'};//如果解不唯一,则输出按字母序最小的解
int p=0,q=0;//确定位置
int temp1=0,temp2=0;//零时最大值
while(count>0){//石头剪刀布的判断过程
getchar();
scanf("%c %c",&ch1,&ch2);
if((ch1=='B'&&ch2=='B')||(ch1=='C'&&ch2=='C')||(ch1=='J'&&ch2=='J')){
c++;//平局
}else if(ch1=='C'){
if(ch2=='J') {
a+=1;
m[1]+=1;
}
else if(ch2=='B') {
b+=1;
n[0]+=1;
}
}else if(ch1=='B'){
if(ch2=='C') {
a+=1;
m[0]+=1;
}
else if(ch2=='J') {
b+=1;
n[2]+=1;
}
}else if(ch1=='J'){
if(ch2=='B') {
a+=1;
m[2]+=1;
}
else if(ch2=='C'){
b+=1;
n[1]+=1;
}
}
count--;
}
for(int i=0;i<3;i++){//寻找出现最多次的手势
if(m[i]>temp1){
temp1=m[i];
p=i;
}
if(n[i]>temp2){
temp2=n[i];
q=i;
}
}
//打印的格式
printf("%d %d %d\n",a,c,b);
printf("%d %d %d\n",b,c,a);
if(a==0) p=0;
if(b==0) q=0;
printf("%c %c",sample[p],sample[q]);
return 0;
}