---7.1--- #include #include #include #define SIZE 20 struct student { char name[11]; int point; }; void gen_str(char s[], int n); void display(struct student x[], int n); int main(void) { struct student group[SIZE], w; int i, j, max; for (i = 0; i < SIZE; i++) { gen_str(group[i].name, rand() % 5 + 6); group[i].point = rand() % 101; } printf("整列前:\n"); display(group, SIZE); for (i = 0; i < SIZE; i++) { max = i; for (j = i + 1; j < SIZE; j++) if (group[j].point > group[max].point) max = j; w = group[i]; group[i] = group[max]; group[max] = w; } printf("整列後:\n"); display(group, SIZE); return EXIT_SUCCESS; } void display(struct student x[], int n) { int i; for (i = 0; i < n; i++) printf("%-15s%4d\n", x[i].name, x[i].point); } void gen_str(char s[], int n) { int i; for (i = 0; i < n; i++) s[i] = rand() % 26 + 'a'; s[i] = '\0'; } ---7.2--- #include #include #define SIZE sizeof(double) union d_c { double d; char c[SIZE]; }; void bit_ptn(int c); int main(void) { union d_c x; int i; printf("実数を入力して下さい:\n"); scanf("%lf", &x.d); for (i = 0; i < SIZE; i++) { bit_ptn(x.c[i]); putchar(' '); } putchar('\n'); return EXIT_SUCCESS; } void bit_ptn(int c) { int i; for (i = 7; i >= 0; i--) putchar(c & (1 << i) ? '1' : '0'); }