質問: d) { printf("正解です!\n"); e++; } else { printf("残念ながら不正解です。\n"); printf("答えは%dです。\n",d); } printf("全問終了!\n"); printf("結果は...%d問正解です!\n",e); } ``` どこがいけないんでしょうか? どうか教えてください。 また関数もうまく使えないので、 分かりやすいサイトなども教えてください。 長文になりましたが、よろしくお願いします。
回答: 基本的にnum側でほとんどの機能を実現しているので、main側は、正解数のみを表示するだけにします。 num()は、正解した回数を返します。引数はとらないので、引数は渡しません。以下のようになります。 ``` #include #include #include int num(void) { int a, b,c,d,e,i; srand(time(NULL)); printf("九九計算\n"); printf("plese push any key\n"); system("pause"); e = 0; for (i = 1; i <= 10; i++) { //乱数の生成 a = rand()% 9+1; b = rand()% 9+1; //回答の生成 d = a*b; printf("%d×%dは? :",a,b); scanf("%d", &c); //正解か判断 if (c == d) { printf("正解です!\n"); e++; } else { printf("残念ながら不正解です。\n"); printf("答えは%dです。\n",d); } printf("%d回目終了!あと%d回!頑張ろう。\n", i, 10 - i); } return e; } void main() { int e=num(); printf("全問終了!\n"); printf("結果は...%d問正解です!\n",e); } ```