考え方が分からず困っています。プログラミングを0からある程度まで4日で終わらせる講座で悪戦苦闘しています。以下のような課題が出て、必死で考えているのですが分かりません。考え方のヒントを
頂ければと思っています。他力本願と思われるかもしれませんが、本当に困ってしまっているのでどなたかよろしくお願い致します。
下記のプログラムにおいて,numcountは,値が0 ~M -1 の範囲の大きさN のint型の配列を引数として渡されると(ただし,M, N は正の整数),同じ値が複数ある時はそれを1 個とみなしてその配列中の数の個数を返す関数である.例えば,配列の値を7, 4, 8, 2, 4, 6, 1, 6, 4, 5 とすると,(ダブリを省くと) この中には,7, 4, 8,2, 6, 1, 5 の7 個があるので,関数numcountは7 を返す.
これは,例えば,0 ~M -1 の範囲でどんな数が出てきたかをチェックしておき(ヒント: 大きさM のint型の配列を用い,最初はすべて0に初期化しておき,数iが現れたら,そのi番目を1にすればよい),
最後に1度でも出てきたものを数えれば求めることができる.関数numcountを,下記のプログラムの/* INSERT HERE */の部分に挿入できるように書け.(提出はプログラム全体)
#include <stdio.h>
#define M 10 /* 適当な正整数(数の範囲が0 ~M -1) */
#define N 10 /* 適当な正整数(入力する数の個数)*/
/* INSERT HERE */
int main(void)
{
int i, a[N];
/* a[0]~a[N-1] の値を入力する*/
for(i= 0; i< N; i++) {
printf("a[%1d] = ? ", i);
scanf("%d", &a[i]);
}
printf("numcount= %3d¥n", numcount(a));
return 0;
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
bool num[N];
//memsetでやってもいいけれど
for(int i = 0;i < N;i++){
num[i] = false;
}
int numcount(int a[N]){
//数の個数=0
int number = 0;
//引数を最初から最後まで調べる
for(int i = 0;i < N;i++){
//もしnum[]に登録されていなければ
if(num[a[i]] == false){
//登録する&数の個数を1増やす
num[a[i]] = true;
number++;
}
}
return number;
}
読みにくなったうえ、下手なプログラムですみません。
馬鹿正直に書くとおそらくこうなります。
No.1
- 回答日時:
間違っていたらすいません。
例えば数字が4,3,7,6,5,4,2と与えられたら、
a[4]=1;
a[3]=1;
a[7]=1;
・・・・
みたいにしていき1の数を数えれば良いのでは?
ダブリの数が出ても、さらに1を代入するだけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
白血球が多いとどんな心配があ...
-
勃起する時って痛いんですか? ...
-
風俗店へ行く前のご飯
-
イタリアから帰国する際、肉製...
-
甲状腺が腫れているが血液検査...
-
エクセル指定した範囲からラン...
-
精子が黄色?
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
精子に血が・・・
-
急に主人の性欲が強くなった
-
一番多く表示のある値(文字列...
-
精液の落とし方を教えてください
-
エクセルで数式の答えを数値と...
-
2つの数値のうち、数値が小さい...
-
テスターで断線を調べる方法教...
-
VLOOKUP関数を使用時、検索する...
-
検便についてです。 便は取れた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
白血球が多いとどんな心配があ...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
検便についてです。 便は取れた...
-
これって喉仏ですか? 私は女性...
-
小数点以下を繰り上げたものを...
-
甲状腺が腫れているが血液検査...
-
精液の落とし方を教えてください
-
エクセル指定した範囲からラン...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
精子に血が・・・
-
エクセルのラベルの値(文字列...
-
イタリアから帰国する際、肉製...
-
ある範囲のセルから任意の値を...
-
リンク先のファイルを開かなく...
-
中出しをするとお腹が痛い・・・。
-
MIN関数で空白セルを無視したい...
おすすめ情報