新手天翼
本以为没错,结果错了💢💢💢
#include<iostream>
#include<algorithm>
using namespace std;
int cnt;
int gcd(int x,int y){
int r;
while(x%y!=0){
r=x%y;
x=y;
y=r;
}
return y;
}
struct fs{
int jg,fm,fz;
}a[170];
bool cmp(fs s,fs d){
return s.jg<d.jg;
}
int main(){
int n;
cin>>n;
cout<<0<<"/"<<1<<endl;
for(int i=1;i<=n;i++){
for(int j=n;j>=i+1;j--){
double k=i*1.0/j;
if(gcd(i,j) && k<=1){
cnt++;
a[i].jg=1/j*i;
a[i].fm=i;
a[i].fz=j;
}
}
}
sort(a+1,a+cnt+1,cmp);
for(int i=1;i<=cnt;i++){
cout<<a[i].fz<<"/"<<a[i].fm<<endl;
}
cout<<1<<"/"<<1;
return 0;
}
李素妍在2020-07-14 19:09:01追加了内容
@柯以成
李素妍在2020-07-14 19:18:20追加了内容
柯先生
#include<iostream>
#include<algorithm>
using namespace std;
struct dddd{
int a,b;
double s;
}nn[111111];
int duan(int a,int b,int n){
for(int i=2;i<=n;i++){
if(a%i==0&&b%i==0)
return 0;
}
return 1;
}
bool cmp(dddd x,dddd y){
return x.s<y.s;
}
int main(){
int n,k=0;
cin>>n;
cout<<"0/1"<<endl;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(i==1){
nn[k].a=i;
nn[k].b=j;
nn[k].s=1.00*i/j;
k++;
}
else if(duan(i,j,n)){
nn[k].a=i;
nn[k].b=j;
nn[k].s=1.00*i/j;
k++;
}
}
}
sort(nn+1,nn+k+1,cmp);
for(int i=1;i<=k;i++){
cout<<nn[i].a<<"/"<<nn[i].b<<endl;
}
cout<<"1/1"<<endl;
return 0;
}
李素妍在2020-07-14 19:30:39追加了内容
#include<iostream>
#include<algorithm>
using namespace std;
struct dddd{
int a,b;
double s;
}nn[111111];
int duan(int a,int b,int n){
for(int i=2;i<=n;i++){
if(a%i==0&&b%i==0)
return false;
}
return true;
}
bool cmp(dddd x,dddd y){
return x.s<y.s;
}
int main(){
int n,k=0,i,j;
cin>>n;
cout<<"0/1"<<endl;
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(i==1){
nn[k].a=i;
nn[k].b=j;
nn[k].s=1.0*i/j;
k++;
}
else if(duan(i,j,n)){
nn[k].a=i;
nn[k].b=j;
nn[k].s=1.0*i/j;
k++;
}
}
}
sort(nn+1,nn+k+1,cmp);
for(int i=1;i<=k;i++){
cout<<nn[i].a<<"/"<<nn[i].b<<endl;
}
cout<<"1/1"<<endl;
return 0;
}
新手光能
sort(nn+1,nn+k+1,cmp);
改成
sort(nn,nn+k,cmp);
for(int i=1;i<=k;i++){
cout<<nn[i].a<<"/"<<nn[i].b<<endl;
}
改成
for(int i=0;i<k;i++){
cout<<nn[i].a<<"/"<<nn[i].b<<endl;
}
柯以成在2020-07-14 19:40:10追加了内容
采纳我
新手光能
a[i].jg=1/j*i;
这个写错了,
应该是
a[i].jg=1.0*i/j;
还有循环判断时i=1时,所有都可以,所以要加个判断
if(i==1){
cnt++;
a[i].jg=1.0*i/j;
a[i].fm=i;
a[i].fz=j;
}
求采纳!!!
柯以成在2020-07-14 17:35:39追加了内容
@李素妍