平均点 27.08点(満点 32点)
32 | ******* |
30〜31 | ********************* |
28〜29 | ******************* |
26〜27 | ******** |
24〜25 | ***** |
22〜23 | **** |
20〜21 | **** |
〜19 | ***** |
平均点 3.64点(満点 8点)
8 | **************** |
7 | |
6 | *********** |
5 | |
4 | ********* |
3 | * |
2 | **************** |
1 | * |
0 | ******************* |
#include <stdio.h> int main(void) { int k, n=1; for (k=1; k<10; k++) { if (k%3!=0) { n*=k; } } printf("%d ", n); return 0; }
以下はコメント。
中間テストとほぼ同じような問題にも関わらず、正解率が低い。(25/73)
赤字になっているブレースを挿入するのが、
ifやforなどでは、選択されたり、 繰り返したりされる文が一つだけの場合も、ブレースに囲む。という注意書きの意味である。
printf("%d ", n);の位置を間違えている解答が非常に多い。 逆に言うと、このような誤解を招いてしまうから、 インデンテーションをして、きちんとブレースをつけることが必要なのである。
この問題は実際に実行してみることを禁止されているのではないので、 実行して出力が変わらないか確かめてみるべきである。 中間テストのときにも同じ注意をしたはずなのに、守れていない。
#include <stdio.h> int main(void) { int i, j, k=0, w, h; printf("横幅:"); scanf("%d", &w); printf("高さ:"); scanf("%d", &h); for (i=0; i<h; i++) { for (j=0; j<w; j++) { printf("%d", k++ % 10); } printf("\n"); } return 0; }
#include <stdio.h> int multiplicity(int m, int n) { int c = 0; while (n%m == 0) { n /= m; c++; } return c; } int main(void) { printf("multiplicity(2, 3) = %d\n", multiplicity(2, 3)); printf("multiplicity(2, 12) = %d\n", multiplicity(2, 12)); printf("multiplicity(2, 200) = %d\n", multiplicity(2, 200)); printf("multiplicity(2, 1023) = %d\n", multiplicity(2, 1023)); printf("multiplicity(3, 162) = %d\n", multiplicity(3, 162)); printf("multiplicity(5, 1000) = %d\n", multiplicity(5, 1000)); printf("multiplicity(3, 999999999) = %d\n", multiplicity(3, 999999999)); return 0; }
#include <stdio.h> int increasing(int vc[], int no) { int i; for (i=1; i<no; i++) { if (vc[i]<=vc[i-1]) { return 0; } } return 1; } int arr1[] = {2, 3, 5, 7, 11, 13}; int arr2[] = {2, 3, 7, 5, 11, 13}; int arr3[] = {1, 2, 3, 4, 5, 6, 7, 1}; int arr4[] = {1, 2, 3, 4, 5, 6, 7, 7}; int arr5[] = {1, 2, 3, 4, 5, 6, 7, 9}; int main(void) { if (increasing(arr1, sizeof(arr1)/sizeof(int))) { printf("arr1は単調増加です。\n"); } else { printf("arr1は単調増加ではありません。\n"); } if (increasing(arr2, sizeof(arr2)/sizeof(int))) { printf("arr2は単調増加です。\n"); } else { printf("arr2は単調増加ではありません。\n"); } if (increasing(arr3, sizeof(arr3)/sizeof(int))) { printf("arr3は単調増加です。\n"); } else { printf("arr3は単調増加ではありません。\n"); } if (increasing(arr4, sizeof(arr4)/sizeof(int))) { printf("arr4は単調増加です。\n"); } else { printf("arr4は単調増加ではありません。\n"); } if (increasing(arr5, sizeof(arr5)/sizeof(int))) { printf("arr5は単調増加です。\n"); } else { printf("arr5は単調増加ではありません。\n"); } return 0; }