- C/C++の宿題片付けます 167代目
767 :デフォルトの名無しさん[sage]:2014/07/21(月) 11:38:49.42 ID:ast8VTmN - >>765
#include <stdio.h> #define N 128 #define S 5 void p(int *h, int *u, int *l, int n) { int i, j; for (i = 0; i < n; i++) { printf("%3d - %3d| ", l[i], u[i] - 1); for (j = 0; j < h[i]; j++) printf("*"); printf("\n"); } } int main() { int i, j, n, a[N], h[S] = {0}, s = 0; int u[S] = { 101, 90, 80, 70, 60 }, l[S] = { 90, 80, 70, 60, 0 }; if (scanf("%d", &n) != 1) return fprintf(stderr, "invalid input\n"), 1; if (n >= N || n <= 0) return fprintf(stderr, "n must be lesser than %d\n", N), 1; for (i = 0; i < n; i++) { if (scanf("%d", &a[i]) != 1) return fprintf(stderr, "invalid input (i = %d)\n", i), 1; s += a[i]; for (j = 0; j < S; j++) if (a[i] >= l[j] && a[i] < u[j]) break; if (j == S) return fprintf(stderr, "invalid input (i = %d)\n", i), 1; h[j]++; } printf("sum = %d, ave = %g\n", s, (double) s / n); p(h, u, l, S); return 0; }
|
|