27分代码
#include<bits/stdc++.h>
using namespace std;
struct Node{
short x,y;
}a[30000005];
int gcd(int x,int y){
if(x>y) swap(x,y);
if(!x*y) return x+y;
return gcd(y%x,x);
}
int n,s=1;
int cmp(Node x,Node y){return x.x*1.0/x.y<y.x*1.0/y.y;}
int main(){
cin>>n;
for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(gcd(i,j)==1) a[s].x=i,a[s].y=j,s++;
sort(a+1,a+s+1,cmp);
cout<<"0/1\n";
for(int i=1;i<s;i++) cout<<a[i].x<<"/"<<a[i].y<<endl;
cout<<"1/1";
return 0;
}
把sort(a+1,a+s+1,cmp)改成sort(a+1,a+s,cmp)就过了,为什么?