- 締切済み
プログラミングができず、大学の課題ができないのでとても困っています。
次の配列の要素で奇数であるものの個数を求めよ. この問題がわからず大学で課題が提出できず、とても困っています ><;; 誰か助けて下さい。お願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8804/19966)
>次の配列の要素で奇数であるものの個数を求めよ. >この問題がわからず大学で課題が提出できず、とても困っています >誰か助けて下さい。お願いします。 本当に助けて欲しいと思うなら「次の配列」とか言うのを掲載して下さい。 超能力者やエスパーでない限り「課題の全文」が判らないと、貴方を助ける事は出来ません。 「問題文を、1字1句、間違えずに、すべて書き写して、再質問」して下さい。1文、1文字たりとも省略してはいけません。何か1文字でも欠ければ、回答出来なくなりますから。 もし「どこまで掲載すれば良いか判らない」と言う場合は、残念ですが「小学校からやり直しをする」か「常識を身に付けてから、質問し直す」か、どちらか選んで下さい。 これも「ゆとり教育」の弊害か…。
- titokani
- ベストアンサー率19% (341/1726)
・担当教授に教えてもらう ・わかっている友人に飯でもおごって教えてもらう。 ・その単位をあきらめる。 ・学部を変える ・大学をやめる
- googoo131
- ベストアンサー率45% (5/11)
流れとしては以下のとおりになります。 (1) 整数値の個数を入力します。 (2) 入力された個数分の整数値を入力します。 (3) 奇数の個数をカウンタとして最初0の値にセットします。 (4) 入力された個数分繰り返して以下の処理を行います。 ・入力された整数値が2で割り切れない時 奇数と判定してカウンタを1増やす。 (5) 奇数の個数を画面出力します。 (6) プログラムを終了します。 プログラム例を以下に示すとこうなります。 #include <stdio.h> int main(void) { int val[100]; int icnt,num,count; printf("個数:"); scanf("%d",&num); for (icnt = 0; icnt < num; icnt++) { printf("数値 val[%3d] = ",icnt); scanf("%d",&val[icnt]); } count = 0; for (icnt = 0; icnt < num; icnt++) { if (val[icnt] % 2 != 0) { count++; } } printf("%3d 個中奇数は %d 個あります。\n", num, count); return 0; } これでどうでしょうか?
- machongola
- ベストアンサー率60% (434/720)
こんばんは。C++で良ければ此れで出来ると思います。以下参考程度に。 #include<algorithm> #include<boost/array.hpp> #include<boost/lambda/lambda.hpp> int main() { const boost::array<int, 10> a = {0,1,2,3,4,5,6,7,8,9}; int count = 0; std::for_each(a.begin(), a.end(), (count += (boost::lambda::_1 & 0x1))); std::cout << count << std::endl; return 0; }
- BLK314
- ベストアンサー率55% (84/152)
こんな感じでどうでしょうか? // ここからソース ==================================== // OddCount.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" #include <stdlib.h> #include <time.h> // 配列の大きさを求めるマクロです #define ARRAY_OF(a) (sizeof(a) / sizeof (a[0])) // 奇数の数を戻します static int CountOdd(const int Tbl[], int Count) { int c = 0; // カウンタ for (int i = 0; i < Count; ++i) { // 奇数か否か判定します // 単純に余りを求めて1か否かで判定してもよいですが // 多少の効率化を考えてみました if (Tbl[i] & 0x1) { // 最下位ビットが0ではない(つまり1)の場合です // 奇数なのでカウントアップを行います c++; } } return c; } #define DATA_COUNT 10 int _tmain(int argc, _TCHAR* argv[]) { // 乱数により配列にデータを作成します int tbl[DATA_COUNT], n; srand((unsigned int)time(NULL)); for (int i = 0; i < ARRAY_OF (tbl); ++i) { tbl[i] = rand(); printf("i, tbl[i] : %d, %d\n", i , tbl[i]); } // 奇数の数を求めます n = CountOdd(tbl, ARRAY_OF (tbl)); printf("奇数の数 : %d[個]\n", n); return 0; } // ここまで ソース 一応動作確認してあります VC++ 2008 Pro です。 C++で作ってあります。 (一応Cに配慮したつもりです。)