課題で、全部で8名から代表者を3名無作為に選びたい。一様乱数を0から7の間で発生させる。それを100回試行して最も回数の多い順に並べ変えを行って表示する。プログラムを作りたいのですがどうすればいいですか?
一応作ったものはこれですがセグメントエラーがでてしまいます。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
unsigned char x;
int w;
char name[8]={'A','B','C','D','E','F','G','H'};
for(n=0;n<8;n++)
{
count[n]=0;
}
for(i=1;i<=100;i++)
{
x=rand()%8;
count[x]++;
if(x==0)
name[x]='A';
if(x==1)
name[x]='B';
if(x==2)
name[x]='C';
if(x==3)
name[x]='D';
if(x==4)
name[x]='E';
if(x==5)
name[x]='F';
if(x==6)
name[x]='G';
if(x==7)
name[x]='H';
name[x]++;
}
for(i=0;i<8;i++)
{
w=i;
for(j=i+1;j<8;j++)
{
if(count[w]>count[j])
w=j;
}
name[w]=count[w];
count[w]=count[i];
count[i]=name[w];
}
printf("----------------------");
for(i=0;i<8;i++)
{
printf("第%d位%3s回%10s\n",i+1,count[w],name[w]);
}
printf("----------------------");
}
-----------------------
第1位 ○○回 △さん
第2位 ○○回 △さん
・・・
--------------------
と言う風に表示したいです
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>一応作ったものはこれですがセグメントエラーがでてしまいます。
ビルドできないかと思いますが…。
>count[n]=0;
count[]の宣言がありません。
>name[x]++;
name[]の中身をインクリメントする理由はなんでしょう?
>for(i=0;i<8;i++)
>{
> printf("第%d位%3s回%10s\n",i+1,count[w],name[w]);
>}
wの値は変化しません。(たぶんiの誤りでしょう)
%sで指定していますが、count[w]やname[w]は「文字列の先頭アドレス」が格納されていますか?
No.2
- 回答日時:
プログラムの組み方が明らかに奇妙だと思います。
>char name[8]={'A','B','C','D','E','F','G','H'};
char型で8人分を宣言してそれぞれを、Aさん、Bさん、Cさん、以下同様としたいのかもしれませんが、これはやめてAさんは0番、Bさんは1番、Cさんは2番と対応させた上でint型で配列を宣言してはどうだろうか。
if文で条件判断してインクリメント処理している部分も不自然な気がします。
No.3
- 回答日時:
>プログラムを作りたいのですがどうすればいいですか?
問題点の指摘ではなく、正解のコードが欲しかっただけなんですね。
まぁ、私の指摘もいろいろ足りませんでしたけど、そんな無能の指摘よりコードくれ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語 3 2022/11/09 13:27
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Application.ScreenUpdating = ...
-
パイソンのクラスのブログラム
-
パイソンのクラスについて
-
パイソンプログラミング
-
vscode 文字化け
-
[python] 文字列を変数名として...
-
phpでボタンを押したときに変数...
-
【メモリ不足で落ちる(python)】
-
VBAでPDFのコピーとリネームを...
-
この英語はどういう意味ですか?
-
Rails:findの条件指定(複数キ...
-
vbaでxmlからNodeListでデータ...
-
2つのpythonがあって、一方で...
-
VBAで特殊文字を出力したい
-
学校でプログラミングの授業あ...
-
[C#] string name = new ..
-
pythonで実体参照文字を直す方法
-
FindFirst を複数条件で検索
-
「*:*」って何を意味するのでし...
-
ASPへの値渡し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Application.ScreenUpdating = ...
-
実行時エラー 3020の対策
-
[python] 文字列を変数名として...
-
ACCESS テキストボックスを隙...
-
FindFirst を複数条件で検索
-
【メモリ不足で落ちる(python)】
-
VBA他のブックから値のみ貼付す...
-
構造体の各データの表示につい...
-
パイソンプログラミング
-
VBAでPDFのコピーとリネームを...
-
phpでボタンを押したときに変数...
-
vscode 文字化け
-
vbaでxmlからNodeListでデータ...
-
コンボボックスのtag情報の取得...
-
パイソンのクラスのブログラム
-
「*:*」って何を意味するのでし...
-
構造体の変数の値を、動的に取...
-
パイソンのクラスについて
-
C言語について
-
VBAで特殊文字を出力したい
おすすめ情報