1 名前:デフォルトの名無しさん [2008/12/16(火) 19:45:29 BE:198809273-PLT(36020)] あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。 【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク): [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題を片付けます 119代目 pc11.2ch.net/test/read.cgi/tech/1228313292/
2 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 19:52:01 ] 鏡を見ろよ、メガネピッツァさん?
3 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 19:54:32 ] ,. -―-、 <-‐ヘ、9ノ‐> 从!イノiノヘilト これどうぞ ゙ヘ(!|´ヮ`ノリ シュッ シュッ シュッ、アレ? /∩と彡 / 彡 ノ,! / ./ ミ ξ ξ く/ ./ 旦 旦 / ./ / / ミ ξ / / 旦 | ̄ ̄ ̄ ̄ ̄| | |
4 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:32:25 ] >>前スレ998 a * Pn * (1 - area/Pn); だとすると、 a * (Pn -area) と言うことだもの。 整理されていない時点でおかしいし、内容も・・・
5 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:34:58 ] >>前スレ992 int word(char s[]){ int i, word_num=0, prev_is_space=1; for(i=0;s[i];i++){ if(!isspace(s[i]) && prev_is_space) word_num++; prev_is_space=isspace(s[i]); } return word_num; } >>前スレ996 一文字目が isspace に該当するときに余分に +1 される
6 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 20:43:50 ] >>1 乙
7 名前:998 mailto:sage [2008/12/16(火) 20:59:33 ] >>1 乙 char* s[250] = "aa bb\n"; int i = 0; int n = 0; while(s[n]) { while(isspace(s[n]) && s[n]) { n++; } if(s[n]) i++; while(!isspace(s[n]) && s[n]) { n++; } } こういうのはどうだろう。 結局汚名挽回してるだけな気もするorz
8 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:08:11 ] >>1 さん乙 [1] 授業単元:科学実習@ [2] 問題文: sum=1の2乗+2の2乗+・・・・Nの2乗 [3] 環境 [3.1] OS: Windows xp [3.2]コンパイラ: gcc -o [3.3] C言語 [4] 期限: 2008年12月31日まで [5] その他の制限: 入力にscanf使用禁止 お願いします。
9 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:10:19 ] 汚名は返上すべき
10 名前:デフォルトの名無しさん [2008/12/16(火) 21:13:42 ] >>7 >>9 なんかスパロボにこんな台詞あったなwww
11 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:14:17 ] わざと挽回にしてるのが理解できないとかw
12 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:14:50 ] >>8 /* 酔っ払ってるから(ry *\ #include <stdio.h> #include <stdlib.h> #define SIZE 256 int main(void) { char buff[SIZE]; int N, sum = 0, i; printf("N = "); N = atoi(fgets(buff, SIZE, stdin)); for (i = 1; i <= N; ++i) sum += i * i; printf("1 x 1 + 2 x 2 + ... + %d x %d = %d\n", N, N, sum); return 0; }
13 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:24:40 ] [1] 授業単元: C言語システムプログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8358.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:2008年12月17日00:00まで [5] その他: プログラム内部の動作説明やアルゴリズム説明、6)Specialの部分以外をお願いします。
14 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:24:45 ] 前スレ992です。 前スレ995,996,998,999,本スレ5,7さんありがとうございました。 996さんのおっしゃったとおり、区切り文字が連続する場合は1つの区切り文字としたかったので、 みなさんのレスを参考に、以下のようにしてみました。 int word(char s[]){ int n, i, j; i = 0; j = strlen(s); for(n = 0; n < j; n++){ if(!isspace(s[n]) && isspace(s[n+1])){ i = i + 1; } } return i; } これで実行したところ、aa bbでも2と出力されました。 if(isspace(s[n]) != 0){ の部分を if(!isspace(s[n]) && isspace(s[n+1])){ とすることで連続して空白文字がきた場合はカウントせず、 文字+空白文字となっているときのみカウントするようにしました。
15 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:29:49 ] >>14 word("word?");
16 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:47:28 ] 前スレの962です。 申し訳ありませんが、もう一度お尋ねしたいと思います。 [2] 問題文(含コード&リンク): フィボナッチ数列という有名な数列がある。 以下のプログラムはある整数を入力し、その整数以下のもっとも大きなフィボナッチ数列に含まれる整数を返すものである。 #include <stdio.h> int main(void){ int limit,new=1,pre=0,work result; scanf("%d", &limit); while(new<=limit){ /*printf("%d %d\n,pre,new);トレース用*/ work=new; new=work+pre; pre=work; } result =pre; printf("%d\n", result); }
17 名前:16 mailto:sage [2008/12/16(火) 21:48:01 ] >>16 の続き このプログラムの一部を関数にして書き換えたとする。 #include <stdio.h> /*ここに関数を記述*/ int main(void){ int limit,result; scanf("%d",&limit); result=fibnum(limit); printf("%d\n, result); } 「ここに関数を記述」とある部分に関数を記述し、プログラムを完成させなさい。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: VC6.0 [3.3] 言語:C
18 名前:16 mailto:sage [2008/12/16(火) 21:48:52 ] >>17 の続き いただいた回答を元に実行してみたのですが… #include <stdio.h> void fibnum(int limit){ int f0, f1; f0 = 0; f1 = 1; printf("%d\n", f0); printf("%d\n", f1); while(1){ f0 += f1; if (f0 > limit) return; printf("%d\n", f0); f1 += f0; if (f1 > limit) return; printf("%d\n", f1); } } (上記の通り) return result; }
19 名前:デフォルトの名無しさん [2008/12/16(火) 21:49:09 ] テンプレに沿ってないですが… 以下のプログラムをstdio.h型ではなくiostream型に書き換えるとどうなるんでしょうか? printfとかscanfとかはcinやcoutに書き換えられるってのは自分で調べて分かったのですがどうもコンパイルするとエラーになってしまうんです。 printfとかscanf以外にも書き換えられる部分があればお願いします。 あと、それぞれの行がどういった命令を出してるのか解説もお願いします…。 for(i=0;i<8;i++){//最初i=0でi<8まで増えていく と言った感じで…。 #include <stdio.h> int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10}; void k(){if(m[p]==0) for(i=0;i<8;i++){ for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++; if(c&&m[v]==t){a+=c;v=p; if(d)do m[v]=t,v+=r[i]; while(m[v]!=t); }}} char*h="・○●\n"; int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++p)k(),printf("%.2s",&h[m[p]*2]); if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p; else if(s)s=0,printf("pass"); else break;t=3-t; } return 0; }
20 名前:16 mailto:sage [2008/12/16(火) 21:49:26 ] >>18 の続き \\FILESV7\UN$\NE200071\デスクトップ\V\v.cpp(28) : error C2440: '=' : 'void' から 'int' に変換することはできません。 (新しい動作 ; ヘルプを参照) void 型の式は他の型へ変換できません。 とエラーがでてしまいます…なぜでしょうか? 長々と、何度も申し訳ありません。 どなたか回答していただけたら嬉しいです。
21 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:53:52 ] >>20 #include <stdio.h> void fibnum(int limit) { int f0, f1; f0 = 0; f1 = 1; printf("%d\n", f0); printf("%d\n", f1); while(1){ f0 += f1; if (f0 > limit) return; printf("%d\n", f0); f1 += f0; if (f1 > limit) return; printf("%d\n", f1); } } int main(void){ int limit,result; scanf("%d",&limit); result=fibnum(limit); printf("%d\n, result); return 0; }
22 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 21:54:59 ] 指定された整数以下の最も大きなフィボナッチ数列に含まれる整数を返していないから。 要するにその関数は題意を満たしていない。
23 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:03:24 ] >>16 ー17 #include <stdio.h> /*ここに関数を記述*/ int fibnum(int limit) { int a,b,c; for(a=1,b=1,c=0; c<=limit; c=a+b) {a=b; b=c;} return b; } int main(void){ int limit,result; scanf("%d",&limit); result=fibnum(limit); printf("%d\n", result); return 0; }
24 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:06:25 ] >>17 >>16 を使うのか。 #include <stdio.h> int fibnum(int limit){ int new=1,pre=0,work,result; while(new<=limit){ work=new; new=work+pre; pre=work; } return pre; } int main(void){ int limit,result; scanf("%d",&limit); result=fibnum(limit); printf("%d\n", result); return 0; }
25 名前:16 mailto:sage [2008/12/16(火) 22:09:56 ] >>24 はい。 >>16 を元に>>17 に当てはまるように書き換えていただけたら嬉しいです。
26 名前:16 mailto:sage [2008/12/16(火) 22:13:47 ] >>23 すみません、回答していただいたものを見落としていました 無事に実行できました、ありがとうございます!
27 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:13:51 ] >>8 sum = N * (N+1) * (2*N+1) / 6;
28 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:15:18 ] >>24 おれがなぐさめてやる。
29 名前:14 mailto:sage [2008/12/16(火) 22:20:26 ] >>15 「word("word?");」と入力したとき、英単語「word」は2つあるにもかかわらず、 出力結果は1になってしまう、ということでしょうか?
30 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 22:59:06 ] 自由課題、カモーン!タイピング、スロットマシン、15パズル、ヒットエンドラーン!じゃなくて ブローも用意してアルヨー!
31 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:06:19 ] >>29 0 にならない?
32 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:08:05 ] お手隙の方がいたら >>13 をお願いします。 途中まででも結構です
33 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:09:53 ] 初心者なんやけどCとC++って C++ = C + αみたいに Cが強化されたのがC++ってことでいいのかな? CでできることはC++で全て可能 とか
34 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:15:09 ] >>33 ここで質問する話じゃねえだろ糞野郎
35 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:17:44 ] >>34 大人しくここから出ていけよ、何か気に入らない発言があると 罵倒しないと気が済まない、一言居士
36 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:18:36 ] >>33 C++というくらいだから、Cに何かを付け加えたもの。 一番大きいのはクラス。
37 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:19:38 ] つまんない人がいますよね プログラムを作る人はこうなのだろうかと思うと、悲しくなってくる
38 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:21:08 ] C++はCのソースそのままでは動作が違うんだが、付け加えたものなんて嘘つくな
39 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:22:06 ] >>13 前スレの69, 233, 266 pc11.2ch.net/test/read.cgi/tech/1228313292/69 pc11.2ch.net/test/read.cgi/tech/1228313292/233 pc11.2ch.net/test/read.cgi/tech/1228313292/266
40 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:22:28 ] >>37 そんなスレ違いな発言を敢えてするお前もどうかと。
41 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:23:19 ] >>38 Cにだって、ANSIとC99では動作が違う そのくらいの差だろう
42 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:26:58 ] >>41 ANSIとは?C99とは? 馬鹿丸出しですね
43 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:27:15 ] 初心者なんやけどC++とC#って ┌─┐ │ ++ │ ++ └─┘ みたいにC++が更に強化されたのがC#ってことでいいのかな?
44 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:27:33 ] >>42 程度の低いレスですねw
45 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:27:46 ] いいよ。
46 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:28:19 ] >>44 わかってないんだろうなこの馬鹿は 答えてみろよ
47 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:28:37 ] >>46 >>42 わかってないんだろうなこの馬鹿は 答えてみろよ
48 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:29:35 ] >>43 冗談でそういわれている。 シンタックスは、似ているように見えるが、全く別物。
49 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:30:02 ] >>47 ANSIとは?C99とは?
50 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:32:54 ] 知的に問題のある人の基地外発言↓ 42 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:26:58 >>41 ANSIとは?C99とは? 馬鹿丸出しですね ↑特徴:罵倒(バカ、アホといった類)の言葉を平然と投げかける。 これだけで人間性の低さが露呈しているのだが、本人は気づかないんでしょうね。 この世に、自分が知っていること、知らないことなんていくらでもあるが、 知らないようなことを持ち出して、知らなかったことを責め立てるくせに、 いざ自分が重要なことを知らないと他人から指摘されると、逆切れして 無関係な話を始め、お前は(自分がよく熟知していると自身のあることを持ち出して) 〜を知っているのか?自分基準でそれをこう答えないと、知らないことにするぞ、みたいな 自分の経験不足を無視して、相手の粗探しを始める。 あと、すれ違いだから、他所でやれ。
51 名前:14 mailto:sage [2008/12/16(火) 23:34:26 ] >>31 結果は1になりました。
52 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:34:43 ] ほんと馬鹿丸出しですね 知らないなら知らなかったと言えばいいのに
53 名前:14 mailto:sage [2008/12/16(火) 23:35:17 ] >>39 前スレで既出だったんですね ご親切にありがとうございました!
54 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:36:18 ] [1] 興味本位で勉強中 [2] 問題文 a->1 ,b->2 ,c->3...............,y->25 z->26 (空白)->27として入力して、入力した英文を数字に変換するプログラム 例えば「a pen」なら「12716514」 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 お願いします
55 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:37:05 ] >>52 いや、あんた誰にレスしてんだ?無関係な人にレスして、自分の発言の汚さを 指摘されているって気づかない?バカだの丸出しだの、言動が低俗過ぎ。 そういう奴が言う言葉なんて、相手の粗探しをしようとしているとしか思えないのだが。 相手が何を知らないか、指摘すらしてないじゃん。自分はそうは思わない、程度の主張しかせず 相手にされていないって気づかない?w
56 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:38:00 ] >>54 文字コードはEBCDICでいいのかい?
57 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:38:33 ] >>55 お前は誰だ
58 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:39:39 ] >>42 ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E もちっとC言語について詳しくなってから発言しろ、青二才。
59 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:40:38 ] >>58 もちっとC言語について詳しくなってから発言しろ、青二才。
60 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:43:31 ] 宿題スレだろ。スレ違いな発言で罵倒し合ってんじゃねー、出てけよ。 無関係な発言するなよ、出てけよ基地外 > バカとか平気で使う 精神レベルの低いお子ちゃまねぇ〜、おっぱい飲ーみたーいのぉ? >>59 ぷっ、鸚鵡返ししか出来なくなったな。そういう 罵倒 しかしなくなった時点で まともに議論が出来なくなったという証拠。言いたいことがあるなら、お前が 説明すれば良いだろ。ただし、スレタイを読めるくらいの日本語力をつけてから 日本語を話せよ、お子ちゃま。
61 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:45:13 ] >>60 そんなに自分を責めるなよ
62 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:49:58 ] 42 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:26:58 >>41 ANSIとは?C99とは? 馬鹿丸出しですね < 罵倒発言をするのが当たり前 46 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:28:19 >>44 わかってないんだろうなこの馬鹿は < また馬鹿を使ってる 答えてみろよ < 挑発しているが、自分が答えられていないことに気づいていないw 52 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:34:43 ほんと馬鹿丸出しですね < また馬鹿w 知らないなら知らなかったと言えばいいのに < 何も説明していない自分が知らないくせにw ↑必死すぎ。レス乞食は、相手にすると粘着してスレに常駐して 自分に反論したであろう者に、罵倒レスで揺さぶって反応を楽しむという まともな社会人とも思えぬ言動をし、暇人であることをわざわざ 自己紹介するから面倒。時間帯からして、昼夜逆転したあいつだろうな。 これから明け方まで、こいつが担当するだろうけど、幼稚なソースコードに要注意。 自分こそが、正当な説明をせずに、相手を揺さぶって情報を引き出そうと 必死になっていることに気づいていないんでしょうね。知っている人は知っている。 C99とISO、ANSI準拠を知らない無知は放置よろ。
63 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:51:18 ] 理解できてないなら黙ってればいいのに
64 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 23:53:31 ] >>43 C++はCに1を加えたもの、もしくは、加える前の状態であるが、後で1加えられた状態になるもの C♯はCを半音上げたもの
65 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:03:38 ] >>2-1000 とりあえず、スレッド違いなレスポンスは、控えるようにしてね。私のレスポンスを含めて。 チャットのように掲示板を使うガキは、もう一度掲示板の本質を考えてね。 最近ム板の一部のスレッドが、荒れているから、ID強制にした方が、良いと思う。 さて、リアルブートするか。
66 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:04:26 ] ttp://ja.wikipedia.org/wiki/C99 > 少なくとも現時点の最新版に関しては、C++のC言語に対する上位互換性は完全に失われた。 検索すれば分かるものを。あと、C++コンパイラでCのソースが通るとか、 あれこれ言ったらキリがないんで。言語の使用とコンパイラの仕様も別に考えてくれ。 インターフェースなどの環境のこともあるが、所詮は0と1の数値データを ちょちょいのちょいと操作、処理しているのさ。実行しているコンピュータ、 汎用電子”計算機”がな。 目の前にある文字や色のデータ、これもある法則や画像の形式に応じて 数値データが並んでいるんであって、それを色や形のあるものにしているのがソフト。 ある数値データを、ある法則に則って処理をしているわけだが。 ソフトは結局、OSやハードウェアの性能の範囲内の処理をしているのさ、ふっ。 あっ、宿題?今日は疲れたから、明日やってあげるね。麻呂のクソースでw 我ながら、ちょっと陶酔しちゃったぜ、かっちょえ〜〜!
67 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:09:22 ] wikiがソースかよwwwwww
68 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:12:22 ] >>66 0と1の数値データを操作しているという点には同意しかねる
69 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:20:20 ] >>14 前スレ >>996 だけど、いい感じに仕上がったね。
70 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:21:03 ] >>56 なんでもいいのでお願いします
71 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:21:40 ] それを了承するとは。 興味があって勉強中ならもっと自分で頑張ってみてはどうかね
72 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:25:08 ] >>54 こんな感じ?文字定数('a' みたいなの)使えばASCIIコード知らなくてもできるよ #include <stdio.h> int main() { int c; while((c = getchar()) != '\n') if(c >= 'a' && c <= 'z') printf("%d", c - 'a' + 1); else if (c == ' ') printf("%d", c - ' ' + 27); putchar('\n'); return 0; }
73 名前:デフォルトの名無しさん [2008/12/17(水) 00:40:55 ] どなたか>>19 をお願いします('人`)
74 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:41:38 ] [1]授業単元:C言語 [2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8360.txt [3]環境 [3.1]OS:windows XP [3.2]コンパイラ名: visualC++2005 [3.3]言語:C [4]期限:2008年12月17日AM7時30分まで [5]特にありません。
75 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:46:56 ] >>68 なんで?事実だよ。0と1とはっきり記述されていはいないが、 磁気で記録するメディアには+か-、CDではレーザーの反射を読み取る仕組みが 挙げられ、穴が開いているかいないか、さらに、PC内部では電気信号で やはり+か-かで、あとはそれらの組み合わせで、より多くのパターンを表現しているんだし。 ビットくらい、知っているだろ?そういうこと。
76 名前:デフォルトの名無しさん [2008/12/17(水) 00:49:26 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 文字列をコピーする関数を作成せよ。 char *my_strncpy(char *s1, char *s2, int n); ただし、s2の文字列をs1へ、最大でn文字未満コピーするようにし、 s1がCの文字列の条件を満たすように作成せよ。 また、return valueはコピーした文字のポインタとする。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 17日まで [5] その他の制限: ポインタを習っています。 ポインタの考え方が難しくてよくわかりません。 詳しい説明も付けてくれるとありがたいです。 よろしくお願いします。
77 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:50:08 ] >>67 そこまで言うなら、wikiに事実無根や間違いがあるなら指摘しな。 他の資料を見ても、単純に言い切れない過去の歴史と仕様は存在しているし。 あと、何かと笑うだけの奴も無能。説明と言う説明が出来ていないから。 頼む、ランクはともかく、大学で実験や研究をしていない奴は黙っていてくれ。 そういう機関でそれなりのものを見てくれば、汎用電子計算機に対する考えは変わるよ。 少なくとも、目の前の色や画像データでウハウハやったり、KI・MO・I!文字データで ウヒウヒやっている奴らが、0と1のデジタルデータに翻弄されているように見えるから。 その文章や画像も、真面目なものなら良いけどさ。例え風景を撮影した写真も、 所詮は0と1の組み合わせの数値データ。それをハードなりソフトで展開して 人間が認識できるある形になっているが、もとは無機質なデジタルメディアに記録された数値データ。
78 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:51:29 ] >>63 お前が無知だということは、よーく分かった。お前が説明できないなら、黙っていれば良いだろw あと、お前にお似合いのプレゼント。ちゃんとコンパイルして実行してくれw #include <stdio.h> int main(void) { int num[]={89,111,117,32,105,115,32,97,32,98,105,103,32,102,111,111,108,32,109,97,110,46,32,72,97,104,97,104,97,46},i; for(i=0; i<sizeof(num)/sizeof(num[0]); i++) putchar(num[i]); return 0; }
79 名前:14 mailto:sage [2008/12/17(水) 00:52:26 ] >>69 おかげ様で納得のいくプログラムになりました。 ご助力ありがとうございました。
80 名前:デフォルトの名無しさん [2008/12/17(水) 00:54:22 ] step f1 f2 f3 f4 10 2.434 4.234 3.242 4.566 20 2.767 4.756 3.666 4.867 30 2.534 4.555 3.777 4.555 40 2.777 5.355 4.244 5.424 というデータファイルがあり、これをファイル入力して離散し、最終的に 0か1のデータにしたいです。そのためにまずこのテキストからf1,f2,f3,f4の 最大値(2.777,5.335,4.244,5.424)と最小値(2.434,4.234,3.242,4.555)を 見つけ出し、(データの値−最小値)/(最大値−最小値)で各値を算出し step f1 f2 f3 f4 10 1 0 1 1 20 1 1 1 1 30 0 1 0 1 40 1 1 0 0 とう具合の結果を出したいのですが、できるかたよろしくお願いします。 自分で作ったものの頓珍漢な結果しか算出されません。TT
81 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:57:12 ] >>77 いつになったら大学名教えてくれんだよw
82 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 00:58:54 ] >>79 j=strlen(s); は要らない
83 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:04:06 ] >>80 宿題なのかな? まずは頓珍漢なコードを見せてもらおうか
84 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:04:07 ] 0と1が思い浮かばなくても、ファイルのダンプをすれば、実行プログラム、テキストファイル、 画像データ、その他ファイルも、数値データの塊で、それを扱っているハードが 0と1の組み合わせで扱っていることくらい、普通に理解できる。 テレビを見て、画面の中に人がいるとは思わんだろ?w あの映像も、何かハードウェアが映し出した映像を展開しているように、 数値データ(ファイル)をソフトに応じて実装された性能の範囲内で 処理を行っているのだよ、ワトソン君。
85 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:06:52 ] この説明で相手より優位に立てると思ってる知能の低さが泣けてくる。
86 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:11:08 ] cns-guide.sfc.keio.ac.jp/2002/2/1/1.html > コンピュータ内部のすべての情報は ``デジタルデータ'' という情報形式で保存されています. > デジタルデータとは,数字に置き替えられる形式の情報のことを指し, > `0'と`1'の2通りの数字によって表現できます.文章や写真,映像,音声など > 現実にあるさまざまな形式の情報は,デジタルデータに変換できます. そういうこと。間違っていないことを、自分はそうは思いませんでは通用しないのが、 客観的な考えや意見が必要な人間社会で適合するには、重要なスキルだぞ。 嘘を言っていない人を嘘つき呼ばわりは、干されるだけ。もちっと理解力を身に着けような。
87 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:25:21 ] >>74 #include <stdio.h> int main() { int r = 0, x, y; char op; if (scanf("%d%d %c", &x, &y, &op) != 3) return 1; switch (op) { case '+': r = x + y; break; case '-': r = x - y; break; case '*': r = x * y; break; case '/': r = x / y; break; } printf("%d\n", r); return 0; }
88 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:27:20 ] ぶっちゃけ、ここで聞いて要らん薮蛇出した奴には一緒っていっててもいいだろ。
89 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 01:30:35 ] 誰と戦ってるんだお前。
90 名前:デフォルトの名無しさん [2008/12/17(水) 01:51:40 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 「果物名 単価 個数」の形式の取引のデータのファイルを読み込む。ファイルを読み込み終わった後に、「取引の総数」、 「合計の金額」、「金額が最大であった取引の(整数計算でする)」、「1取引あたりの平均金額(整数計算でする)」、 「金額の最大であった取引(最初を1とする)の番号」と「その金額」をprintfを用いて標準出力に表示するプログラムを作れ。 入力データファイルには /home/sample/PE1/2008/e12.txt を用いる。(ファイル名はfopenの因数に文字列定数として書いてよい) ファイルの全データを格納できるような大きな配列を用いてはいけない。(平均は、金額の合計と取引の総数から計算できる) 個数と金額は、ゼロまたは府の値にならないとする。また、取引金額の最大値が複数の取引に現れることはないものとする。 出力の形式は次の実行結果の例を参考にせよ。 取り引数10 合計金額6424円 合計個数57個 平均112円/個 642円/取引 最大の取引は6番目で2064円 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 2008年12月18日20時まで [5] その他の制限:制限なし よろしくお願いします。
91 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:02:09 ] これをc++のiostreamを使ったものに書き換えてください #include <stdio.h> int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10}; void k(){if(m[p]==0) for(i=0;i<8;i++){ for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++; if(c&&m[v]==t){a+=c;v=p; if(d)do m[v]=t,v+=r[i]; while(m[v]!=t); }}} char*h="・○●\n"; int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++p)k(),printf("%.2s",&h[m[p]*2]); if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p; else if(s)s=0,printf("pass"); else break;t=3-t; } return 0; }
92 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:06:54 ] >>76 strncpy と同じ仕様でよければこうかな #include <stdio.h> char *my_strncpy(char *s1, char *s2, int n){ int i; for(i = 0; *s2 != '\0' && i < n; i++) s1[i] = *s2++; while(i < n) s1[i++] = '\0'; return s1; } int main() { char *p, s1[257] = "zzzzzzzzzzzzzzz"; p = my_strncpy(s1, "sample", 7); printf("p: %s s1: %s \n", p, s1); return 0; }
93 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:10:21 ] >>73 7行オセロを適当に改行してみたの?
94 名前:デフォルトの名無しさん [2008/12/17(水) 02:15:25 ] >>93 はい、分かりやすいように改行してみて、色々いじくってみたんですがエラーになってしまってお手上げで…
95 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:16:40 ] >>91 #include <stdio.h> ⇒ #include <iostream> printf("%.2s", &h[m[p]*2]); ⇒ cout << h[m[p]*2]; scanf("%d %d", &p, &i) ⇒ cin >> p >> i 余計なことだが、カンマで 1つの文に複数の式書くのってなんかきもいな
96 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:17:05 ] 改行しただけで諦めただろwwwwww
97 名前:>>83 前半 [2008/12/17(水) 02:18:18 ] #include <stdio.h> #include <stdlib.h> #define MAX 4 int main(void) { FILE*fp; char fname[80]; int step, a, b, c, d; int f1[MAX], f2[MAX], f3[MAX], f4[MAX]; double max1, max2, max3, max4; double min1, min2, min3, min4; printf("入力ファイル名:"); gets(fname); fp=fopen(fname,"r"); if(fp==NULL){ printf("%sをオープンできません\n",fname); exit(1); }
98 名前:>>83 中半1 [2008/12/17(水) 02:20:41 ] while(fscanf(fp,"%d%d%d%d%d%", &step, &a, &b, &c, &d)!=EOF){ max1=f1[0]; /*データの最大値*/ for(i=1;i<MAX;i++){ if(f1[i]>max1) max1=f1[i]; } max2=f2[0]; for(i=1;i<MAX;i++){ if(f2[i]>max2) max2=f2[i]; } max3=f3[0]; for(i=1;i<MAX;i++){ if(f3[i]>max3) max3=f3[i]; } max4=f4[0]; for(i=1;i<MAX;i++){ if(f4[i]>max4) max4=f4[i]; }
99 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 02:21:30 ] FILE*fp; char fname[80]; int step, a, b, c, d; int f1[MAX], f2[MAX], f3[MAX], f4[MAX]; double max1, max2, max3, max4; double min1, min2, min3, min4; printf("入力ファイル名:"); gets(fname); fp=fopen(fname,"r"); if(fp==NULL){ printf("%sをオープンできません\n",fname); exit(1); }
100 名前:>>83 中半2 mailto:sage [2008/12/17(水) 02:22:11 ] max1=f1[0]; /*データの最大値*/ for(i=1;i<MAX;i++){ if(f1[i]>max1) max1=f1[i]; } max3=f3[0]; for(i=1;i<MAX;i++){ if(f3[i]>max3) max3=f3[i]; } max2=f2[0]; for(i=1;i<MAX;i++){ if(f2[i]>max2) max2=f2[i]; } max4=f4[0];