C言語なら俺に聞け(入門編)Part 77at TECH
C言語なら俺に聞け(入門編)Part 77 - 暇つぶし2ch904:デフォルトの名無しさん
11/02/06 16:06:01
試験のデータをこのように表示するプログラムを作っているのですが、scanf("%d",&score);より下が分かりません。
0-9  0人
10-19 1人
 …
90-100 10人
人数は最初に読み込みます。

#include<stdio.h>
int main(void)
{
int n;
int score;
int i;
int count;
scanf("%d",&n);
for(i=0;i<=n;i++){
scanf("%d",&score);
}
{
scanf("%d",&n);
if(n>=0&&n<=9)count[n%10]++;
printf("%d-%dは%d人/n",count[i],i*10,i*10+9);
}
}
どなたか教えていただけたら嬉しいです

905:デフォルトの名無しさん
11/02/06 16:09:07
ロベールに書いてあるよ

906:デフォルトの名無しさん
11/02/06 16:13:55
ロベールの翻訳はわかりやすい(ループ)

907:デフォルトの名無しさん
11/02/06 16:22:41
>>904
とりあえずcountを配列にしろよ

908:デフォルトの名無しさん
11/02/06 16:24:54
そうだそうだ!

909:デフォルトの名無しさん
11/02/06 16:28:40
>>904
そういう問題では普通遺伝的アルゴリズムを使う

910:デフォルトの名無しさん
11/02/06 16:40:25
#include <stdio.h>

int main() {
int i, n, score, cv[ 10 ] = {};

/* 入力 */
printf( "人数?:" ); scanf( "%d" , &n ); /* データ件数を読む */
for ( ; n != 0; --n ) {
scanf( "%d", &score ); /* 点数の読み込み */
++cv[ score == 100 ? 9 : score / 10 ]; /* 各階級への振り分け */
}

/* 出力 */
for ( i = 0; i != 10; ++i ) {
printf( "%d-%d %d人\n", i * 10, i * 10 + 9 + ( i == 9 ), cv[ i ] );
}
}

おまいらひどいな^^

911:デフォルトの名無しさん
11/02/06 16:58:55
? :
三項演算子はgo文並に禁止すべきだと思うんだがどう思う?

912:デフォルトの名無しさん
11/02/06 16:59:54
goって上野樹里?

913:デフォルトの名無しさん
11/02/06 17:00:40
Golf する時に困るんじゃないの

914:デフォルトの名無しさん
11/02/06 17:00:59
そんな話は聞いたことないけどしたいならそうすればいいんじゃない?
それより、 i * 10 + 9 + ( i == 9 ) は意図したとおりに動かないね。

915:デフォルトの名無しさん
11/02/06 17:22:36
>>914
まったく問題ないように思えるけど

916:デフォルトの名無しさん
11/02/06 17:22:44
>>911
お前の能力が低いだけ

917: ◆QZaw55cn4c
11/02/06 17:24:58
>>911
スレリンク(tech板)でコードを沢山書いて訓練することをおすすめします。

918:デフォルトの名無しさん
11/02/06 17:25:16
>>914
動かないというなら、どこが、どういった理由で動かないのか、説明しないといけないよね

919:デフォルトの名無しさん
11/02/06 17:32:31
>>917
消えろクズ

920:デフォルトの名無しさん
11/02/06 17:34:11
問題ないように思える人はもう一度Cの規格票をよく読むんだ^^

921:デフォルトの名無しさん
11/02/06 17:35:33
>>920
自分で説明できないわけね^^

922:デフォルトの名無しさん
11/02/06 17:36:00
>>920
>>918

923:デフォルトの名無しさん
11/02/06 17:38:32
…というのも不親切なので答えをいうと
i == 9の部分はtrueの時1になることを想定しているけど
(90-100の階級幅だけ11あるので、ここだけ特別処理にしている)
Cの規格上はtrueは0以外の整数であればなんでもいいことになっているので
実装にっては「90-100」のような表示にならない可能性があるってことなのよ^^;
ここは

printf( "%d-%d %d人\n", i * 10, i == 9 ? 100 : i * 10 + 9, cv[ i ] );

のようにすべきでした。

924:デフォルトの名無しさん
11/02/06 17:41:11
って、答えを書いているうちに即レスするんじゃない貴様ら^^

ちなみに、この「trueは0以外の整数」というのは
Cではけっこう重要な落とし穴なので初学者は覚えておくといいよ^^

925:デフォルトの名無しさん
11/02/06 17:41:22
>>923
> Cの規格上はtrueは0以外の整数であればなんでもいいことになっているので

嘘つくな。
Cでは、組み込みの演算子によってブール値が産み出されるときは、1か0であることが保証されている。

926:デフォルトの名無しさん
11/02/06 17:43:12
あーよくある間違いだなw
確かにTRUE(真)の値は規定されていない。
でもね、==演算子を始めとする論理、比較演算子の戻り値は規定されているんだよ。

927:デフォルトの名無しさん
11/02/06 17:44:08
>>923
>>920


ワロタ

928:デフォルトの名無しさん
11/02/06 17:44:37
>>923-924
そんなことだろうと思った

929:デフォルトの名無しさん
11/02/06 17:44:46
あれ?そうだっけ?すまんすまん^^ワラ

930:デフォルトの名無しさん
11/02/06 17:45:50
嘘を書き込むスレ

931:デフォルトの名無しさん
11/02/06 17:46:12
>>929
Cではけっこう重要な落とし穴なので初学者は覚えておくといいよ^^

