Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- struct Fracao {
- int numer, denom;
- double result;
- };
- int main() {
- int n, i, j, k, cont = 0, menor = 0, aux1, aux2;
- double calc = 0.0, aux = 0.0;
- struct Fracao farey[200];
- scanf("%d", &n);
- if (n == 0) {
- printf("0/1");
- } else if (n == 1) {
- printf("0/1\n1/1"); //resposta padrão
- } else {
- for (i = 1; i <= n; i++) {
- for (j = 1; j <= n; j++) {
- calc = (i * 1.0) / j; // conversão p/ decimal
- if (calc < 1) {
- farey[cont].numer = i;
- farey[cont].denom = j;
- farey[cont].result = calc;
- //printf("%d/%d ", farey[cont].numer,
- // farey[cont].denom);
- //printf("%f\n", farey[cont].result);
- cont++;
- }
- }
- }
- for (i = 0; i < cont; i++) {
- for (j = i+1; j < cont;) {
- if (farey[j].result == farey[i].result) {
- for (k = j; k < cont; k++) {
- farey[k].numer = farey[k+1].numer;
- farey[k].denom = farey[k+1].denom;
- farey[k].result = farey[k+1].result;
- }
- cont--;
- } else {
- j++;
- }
- }
- }
- for (i = 0; i < cont; i++) {
- for (j = 0; j < cont; j++) {
- if (farey[i].result < farey[j].result) {
- aux1 = farey[i].numer;
- aux2 = farey[i].denom;
- aux = farey[i].result;
- farey[i].numer = farey[j].numer;
- farey[i].denom = farey[j].denom;
- farey[i].result = farey[j].result;
- farey[j].numer = aux1;
- farey[j].denom = aux2;
- farey[j].result = aux;
- }
- }
- }
- printf("0/1\n");
- for (i = 0; i < cont; i++) {
- printf("%d/%d\n", farey[i].numer, farey[i].denom);
- }
- printf("1/1\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement