初めまして、C言語を学習しています。
以下の点についてわかる方がいらっしゃったら教えてください。
やりたいこと
- scanf(main関数内)に入力した数値を自作関数count()の引数numberとする
- 引数numberをcountの引数numとして受け取り、for文の条件式に使用する
- for文の1回転ごとに引数numの数値から1を引き、変数iに1を足す
- for文の1回転ごとに「i回目」という文をprintf()で出力する
問題
自作関数count()のfor文に、変数num(scanfで変数numberとして受け取ったもの)を受け取ることができない。
コード
C
1#include <stdio.h> 2 3int count(int); 4 5int main(void) 6{ 7 int number; 8 scanf("%d", &number); 9 count(number); 10 return 0; 11} 12 13int count(int num) { 14 15 int i; 16 for(i=1;num<=0;i++) { 17 num--; 18 printf("%d回目\n", i); 19 } 20 21 return 0; 22}
上記のコードの結果
terminal
1ec2-user:~/environment $ ./hello 210 //scanfで入力した数値
想定上の結果
terminal
1ec2-user:~/environment $ ./hello 210 //scanfで入力した数値 31回目 42回目 53回目 64回目 75回目 86回目 97回目 108回目 119回目 1210回目
やってみたこと
自作関数countに、scanfで入力された変数numberが受け取れているか確認するため、
関数count内にいくつかprintf文を記述しました。
c
1int count(int num) { 2 3 printf("for前:%d\n", num); 4 5 int i; 6 for(i=1;num<=0;i++) { 7 num--; 8 printf("%d回目\n", i); 9 printf("for中:%d\n", num); 10 } 11 12 printf("for後:%d\n", num); 13 14 return 0; 15}
結果は以下です。
terminal
1ec2-user:~/environment $ ./hello 210 //scanfで入力した数値 3for前:10 4for後:10
長い時間コードを睨み続けているのですが、もしかすると何か見落としがあるかもしれません。お分かりの方教えてください。
回答4件
あなたの回答
tips
プレビュー