- ベストアンサー
C言語の問題です。何卒ご教示願います。10個の整数
C言語の問題です。何卒ご教示願います。10個の整数を入力し配列に保存した後、入力された数字の中に5の倍数が含まれているかを調べ、 含まれていた時には「5の倍数が含まれています」含まれていない時に「5の倍数が含まれていません」と表示させなさい。 なるべく早急にお願い申し上げます。 お手数ですが一からプログラミングを作成お願いします (たとえば♯include<stdio.h>からreturn 0;}とか)
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先に回答した別の質問内容を読む限り、たぶん学校の宿題かなんかかな? レベル感からして、自作関数なんかは想定しないと予想します。 以下のようなのでどう? ---- #define HAIRETU_MAX 10 /* 配列の要素数 */ int main( void ) { /* 変数宣言 */ int iLoop = 0; int iSeisu[HAIRETU_MAX] = {0}; /* 整数を入力 */ printf( "整数を%d回入力して下さい\n", HAIRETU_MAX ); for( iLoop = 0; iLoop < HAIRETU_MAX; iLoop++ ){ printf( "%2d個目: ", iLoop + 1); scanf( "%d", &iSeisu[iLoop] ); } /* 5の倍数が含まれているか調べるループ */ for( iLoop = 0; iLoop < HAIRETU_MAX; iLoop++ ){ /* 対象の数字は5の倍数か? (5で割った余りが0の場合を5の倍数とみなしてチェック) ただし0と負の整数は5の倍数に含まないこととする*/ if( 0 < iSeisu[iLoop] && 0 == iSeisu[iLoop] % 5 ){ /* 5の倍数が含まれていたらprintfしてループを抜ける */ printf( "5の倍数が含まれています\n" ); break; } } /* 5の倍数が見つからずにループを回りきった? */ if( HAIRETU_MAX == iLoop ){ printf( "5の倍数が含まれていません\n" ); } return 0; } ---- コメントいっぱいつけたので、分かりやすいはずです。 整数を10個入力するのが初期化で済ませていいのなら、最初scanf用ループは不要です。 要望にかなうなら丸コピーしてもかまわないけど、ちゃんと意味理解してからにしような。
その他の回答 (2)
- 麻野 なぎ(@asano_nagi)
- ベストアンサー率35% (42/120)
こんなの書いたら、怒られるかもしれない。 #include <stdio.h> const char *message[] = {"含まれていません", "含まれています"}; int includeFactor(int indat[], int number, int factor) { int i; if (factor <= 0) return 0; for(i = 0; i < number; i++) if (indat[i] % factor == 0) return 1; return 0; } void get(int dat[], int number) { int i; for(i = 0; i < number; i++) { printf("input data No.%d = ", i + 1); scanf("%d", &dat[i]); } } int main() { const int factor = 5; int indat[10]; get(indat, 10); printf("%dの倍数が", factor); printf(message[includeFactor(indat, 10, factor)]); return 0; }
お礼
ご回答ありがとうございます。 ちょっと難しそうですね。
- Tacosan
- ベストアンサー率23% (3656/15482)
で「質問」はなに?
補足
10個の整数を入力し配列に保存した後、入力された数字の中に5の倍数が含まれているかを調べ、 含まれていた時には「5の倍数が含まれています」含まれていない時に「5の倍数が含まれていません」と表示させるC言語のプログラムはどう作ればよいのでしょうか
お礼
くわしいご回答ありがとうございます。