求助三目运算符
查看原帖
求助三目运算符
205782
R浩轩泽Anmicius楼主2021/4/22 17:29

原来的代码:

#pragma GCC opitimize(2)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,k;
double a,b,num_a,num_b;
inline void read(int &x){
	x=0;int f=1;char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=x*10+(ch^48);
		ch=getchar();
	}
	x*=f;
}
int main(){
	read(n);read(k);
	for(int i=1;i<=n;++i)
	(!(i%k))?++num_a,a+=i:++num_b,b+=i;
	printf("%.1lf %.1lf",a/num_a,b/num_b);
	return 0;
}

这样样例都过不了,果断放弃三目:

#pragma GCC opitimize(2)
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,k;
double a,b,num_a,num_b;
inline void read(int &x){
	x=0;int f=1;char ch=getchar();
	while(!isdigit(ch)){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(isdigit(ch)){
		x=x*10+(ch^48);
		ch=getchar();
	}
	x*=f;
}
int main(){
	read(n);read(k);
	for(int i=1;i<=n;++i)
	if(!(i%k))++num_a,a+=i;
	else ++num_b,b+=i;
	printf("%.1lf %.1lf",a/num_a,b/num_b);
	return 0;
}

这样就A掉了

这三目和if有什么区别吗)

2021/4/22 17:29
加载中...