教えて君
【問題】
分数を表す構造体を定義し、それを要素とする配列を宣言する。次にその配列に標準入力から分数の分母と分子を読み込む。
そして、その配列を分数の値の小さい順にソートするプログラムを作成せよ。入力する分数は3つですべて分子は整数、かつ分母は正の整数とする。
#include <stdio.h> #include <stdlib.h> typedef struct { int den; int num; } Fraction; int cmp(const void* a, const void* b) { Fraction aa = *(Fraction*)a; Fraction bb = *(Fraction*)b; if (aa.den==bb.den && aa.num==bb.num) return 0; else if ((double)aa.num/aa.den - (double)bb.num/bb.den > 0) return 1; else return -1; } int main(void) { Fraction array[3]; int i; array[0].num = 3; array[0].den = 7; array[1].num = 1; array[1].den = 3; array[2].num = 2; array[2].den = 5; printf("before\n"); for (i = 0;i < 3;i++) printf("%d/%d ", array[i].num, array[i].den); qsort(array, 3, sizeof(Fraction), cmp); printf("\nafter\n"); for (i = 0;i < 3;i++) printf("%d/%d ", array[i].num, array[i].den); return 0; }
「全くわからないのですが、教えてください」
そりゃ、プログラミングで食ってくぞ!って学生は少ないだろうし、プログラミングが楽しいっていう学生も少ないだろうけどさ。