int foo (int n) { return 3*n-2; }
#include <stdio.h> int main(void) { int i=1; while (i<20) { if (i++%5==0) { printf("%d ", i+1); } } printf("%d ", i-1); return 0; }
赤字になっているブレースを挿入するのが、
ifやforなどでは、選択されたり、 繰り返したりされる文が一つだけの場合も、ブレースに囲む。という注意書きの意味である。
printf("%d ", i-1);の位置を間違えている解答が非常に多い。 逆に言うと、このような誤解を招いてしまうから、 インデンテーションをして、きちんとブレースをつけることが必要なのである。
この問題は実際に実行してみることを禁止されているのではないので、 実行して出力が変わらないか確かめてみるべきである。 中間テストのときにも同じ注意をしたはずなのに、守れていない。
#include <stdio.h> int main(void) { int i, j, k=0, n; printf("何段ですか:"); scanf("%d", &n); for (i=1; i<=n; i++) { for (j=1; j<=i; j++) { printf("%d", k++ % 10); } printf("\n"); } return 0; }
#include <stdio.h> void foo(int n) { int i; for (i=1; i<=n; i++) { printf(" %d", i); if (i%2==0) { if (i%3!=0) { putchar('!'); } } else if (i%3==0) { putchar('!'); } } } int main(void) { int n; do { printf("正の整数を入力してください: "); scanf("%d", &n); } while (n<=0); foo(n); putchar('\n'); return 0; }
#include <stdio.h> void fuga(int vc[], int n) { int i; for (i=0; i<n; i++) { if (vc[i]%4==3) { printf(" %d", i); } } } int vc1[] = {1, 2, 3, 4, 5, 6}; int vc2[] = {2, 4, 6, 8, 10, 12}; int vc3[] = {10, 13, 16, 19, 22, 25}; int vc4[] = {3, 7, 11, 15, 19, 23}; int main(void) { printf("vc1中の条件を満たす要素の添字は、"); fuga(vc1, sizeof(vc1)/sizeof(vc1[0])); printf("です。\n"); printf("vc2中の条件を満たす要素の添字は、"); fuga(vc2, sizeof(vc2)/sizeof(vc2[0])); printf("です。\n"); printf("vc3中の条件を満たす要素の添字は、"); fuga(vc3, sizeof(vc3)/sizeof(vc3[0])); printf("です。\n"); printf("vc4中の条件を満たす要素の添字は、"); fuga(vc4, sizeof(vc4)/sizeof(vc4[0])); printf("です。\n"); return 0; }