932:デフォルトの名無しさん
11/02/06 17:47:19
移植性ってC言語にもあるんですか?

例えばC++ではGNUとVisualでは拡張子表記が変わるとかあるんですよね?

C言語でも、移植性ってありますあk?

#include<stdio.h>
int main()
{ printf("Hello\n")}

みたいなプログラムでもOsや処理系によって変更必要ですか?

933:デフォルトの名無しさん
11/02/06 17:48:30
自信満々で間違えるとかはずかしいww

934:デフォルトの名無しさん
11/02/06 17:49:26
まあ、組み込みOSの場合、標準出力先がない場合もある。
printf()できない

935:デフォルトの名無しさん
11/02/06 17:49:37
こうして人は成長していくのであった^^;

936:デフォルトの名無しさん
11/02/06 17:49:45
>>932
指定した型の戻り値がないとコンパイラが通らないという点ではどの処理系でも同じ。

937:デフォルトの名無しさん
11/02/06 17:50:37
914 :デフォルトの名無しさん:2011/02/06(日) 17:00:59
そんな話は聞いたことないけどしたいならそうすればいいんじゃない?
それより、 i * 10 + 9 + ( i == 9 ) は意図したとおりに動かないね。

920 :デフォルトの名無しさん:2011/02/06(日) 17:34:11
問題ないように思える人はもう一度Cの規格票をよく読むんだ^^

923 :デフォルトの名無しさん:2011/02/06(日) 17:38:32
…というのも不親切なので答えをいうと
i == 9の部分はtrueの時1になることを想定しているけど
(90-100の階級幅だけ11あるので、ここだけ特別処理にしている)
Cの規格上はtrueは0以外の整数であればなんでもいいことになっているので
実装にっては「90-100」のような表示にならない可能性があるってことなのよ^^;
ここは

printf( "%d-%d %d人\n", i * 10, i == 9 ? 100 : i * 10 + 9, cv[ i ] );

のようにすべきでした。

924 :デフォルトの名無しさん:2011/02/06(日) 17:41:11
って、答えを書いているうちに即レスするんじゃない貴様ら^^

ちなみに、この「trueは0以外の整数」というのは
Cではけっこう重要な落とし穴なので初学者は覚えておくといいよ^^

929 :デフォルトの名無しさん:2011/02/06(日) 17:44:46
あれ?そうだっけ?すまんすまん^^ワラ

935 :デフォルトの名無しさん:2011/02/06(日) 17:49:37
こうして人は成長していくのであった^^;

938:デフォルトの名無しさん
11/02/06 17:51:13
恥ずかしすぎwwww


って、答えを書いているうちに即レスするんじゃない貴様ら^^

ちなみに、この「trueは0以外の整数」というのは
Cではけっこう重要な落とし穴なので初学者は覚えておくといいよ^^

939:デフォルトの名無しさん
11/02/06 17:52:15
成長していくのであったwwww

940:デフォルトの名無しさん
11/02/06 17:52:53
おまえら、おもしろいおもちゃを手にいれたみたいに。ひどいじゃなイカ^^;

941:デフォルトの名無しさん
11/02/06 17:54:34
ひどいじゃなイカ^^

942:デフォルトの名無しさん
11/02/06 17:54:58
恥ずかしすぎwwww

943:デフォルトの名無しさん
11/02/06 17:55:54
935 :デフォルトの名無しさん:2011/02/06(日) 17:49:37
こうして人は成長していくのであった^^;

935 :デフォルトの名無しさん:2011/02/06(日) 17:49:37
こうして人は成長していくのであった^^;

935 :デフォルトの名無しさん:2011/02/06(日) 17:49:37
こうして人は成長していくのであった^^;

944:デフォルトの名無しさん
11/02/06 17:56:43
914 :デフォルトの名無しさん:2011/02/06(日) 17:00:59
そんな話は聞いたことないけどしたいならそうすればいいんじゃない?
それより、 i * 10 + 9 + ( i == 9 ) は意図したとおりに動かないね。


最初はこんな感じだったのに「ひどいじゃなイカ^^」とかキャラ転換したのは
いわゆる「馬鹿を装って大真面目に間違えたのをカモフラージュ作戦」

945:デフォルトの名無しさん
11/02/06 17:57:17
まさに恥ずかしい人

946:デフォルトの名無しさん
11/02/06 17:58:02
これは痛いw 頭悪すぎ

947:デフォルトの名無しさん
11/02/06 17:59:16
>ひどいじゃなイカ^^
駄目だ、笑っちまったwww

948:デフォルトの名無しさん
11/02/06 18:00:49
>>937は次スレのテンプレで

949:デフォルトの名無しさん
11/02/06 18:01:16
> 913 名前:デフォルトの名無しさん[sage] 投稿日:2011/02/06(日) 17:00:40
> Golf する時に困るんじゃないの
>
> 914 名前:デフォルトの名無しさん[sage] 投稿日:2011/02/06(日) 17:00:59
> そんな話は聞いたことないけどしたいならそうすればいいんじゃない?

玉打ちのgolfだと思ってそう

950:デフォルトの名無しさん
11/02/06 18:01:42
>>936
今の規格だとmainのみOK。
どっちかいうと;がない方が気になる。

951:デフォルトの名無しさん
11/02/06 18:04:27
URLリンク(www.open-std.org)
> 4 An rvalue of type bool can be converted to an rvalue of type int, with
> false becoming zero and true becoming one.


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch