C/C++の宿題片付けます 140代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/09/16(木) 19:18:14【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
C/C++の宿題片付けます 139代目
http://hibari.2ch.net/test/read.cgi/tech/1280653311/
0002デフォルトの名無しさん
2010/09/16(木) 19:20:530003デフォルトの名無しさん
2010/09/16(木) 19:37:25[1] 授業単元:C基礎実習
[2] 問題文(含コード&リンク):ユーザーが入力できるr行s列の行列Xとt行y列の行列Yの掛け算を計算するプログラムを作成しなさい。尚、ポインタを使用して計算すること
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC++ 2008
[3.3] 言語: C
[4] 期限: 9月22日
[5] その他の制限: 必ずポインタを使う事と、任意の数をユーザーが入力できること
#include <stdio.h>
int main(void){
int a[][4]={{1,2,3,4},{5,6,7,8}};
int *b;
int sum[2], i, j;
b=a[0];
printf("&a[0][0]= %u, a[0]= %u\n", &a[0][0], a[0]);
sum[0]=sum[1]=0;
for(i=0; i<2; i++){
for(j=0; j<4; j++){
sum[i] += *(b+4*i+j);
}
}
printf("sum[0]= %d, sum[1]= %d\n", sum[0], sum[1]);
}
こんな感じで任意の数を入力させない場合はできたのですが、任意の数を読み込ませる形がわかりません・・・お願いします
0004デフォルトの名無しさん
2010/09/16(木) 20:11:36とりあえずscanf()でいいんじゃない?
int a;
printf( "how many rows?\n" );
scanf( "%d", &a);
みたいな感じで使う。これでaにユーザーが入力した値が入るよ。
0005デフォルトの名無しさん
2010/09/16(木) 20:57:55140田代くらいやって欲しかったぜw
0006デフォルトの名無しさん
2010/09/16(木) 21:12:43ttp://codepad.org/ZFiWDmoP
>>4の助言でもう解決しちゃったかもしれないけど
0007デフォルトの名無しさん
2010/09/16(木) 21:24:14C++でなくてCだぞ
0008デフォルトの名無しさん
2010/09/16(木) 21:30:30気になるなら消してくだせえ、
一応gcc 3.4.2でチェックした後セキュア版にしたんで他は大丈夫なはず
00093
2010/09/16(木) 21:42:38ソース見てしっかり勉強させて貰います!
0010デフォルトの名無しさん
2010/09/16(木) 21:55:24急に難しいの来たな
題意からすると malloc() を使って動的二次元配列を作らなければならないよ
r,s,t,y の上限とかは規定されてないの?
ところで2行3列の行列Xと4行5列の行列Yの掛け算ってどうやるんだっけ?
0011デフォルトの名無しさん
2010/09/16(木) 21:56:444だけどさw
このレベルの宿題で、こんなの書いたらカンニングばればれじゃないか?w
0012デフォルトの名無しさん
2010/09/16(木) 21:57:15Xの列とYの行は同じじゃないと駄目
0013デフォルトの名無しさん
2010/09/16(木) 22:00:000014デフォルトの名無しさん
2010/09/16(木) 22:01:050015デフォルトの名無しさん
2010/09/16(木) 22:06:09きちんと死んどけよw
001612
2010/09/16(木) 22:06:24ツンデレ風に教えてくれてるのかと思ったけど
やっぱ出来ないじゃないかw
0017デフォルトの名無しさん
2010/09/16(木) 22:06:46でたー、晒しageされている自分が恥ずかしいから
ageたことを叩く馬鹿w
0018デフォルトの名無しさん
2010/09/16(木) 22:07:31また落ち着いて鏡を見ろよ。何かこう↓のような顔が映っただろ?それ、誰のだよ?そうお前のだよw
ttp://sankei.jp.msn.com/photos/affairs/crime/100916/crm1009161159015-p3.jpg
0019デフォルトの名無しさん
2010/09/16(木) 22:08:52だよなぁ、なんか例外的な解法があるかと思って悩んじゃったよ
問題作った奴が馬鹿なんだろうな、って書くと俺も馬鹿になるか
0020デフォルトの名無しさん
2010/09/16(木) 22:09:00馬鹿は黙ってろ
15 名前:デフォルトの名無しさん 投稿日:2010/09/16(木) 22:06:09
上げてるアホは前スレで吊ったんじゃなかったの?
きちんと死んどけよw
↑IDが無いから顔を真っ赤にして自分を攻撃してくる見えない敵を
必死に叩くだけの、罵詈雑言しか使えない自分が本当に死んだ方が良い
本物の馬鹿、アホだと気づかない愚かさ。このスレに何しにきてんだろうねw
0021デフォルトの名無しさん
2010/09/16(木) 22:10:480022デフォルトの名無しさん
2010/09/16(木) 22:10:58上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw
↑もうまともな反論が出来ない、罵詈雑言が当たり前で言い返せない池沼w
>>1 やテンプレに sage進行、推奨といった条件が無いので別に
sageなくても問題はないんだが・・・いつからage=荒らしみたいな
勘違い2ちゃんねらーになったんだろうね。
0023デフォルトの名無しさん
2010/09/16(木) 22:12:520024デフォルトの名無しさん
2010/09/16(木) 22:14:42> 気に入らない質問やその他の発言はスルーの方向で。
これが読めない奴がとにかく相手を馬鹿にしなければ気が済まない、
また言われた方が反応して荒れてるだけ。両方とも問題だが
最初に言った奴の方が精神レベルが低い、大人になりきれない
非社会適合者だというのは昔から知られていること。
ネットでは対面せず特定されないからって偉そうにしているが
現実世界では言いたい事も言えない貧弱な負け犬だからw
0025デフォルトの名無しさん
2010/09/16(木) 22:20:32特に相手が納得できる説明もなく、失敗や間違いを
馬鹿にするだけの罵詈雑言レスしかしない奴は普通に見かける。
そいつは自分が特定されないからって、そのスレに常駐している
基地外引きこもりニートのようで、また現れては直ぐに自分が
特定できるレスをするんで、周りから集中攻撃を受けて
立場を失うと。現実世界では人物が特定されるし、その内
大勢から相手にされなくなて孤立するが。
とにかく、罵詈雑言が直ぐに出る奴こそ知能が低いから
行動パターンからして言動でバレバレ。そういうゴミ屑って
何で生きているんだろうね?人の役に立たない癖に。
直ぐ死ぬべきなのはどっちだよ?w
0026デフォルトの名無しさん
2010/09/16(木) 22:21:38自称年収1000万でいつまでこのスレに粘着してんだよw
0027デフォルトの名無しさん
2010/09/16(木) 22:26:380028デフォルトの名無しさん
2010/09/16(木) 22:31:48出来る人間は、C言語に限らずプログラミングで金儲けしているというのに。
0029デフォルトの名無しさん
2010/09/17(金) 00:28:54ほんとのこと、あまり言うなよ
0030デフォルトの名無しさん
2010/09/17(金) 05:14:01妄想や思い込みでレッテル貼りをして、その相手を罵倒するのに
使った言葉は日頃、自分が他人からされている誹謗中傷、
罵倒で言われている汚い言葉なんだろうね ( ´,_ゝ`)プッ
0031デフォルトの名無しさん
2010/09/17(金) 07:05:49[2] 問題文(含コード&リンク):
入力された文字列を逆順に「格納」する関数
void rev_string(char str[]) を作成せよ。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
昨日言っていた5つ目の課題です。
よろしくお願いします。
0032デフォルトの名無しさん
2010/09/17(金) 07:22:41{
char *p = str;
while(*p) p++;
while(--p > str) {
char temp = *p;
*p = *str;
*str++ = temp;
}
}
0033デフォルトの名無しさん
2010/09/17(金) 07:29:32ありがとうございます。
0034デフォルトの名無しさん
2010/09/17(金) 07:36:52[2] 問題文(含コード&リンク):
入力された文字列を指定した回数だけ表示する関数
void put_stringn(const char str[], int no) を作成せよ。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
6つ目の課題です。
よろしくお願いします。
0035デフォルトの名無しさん
2010/09/17(金) 07:40:57{
int i;
for (i = 0; i < no; ++i)
{
printf("%s", str);
}
}
0036デフォルトの名無しさん
2010/09/17(金) 08:07:34ありがとうございます。
0037デフォルトの名無しさん
2010/09/17(金) 08:14:43[2] 問題文(含コード&リンク):
入力された文字列を「空文字列にする」関数
void null_string(const char str[]) を作成せよ。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
7つ目の課題です。
よろしくお願いします。
0038デフォルトの名無しさん
2010/09/17(金) 08:20:24ミ/ ミ 彡 川 川 彡 ヽ
/ ミ ミ ミ! ! ! ! 川 彡 ミ
才 三 二 三 = ミ ! ! !! ! !彳 iキ彡
壬 ミ 二 = 三 二 ミ 川 川 彡 二 彡
. 孑 ミ 三 二 ≡ = ミ ヾ へ 川 彡 彡⌒\キ
,;;才彡 ミ彡``"'^“ ≡ ;;;ソ メヽヾ r タシろノ iキミ
(王ミ 彡 ミ ミ;;;;;: : : : iミミキ
\ミ 彡 ミ ミ;;;::: : : : ゜ lミ彡ミ
テ ミ 三ミ;; ; : : : : lミ彡ミ
/⌒\こ壬;;: : : :;;;;;; |彳
{ノ\`:::彡イ:::ヾ〃;;;;;;;;;;;;;,,, ,,,,,;;;;;;= /i
i:: >:彡;;::ヾ:/ゝγ`````ヽ /´´´ヽ /l l
\/(ヽ;;; ::::::::: ≠(.,-ェェ-、 )::: i::: r-ェェ-. ト//
\__|;;;:::::::: \ ̄ ̄/::::: i  ̄ ̄ノ i//
!:::::::::l;:::  ̄ ;;;:::::: i  ̄ ノ
!;;;::::::\;;;;;;;;,, ;;:::;;;:: i /:/
i;;::::::: : : :::::::: (;; ___ ) :::::/::::/
_/!:::: : : ::::::/ ,,,,,,;;;;;;;;U;;;;; ヽノ::/
- ''":::::/::::|\;;:: : :{ { ,,;;;;;……v…;;;; : :/
::::::::::::/::::::|::::::\:::::ゞ ヽ ´ ̄`ー´/:::/
::::::::::/::::::::|;;;/ : :\;;:: ::::`===:´ :/i:::\
:::::::/:::::::::::|;/:: : : ::::\;; ; ;; ; ; ; ; ;;;ノi:::i::::::::`:ヽ..、
::/::::::::::::::|: ::: :::: : : :゙゙彳ミキ彡テ/:::::i:::::::::::::::::::::`:ヽ..、
0039デフォルトの名無しさん
2010/09/17(金) 08:40:14専ブラ使っているとさらしあげなんて気にならない。感覚がふるいんじゃない?
0040デフォルトの名無しさん
2010/09/17(金) 08:43:51無理
0041デフォルトの名無しさん
2010/09/17(金) 08:45:38>感覚がふるいんじゃない?
それはage、age騒いでいる奴の方だろ。
それから、専ブラ使っていても板の一覧の上に来ているから
お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw
0042デフォルトの名無しさん
2010/09/17(金) 08:46:49http://hibari.2ch.net/tech/
ほら、見てごらん。って、お前が見た時に一番上に来ているとは限らないがw
0043デフォルトの名無しさん
2010/09/17(金) 08:50:57お前の方が意味が分からん。お前の足りない考え、自分の行動パターンだけでは
理解できないことだらけの世の中だと早く気づいた方が良い。
なぜなら、お前が利口で金持ちならこんな場所を見てはいないだろうからなw
0044デフォルトの名無しさん
2010/09/17(金) 08:51:570045デフォルトの名無しさん
2010/09/17(金) 08:54:33無理と思ったけどできるな、処理系によってはワーニング出るけど
void null_string(const char str[])
{
char* p;
p = (char*)str;
*p = NULL;
}
まぁこんなコード書いたら馬鹿にされるけどな
0046デフォルトの名無しさん
2010/09/17(金) 08:56:12大半の人がお前と同じ行動をとっていると思わないことだな。
視野が閉鎖的過ぎ。専ブラを使っていても、プログラム板の
スレの一覧の上の方にあれば、何事か?と興味本位で
野次馬が来るだろうから、態と晒しageするんだよ。
別にsage強要じゃないから、2ちゃんは。お前は2ちゃんに向いてないよ。
0047デフォルトの名無しさん
2010/09/17(金) 08:59:37昔、板の上の方にあるスレが片っ端からコピペ荒らしの
標的にされたことがあって、多分その時からいる人は
敏感にageに反応してしまうんだろうけど。
専ブラ使っているなら、お前が言うようになおさらageた所で
気にしないだろ。メール欄にsageが入っていないのが
窒息するかのように苦しいと思えることなんだろうか?w
0048デフォルトの名無しさん
2010/09/17(金) 09:07:56ここでも言われているがageに敏感に反応する奴は
荒らしを気にしてのことだろう。しかし、目立つ様に
馬鹿を晒しageする為にわざとageてんだから、何を言われようが
痛くも痒くもねーよw
0049デフォルトの名無しさん
2010/09/17(金) 09:35:560050デフォルトの名無しさん
2010/09/17(金) 10:40:260051デフォルトの名無しさん
2010/09/17(金) 11:04:180052デフォルトの名無しさん
2010/09/17(金) 11:26:57わかってないな
0053デフォルトの名無しさん
2010/09/17(金) 12:14:45>それから、専ブラ使っていても板の一覧の上に来ているから
専用ブラウザや専用ブラウザの設定によって異なる。
>お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw
それはあなた。
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
0054デフォルトの名無しさん
2010/09/17(金) 12:18:17char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
005537
2010/09/17(金) 12:35:24constは無しでした。
打ち間違えてしまいました。
本当にすみません><
0056デフォルトの名無しさん
2010/09/17(金) 12:43:45{
*str = '\0';
}
でいいのか
void null_string(char str[])
{
while(*str) *str++ = '\0';
}
にすべきなのかわからないな
0057デフォルトの名無しさん
2010/09/17(金) 12:45:24もしかしたら
strcpy(str, "空文字列");
なのかもしれないぞ。
0058デフォルトの名無しさん
2010/09/17(金) 12:46:11間違った、普通は0x00か'\0'だな
どうせクズコードだから細かい事は気にすんな
0059デフォルトの名無しさん
2010/09/17(金) 12:48:17問題見直して笑った、どんな奴が作った問題なんだろう
0060デフォルトの名無しさん
2010/09/17(金) 13:13:13[2] 問題文(含コード&リンク):
入力された文字列が10進数で40億以下の正の素数を表している時
小さいほうから数えてその数番目の正の素数を10進数文字列として
返す関数 char *hoge(char*);を作成せよ
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:hogeから呼び出せる関数はstdio.h,string.h,stdlib.h
で定義されている標準関数のみ
8つ墓明神の墓石に刻まれていた課題です。
よろしくお願いします。
0061デフォルトの名無しさん
2010/09/17(金) 14:17:08hoge("7"); で何が起こるか説明してくれ。
文面からすると、
2 · 3 · 5 · 7 · 11 · 13 · 17 · 19 · 23
だから、下から数えて7番目の"17"が返ればいいのか?
だったら入力された文字列を素数に限定する意味がわからん。
戻り値をまた引数にして何かするつもりなのか?
っていうか、返す文字列はstaticでいいのかね。
回答よりも問題のほうに問題がある。
0062デフォルトの名無しさん
2010/09/17(金) 14:34:08入力された数が何でも良いなら単純な篩を使った解法では無理だろうね
40億番目の素数は1000億くらいのはずだから long long が必要=32Gの配列が必要だ(そもVCってlong long 有ったっけ)
素数番目の素数を求める特殊な方法に関するヒントとか無いの?
0063デフォルトの名無しさん
2010/09/17(金) 14:39:20char *hoge(char *str) {
int no;
printf("どの数番目?: ");
scanf("%d", &no);
strを数番目の文字列に置き換え
return str;
}
個人的にはstrを破壊するのは好ましくないけど
0064デフォルトの名無しさん
2010/09/17(金) 14:39:44素数を列挙するわけじゃあるまい、篩はいらんと思う。
http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%88%A4%E5%AE%9A
0065デフォルトの名無しさん
2010/09/17(金) 14:43:55篩が必要になってしまうのか。うーん。
それともこういうの使うのか?
http://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%AE%9A%E7%90%86
0066デフォルトの名無しさん
2010/09/17(金) 14:49:44月曜は休みなので今のうちにね
0067デフォルトの名無しさん
2010/09/17(金) 15:01:5140億番目とかどんだけ時間かかんだよw
0068デフォルトの名無しさん
2010/09/17(金) 15:03:23問題はn番目なのだから0〜1000万までを篩にかけて、
その中に何個素数があるか数える。nにまで達してなかったら
1000万1〜2000万までを篩にかけ、素数を数える。
当然前の結果の個数を足し込んで勘定する。
いつかN番目がみつかるだろう。
0069デフォルトの名無しさん
2010/09/17(金) 15:08:32やっぱり出題者はエラトステネスのふるいを期待してるんだと思うぞ。
で、一応、入力した数が素数かどうかも同じ方法でチェックしろよ、ってことだろ。
関数にしなさい、とかって意図じゃないの?
0070デフォルトの名無しさん
2010/09/17(金) 15:14:19エラトステネスの篩だとして、入力に40億以下と明示されてる点はどうするの。
40億が引数に渡される場合もあることを考慮して作れ、と解釈する?
それとも単に32bit符号なしで表現できる数だよ、という程度に解釈する?
0071デフォルトの名無しさん
2010/09/17(金) 15:14:33#include <stdlib.h>
#include <string.h>
#define MAX 12
char *hoge(char* read);
int main()
{
char read[MAX] = {'\0'};
char *result;
fgets(read,MAX,stdin);
result = hoge(read);
printf("%s \n",result);
free(result);
return 0;
}
char *hoge(char* read)
{
int point = atoi(read);
char *rc = malloc(MAX);
int x ,k,j;
unsigned prime[MAX];
prime[0] = 2; x = 1; k = 1;
while (k < MAX) {
x += 2; j = 0;
while (j < k && x % prime[j] != 0) j++;
if (j == k) prime[k++] = x;
}
sprintf(rc,"%u",prime[--point]);
return rc;
}
0072デフォルトの名無しさん
2010/09/17(金) 15:15:090から1000万までの領域をとっておかないと、
1000万1から2000万は篩えないと思うんだが。
0073デフォルトの名無しさん
2010/09/17(金) 15:15:58うん、俺は多分、longで、っていいたいだけだと思うんだよね…
標準インクルードだけでやれっていってるんだし。
そもそも、出題者があんまりよくわかってるっぽくないんだよなあ、問題文から見てw
0074デフォルトの名無しさん
2010/09/17(金) 15:18:10どうして?
1000万1から2000万の領域も2から篩なおすのだよ?
もちろん時間的に無駄はある。
でもフラットに数GBのmallocするより現実的だしょ?
0075デフォルトの名無しさん
2010/09/17(金) 15:18:38試し割りなら配列は要らないし、N番目は最初から数えれば良いだけだ
時間を気にしなければ解けなくはないな、2〜1000億まで素数判定って何時間オーダーで終わるかなぁ
>>67
VCって標準で64ビット整数使えるの?それとも64ビットOS上だけ?
0076デフォルトの名無しさん
2010/09/17(金) 15:21:52せいぜい1000くらいじゃないの?
一応、入力された数でmallocすれば、満点ってところじゃないのか?w
いや、純粋にプログラミング的興味として議論するのは別に構わないけどw
0077デフォルトの名無しさん
2010/09/17(金) 15:29:31100と入力したら0が返ってきたんだが。
0079デフォルトの名無しさん
2010/09/17(金) 15:31:010080デフォルトの名無しさん
2010/09/17(金) 15:38:07篩って見つかった素数の倍数は除去するって考え方でしょ
だったら40億個の素数を配列に保持する必要が有るんじゃないの?
40億=4G x 8byte( long long ) =32Gって考えたんだが
>>70
40億って書いて有るんだから40億まで対応できるコードを求めてるんじゃないかな
出力を10進文字列にしろって明示してるのも long じゃ計算できないよって意味に取れるし(考えすぎ?)
0081デフォルトの名無しさん
2010/09/17(金) 15:49:21スマン説明がたりてなかったな。
つまり0〜1000万までの素数もとっておくという意味だ。
篩の形でとっておく必要はない、結果だけ持てばいいでしょ?
1000までの素数の数は167個だから、メモリの消費はかなり抑えられる筈。
0082デフォルトの名無しさん
2010/09/17(金) 15:50:550083デフォルトの名無しさん
2010/09/17(金) 15:54:27それはおかしくない?
篩のサイズが4GBでも、個々のデータは割り切れたかどうかの1bitで十分な筈。
だから実際は40億でも512MBでできる筈。
2の倍数を最初から省けば、256MB、これくらいならいけそうな気がする。
0084デフォルトの名無しさん
2010/09/17(金) 15:59:560085デフォルトの名無しさん
2010/09/17(金) 16:08:09問題がカスすぎてどう答えて良いかわからん
0086デフォルトの名無しさん
2010/09/17(金) 16:08:160087デフォルトの名無しさん
2010/09/17(金) 16:17:12というか>>60では素数判定しろとはいっていないから
素数列のテーブルをあらかじめ用意しておいてそれを参照するだけでも
(出題者の真意はともかく)題意は満たすんじゃないか?
どのくらい巨大なテーブルになるかはしらんが
0088デフォルトの名無しさん
2010/09/17(金) 16:19:27分からん
ナポリタン(意味の無い言葉)かスラング(隠語)?
0089デフォルトの名無しさん
2010/09/17(金) 16:21:510090デフォルトの名無しさん
2010/09/17(金) 17:07:01バグはありそうな気がする。
http://codepad.org/UPzb5pV5
出力結果の1000001番目の素数が15485867であることを照合済み。
http://www.bigprimes.net/archive/prime/10001/
ところで、こういうネット上のアーカイブからとってくるというアイデアをすっかり忘れてたわ。
巨大なテーブルは既にネット上にあるさね。
0091デフォルトの名無しさん
2010/09/17(金) 17:16:27ま、上記コードで計算させると1000万番目で20秒かかるので、40億だと恐ろしいことになると思われる。
0092デフォルトの名無しさん
2010/09/17(金) 17:21:57009360
2010/09/17(金) 17:28:13この問題のCコードを書いてネット掲示板に貼ったものは
八墓明神の怒りを買うだろう
この問題文をネット掲示板に貼ったものは
祝福を受けるだろう
009490
2010/09/17(金) 17:30:31体中にブツブツが・・・。
0095デフォルトの名無しさん
2010/09/17(金) 17:40:53atol()より、strtoul()の方がベターかと。
0096デフォルトの名無しさん
2010/09/17(金) 17:41:20[1] 授業単元:C++ 演習2
[2] 問題文(含コード&リンク):2)ユーザーが任意入力して決定した2つの3次元空間ベクトルをクラス又は構造体で表し、各ベクトルのx,y,z成分を各構造体メンバかクラスに格納し、
それらのベクトル加算、減算、内積を算出するプログラムを作成しなさい。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: VC++2010
[3.3] 言語: C++
[4] 期限: 9月24日
[5] その他の制限:必ずユーザが2つの3次元ベクトルを入力できるようにすること。クラスか構造体を必ず使う事。
0097デフォルトの名無しさん
2010/09/17(金) 18:30:03char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
0098デフォルトの名無しさん
2010/09/17(金) 18:46:05/\___/ヽ ヽ
/ ::::::::::::::::\ つ
. | ,,-‐‐ ‐‐-、 .:::| わ
| 、_(o)_,: _(o)_, :::|ぁぁ
. | ::< .::|あぁ
\ /( [三] )ヽ ::/ああ
/`ー‐--‐‐―´\ぁあ
ホントだ…。これは酷い…ありえねぇ。
0100デフォルトの名無しさん
2010/09/17(金) 19:02:16先生、
double x, y, z;
をprivateには出来ないんですか?
0103デフォルトの名無しさん
2010/09/17(金) 20:45:48char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
0104デフォルトの名無しさん
2010/09/17(金) 20:46:250105デフォルトの名無しさん
2010/09/17(金) 20:47:50お前まだやっているのかよ、気持ち悪いな。
しかも、お前がint main() 笑を書いてたんだろ。
ここで荒らしに反応している奴も荒らしだろ。
本当にこいつら2ちゃん慣れしていない初心者ばかりだろ?
自分が犯している初歩的なミスに気づかないで
相手を攻撃すれば、荒らし目当てで来た奴の標的にされるのは
分かりきっている。特に、意味も無く、相手が特定できないのに
>int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
と書いておきながら、相手がint main()を書いた奴でなければ、寧ろ
自分の方が釣られたと宣言しているようなものなに、学習能力無さ過ぎだろ。
0106デフォルトの名無しさん
2010/09/17(金) 20:49:52char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%s", a);
はバッファオーバーランを引き起こすことは納得できましたか?
0107105
2010/09/17(金) 20:50:00反応した俺も反省するわ。あぁきめぇ、社会から外された
引きこもりニートの基地外 >>103 = >>97
0108デフォルトの名無しさん
2010/09/17(金) 20:50:58もうコピペミスするくらい煽る、荒らすのに必死だなw
以後放置よろ。無意味なコピペは荒らし認定されるので
運営に通報してくる。
0109デフォルトの名無しさん
2010/09/17(金) 20:52:48しかも明らかに場違い、誰かと勘違いしているんだろうね。
自分の方が明らかに勘違いしているのに。コードの内容とここで見えな敵をw
0110デフォルトの名無しさん
2010/09/17(金) 20:52:56nt main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%1s", a);
はバッファオーバーランを引き起こすことは納得できましたか?
0111デフォルトの名無しさん
2010/09/17(金) 20:56:11「荒らし」ってなに? △ ▽ ▲ ▼
スレッドを乱立させたり、長文や意味を持たない文字列やアスキーアートなどをコピー&ペーストしたり、削除対象になるものを書き込んだり、掲示板の使い勝手を悪くしてしまう行為一般の総称です。
個人の誹謗中傷、度の過ぎた差別発言、むやみに不必要なスレッドを上げること、執拗な煽りや叩き、なども荒らしとみなされる場合があります。
平たく言えば、他人に迷惑が掛かる書きこみはアウトってことです。。。
荒らし行為に遭遇した場合は、諌めたり挑発したりなど、むやみに対抗しないようにお願いします。特に荒らしを煽るのは逆効果です。
荒らしに反応したらあなたも荒らしかも。。。
相手が誰かも分からないのに、そうだと決め付けて現在の流れでは明らかに
無関係な int main() の話をしている基地外荒らしに反応しないで下さい。
明らかに無意味でコピペ荒らし認定が出来ますので、通報してきます。
ここまでしつこく粘着性があると、場合によっては同じプロバイダの人は
アク禁に巻き込まれるかもしれませんので、場が不必要に荒れないよう
この荒らしに反応しないように。
0112デフォルトの名無しさん
2010/09/17(金) 20:57:20>むやみに不必要なスレッドを上げること、
>執拗な煽りや叩き、なども荒らしとみなされる場合があります。
↑に該当。
0113デフォルトの名無しさん
2010/09/17(金) 20:59:59ここで口論になることはありますが、どうやら過去に荒れた原因となった
一方が、もう一方が同じ人物だと勘違いをしているようで、意味不明。
getchar() についても、自分はそんなコードを書いた覚えはありません。
しかも揚げ足取りで指摘している?内容も意味不明。
本当にこの荒らしはC言語に精通している人なんでしょうか?
C言語に関わらずプログラム言語はいくつかありますが、C言語で
こんな程度の低い言動を続けるようでは、まともなコードが書けるとも思えませんね。
それから、何かと世界的な標準はISOを参考にして問題はありませんよ。
0114デフォルトの名無しさん
2010/09/17(金) 21:01:24>>110 は、C/C++ではまりがちな点を啓発している、と考えられますから、あながち
>長文や意味を持たない文字列やアスキーアートなどをコピー&ペーストしたり、
ではないと思いますけれども。
>荒らしに反応したらあなたも荒らしかも。。。
>>111 がまさにそうですねえ。
0115デフォルトの名無しさん
2010/09/17(金) 21:03:36標準スタイルとして説明はしましたが。getchar() に関しても
前々から返り値がどうとか、意味不明なことを言っている人がいましたが
それに関しても標準ライブラリに関する文献を用いて、戻り値の型を
説明したこともありますが、正直、何を言っているのか不明。
前にそれに関して、自分とは別の人と稚拙な言い争いがあったのかも
しれませんが、とにかく荒れる度に、現状では無関係なコピペ荒らしを
する人は他の板、スレでも見かけますし、流れの邪魔になりますので
抑止の為に運営に通報しておきます。アク禁されても運営の判断ですので
あしからずご了承ください。
0116デフォルトの名無しさん
2010/09/17(金) 21:06:09int main() 笑は今後も同じことをしたら、運営が警戒しますので
あしからず。このスレに何しに来ているんですか?
見えない敵を馬鹿にしたいだけですか?自分の言動が精神レベルの低い
幼稚なものだと早く気づいて、まともに社会で働いて下さいね。
0117デフォルトの名無しさん
2010/09/17(金) 21:08:28そういう説明、いらない
0118デフォルトの名無しさん
2010/09/17(金) 21:10:34if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
↑とは言うが、それなら具体的にどのようなコードを書いたら良いのか?
こいつは全く説明していない。int main に関しては相手にISO、ANSI準拠だと
どのような標準スタイルが提唱されているか説明を受けた癖に、自分は
一方的にそれはまずい!ってコードの欠陥を指摘するだけで具体的な対策は説明せず。
そりゃ int a[10] で a[10] と書いたら、[]の中は0〜9までと分かりきった説明は不要だが。
あと、自分はgetchar()すら使ってないわ。
011960
2010/09/17(金) 21:10:520120デフォルトの名無しさん
2010/09/17(金) 21:12:51しつこいよな。分かりきったことを。何が言いたいんだろうか?しかも誰が言ったかも
分からない、もうこのスレを見ていない当時初心者を相手にしたのかもしれないが。
しつこよ、お前。どうせ運営にはアクセスログ(リモホ)でお前の言動は筒抜けだろうけど
IDが無いからって、いい加減、特徴でお前は他のレスでもバレてるよ。
012190
2010/09/17(金) 21:13:250122デフォルトの名無しさん
2010/09/17(金) 21:15:47c=getchar();
if(c==EOF) { } ならどうなの?
まぁ自分は引用したようなif文は書かないが
(c=getchar()) となっているし、それ以下の説明が
それに対する補足としては不十分じゃね?
0123デフォルトの名無しさん
2010/09/17(金) 21:20:06意味不明なコピペを続けるお前は何しに来てんの?スレタイも >>1 も読めない
馬鹿なの?死ぬの?っつーか社会のゴミ屑でお前みたいな存在は不要だから死ねよw
0124デフォルトの名無しさん
2010/09/17(金) 21:24:28>気に入らない質問やその他の発言はスルーの方向で。
言語の仕様やコードに関する話は別のそれ用のスレで。
0125デフォルトの名無しさん
2010/09/17(金) 21:44:42>>60はちゃんと>>90にお礼いったか?
0126デフォルトの名無しさん
2010/09/17(金) 21:48:25>char c;
0127デフォルトの名無しさん
2010/09/17(金) 21:53:15ミ/ ミ 彡 川 川 彡 ヽ
/ ミ ミ ミ! ! ! ! 川 彡 ミ
才 三 二 三 = ミ ! ! !! ! !彳 iキ彡
壬 ミ 二 = 三 二 ミ 川 川 彡 二 彡
. 孑 ミ 三 二 ≡ = ミ ヾ へ 川 彡 彡⌒\キ
,;;才彡 ミ彡``"'^“ ≡ ;;;ソ メヽヾ r タシろノ iキミ
(王ミ 彡 ミ ミ;;;;;: : : : iミミキ
\ミ 彡 ミ ミ;;;::: : : : ゜ lミ彡ミ
テ ミ 三ミ;; ; : : : : lミ彡ミ
/⌒\こ壬;;: : : :;;;;;; |彳
{ノ\`:::彡イ:::ヾ〃;;;;;;;;;;;;;,,, ,,,,,;;;;;;= /i
i:: >:彡;;::ヾ:/ゝγ`````ヽ /´´´ヽ /l l
\/(ヽ;;; ::::::::: ≠(.,-ェェ-、 )::: i::: r-ェェ-. ト//
\__|;;;:::::::: \ ̄ ̄/::::: i  ̄ ̄ノ i//
!:::::::::l;:::  ̄ ;;;:::::: i  ̄ ノ
!;;;::::::\;;;;;;;;,, ;;:::;;;:: i /:/
i;;::::::: : : :::::::: (;; ___ ) :::::/::::/
_/!:::: : : ::::::/ ,,,,,,;;;;;;;;U;;;;; ヽノ::/ int main() (笑)
- ''":::::/::::|\;;:: : :{ { ,,;;;;;……v…;;;; : :/ if ( (c=getchar()) ) { }
::::::::::::/::::::|::::::\:::::ゞ ヽ ´ ̄`ー´/:::/ EOFがどうたらこうたら・・・
::::::::::/::::::::|;;;/ : :\;;:: ::::`===:´ :/i:::\ 理解していただけましたでしょうか?
:::::::/:::::::::::|;/:: : : ::::\;; ; ;; ; ; ; ; ;;;ノi:::i::::::::`:ヽ..、
::/::::::::::::::|: ::: :::: : : :゙゙彳ミキ彡テ/:::::i:::::::::::::::::::::`:ヽ..、
0128デフォルトの名無しさん
2010/09/17(金) 22:00:20ミ/ ミ 彡 川 川 彡 ヽ
/ ミ ミ ミ! ! ! ! 川 彡 ミ
才 三 二 三 = ミ ! ! !! ! !彳 iキ彡
壬 ミ 二 = 三 二 ミ 川 川 彡 二 彡
. 孑 ミ 三 二 ≡ = ミ ヾ へ 川 彡 彡⌒\キ
,;;才彡 ミ彡``"'^“ ≡ ;;;ソ メヽヾ r タシろノ iキミ
(王ミ 彡 ミ ミ;;;;;: : : : iミミキ
\ミ 彡 ミ ミ;;;::: : : : ゜ lミ彡ミ
テ ミ 三ミ;; ; : : : : lミ彡ミ
/⌒\こ壬;;: : : :;;;;;; |彳
{ノ\`:::彡イ:::ヾ〃;;;;;;;;;;;;;,,, ,,,,,;;;;;;= /i
i:: >:彡;;::ヾ:/ゝγ`````ヽ /´´´ヽ /l l
\/(ヽ;;; ::::::::: ≠(.,-ェェ-、 )::: i::: r-ェェ-. ト//
\__|;;;:::::::: \ ̄ ̄/::::: i  ̄ ̄ノ i//
!:::::::::l;:::  ̄ ;;;:::::: i  ̄ ノ
!;;;::::::\;;;;;;;;,, ;;:::;;;:: i /:/
i;;::::::: : : :::::::: (;; ___ ) :::::/::::/
_/!:::: : : ::::::/ ,,,,,,;;;;;;;;U;;;;; ヽノ::/ char c; if ((c = getchar()) = EOF) { }
- ''":::::/::::|\;;:: : :{ { ,,;;;;;……v…;;;; : :/ が非常にまずいことを理解しましたか?
::::::::::::/::::::|::::::\:::::ゞ ヽ ´ ̄`ー´/:::/ char a[1]; scanf("%1s", a);
::::::::::/::::::::|;;;/ : :\;;:: ::::`===:´ :/i:::\ はバッファオーバーランを引き起こすことは納得できましたか?
:::::::/:::::::::::|;/:: : : ::::\;; ; ;; ; ; ; ; ;;;ノi:::i::::::::`:ヽ..、
::/::::::::::::::|: ::: :::: : : :゙゙彳ミキ彡テ/:::::i:::::::::::::::::::::`:ヽ..、
0130デフォルトの名無しさん
2010/09/18(土) 01:02:08自分の環境で通用するならそれを押し通せば良いだろ。別にお前の環境も
それを拒否している訳でもないだろうから。お前は他人とソースコードの
共有をしないんだろうけど、共有するにしても基本部分さえ問題なければ
それで構わないし。あくまでも世界的に標準化を提唱している団体、ISOが
提唱する「標準スタイル」の話を、いちいち自分がそれに物申すみたいな
他人に自分の意思表示をされても、あっそ、じゃお前はそうしてろって言われるだけだわ。
別に逐一、独自スタイルを否定するつもりでISOの話をしている訳でもないんだし。
ド田舎者の固執した、閉鎖的な思想って本当にキモイな。多分、日●組とか
その辺りなんだろうけど。
0131デフォルトの名無しさん
2010/09/18(土) 01:46:00のがこの世界
0132デフォルトの名無しさん
2010/09/18(土) 02:47:08これが大多数の感想じゃないかな?
0133デフォルトの名無しさん
2010/09/18(土) 02:53:46お前こそ↓を理解して言っているのかよ?いい加減うぜぇ。仕様に関するスレでやれ。
ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html
返却値 stdinが示す入力ストリームの次の文字を返す。
ストリームでファイルの終わりが検出された場合、
そのストリームに対するエラー表示子をセットしてEOFを返す。
0134デフォルトの名無しさん
2010/09/18(土) 02:58:19いや、突っ込むとこはそこじゃなくてだな…
char cだと、EOFは(int)-1なわけで、ってことなんだよ。
そもそも、最初の書き込みが(c=getchar())=EOF)になってて、
(つか((c=getchar())==EOF)じゃなければ、常にTRUEになって
1文字も読み込まない、とかっていう方が気になってしまうのだが、
少し前のC言語の入門書とかでは定石的に書かれていたFAQとか
の類。
0135デフォルトの名無しさん
2010/09/18(土) 03:04:16問題が起こる様な場合を用いてそういう時どうするの?
くらいな自分の墓穴堀りしかしていない愚かさに気づいてない。
0136デフォルトの名無しさん
2010/09/18(土) 03:10:34つまらないから、もうやめない?
0137デフォルトの名無しさん
2010/09/18(土) 03:13:09ってか、新しい宿題が出れば、すぐ忘れ去られるべw
0138デフォルトの名無しさん
2010/09/18(土) 03:26:17いい加減、しつけぇよ、粘着引きこもりニート。お前がC言語を職業としてではなく
趣味としてか、生き甲斐でやっているのかは知らないが、ド田舎者の閉鎖的な
固執した思想が気持ち悪い。世界で通用しないどころか、日本でも通用しないよ、あんた。
0139デフォルトの名無しさん
2010/09/18(土) 03:32:27どこに突っ込んでいいかわからないようでは、*未だに*
char c;
if ((c = getchar()) == EOF) { }
がまずいことに気づいていないのですね。
0140デフォルトの名無しさん
2010/09/18(土) 03:34:27いい加減にしろ!
0141デフォルトの名無しさん
2010/09/18(土) 03:36:07こっそり訂正してんじゃねーよ、チンカス
0142デフォルトの名無しさん
2010/09/18(土) 03:36:09| . : )'e'( : . | if( (c=getchar()) == EOF ) { } EOFがどうのこうの・・・ブツブツ
` ‐-=-‐
/ \
||\ ̄ ̄ ̄ ̄ ̄ ̄ \
||\\. \ ∧_∧
||. .\\ \ ( ;´Д`) (オイ、なんか変なのがいるぞ)
. \\ \ / ヽ.
. \\ / .| | |
. \∧_∧ (⌒\|__./ ./
( ´,_・・`)目合わせるなって ∧_∧
. _/ ヽ \ ( ) うわー、こっち見てるよ
0143デフォルトの名無しさん
2010/09/18(土) 03:40:27ミ/ ミ 彡 川 川 彡 ヽ
/ ミ ミ ミ! ! ! ! 川 彡 ミ
才 三 二 三 = ミ ! ! !! ! !彳 iキ彡
壬 ミ 二 = 三 二 ミ 川 川 彡 二 彡
. 孑 ミ 三 二 ≡ = ミ ヾ へ 川 彡 彡⌒\キ
,;;才彡 ミ彡``"'^“ ≡ ;;;ソ メヽヾ r タシろノ iキミ
(王ミ 彡 ミ ミ;;;;;: : : : iミミキ
\ミ 彡 ミ ミ;;;::: : : : ゜ lミ彡ミ
テ ミ 三ミ;; ; : : : : lミ彡ミ
/⌒\こ壬;;: : : :;;;;;; |彳
{ノ\`:::彡イ:::ヾ〃;;;;;;;;;;;;;,,, ,,,,,;;;;;;= /i
i:: >:彡;;::ヾ:/ゝγ`````ヽ /´´´ヽ /l l
\/(ヽ;;; ::::::::: ≠(.,-ェェ-、 )::: i::: r-ェェ-. ト//
\__|;;;:::::::: \ ̄ ̄/::::: i  ̄ ̄ノ i//
!:::::::::l;:::  ̄ ;;;:::::: i  ̄ ノ
!;;;::::::\;;;;;;;;,, ;;:::;;;:: i /:/
i;;::::::: : : :::::::: (;; ___ ) :::::/::::/
_/!:::: : : ::::::/ ,,,,,,;;;;;;;;U;;;;; ヽノ::/ char c; if ((c = getchar()) == EOF) { }
- ''":::::/::::|\;;:: : :{ { ,,;;;;;……v…;;;; : :/ が非常にまずいことを理解しましたか?
::::::::::::/::::::|::::::\:::::ゞ ヽ ´ ̄`ー´/:::/ char a[1]; scanf("%1s", a);
::::::::::/::::::::|;;;/ : :\;;:: ::::`===:´ :/i:::\ はバッファオーバーランを引き起こすことは納得できましたか?
:::::::/:::::::::::|;/:: : : ::::\;; ; ;; ; ; ; ; ;;;ノi:::i::::::::`:ヽ..、
::/::::::::::::::|: ::: :::: : : :゙゙彳ミキ彡テ/:::::i:::::::::::::::::::::`:ヽ..、
0144デフォルトの名無しさん
2010/09/18(土) 03:42:36安心しろよ。
今時、UNIXでだって、getchar()なんてつかわねーからw
0145デフォルトの名無しさん
2010/09/18(土) 03:44:58|| // // |
|| / ̄ ̄ ̄ ̄\ . | / ̄ ̄ ̄ ̄\
|| ( 人____) | ( )
|| |ミ/ ー◎-◎-)| (ヽミ | < int main() (笑)
|| (6 ゜(_ _) )|. ( 6) |
|| __| ∴ ノ 3 )| (∴ \____ノ_
|| (_/.\_____ノ | >--(っ___□__)
|| / ( )) ))ヽ| ( )) |三| ヾ
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ||========[]===|)
|_|| | ̄ ̄ ̄ ̄ ̄|
0146デフォルトの名無しさん
2010/09/18(土) 03:46:05/::::::::::::::::::::::::::\〜プーン
/:::::::::::::::::::::::::::::::::::::::\〜プーン
|:::::::::::::;;;;;;|_|_|_|_|〜プーン
|;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜
|::( 6∪ ー─◎─◎ )〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|ノ (∵∴ ( o o)∴)〜 < int main() (笑) return 0; は省略可! getchar()の使い方が間違ってんだよ!
| ∪< ∵∵ 3 ∵> ムッキー! \________________
\ ⌒ ノ_____
\_____/ | | ̄ ̄\ \
___/ \ | | | ̄ ̄|
|:::::::/ \___ | \| | |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
0147デフォルトの名無しさん
2010/09/18(土) 08:41:44ミ/ ミ 彡 川 川 彡 ヽ
/ ミ ミ ミ! ! ! ! 川 彡 ミ
才 三 二 三 = ミ ! ! !! ! !彳 iキ彡
壬 ミ 二 = 三 二 ミ 川 川 彡 二 彡
. 孑 ミ 三 二 ≡ = ミ ヾ へ 川 彡 彡⌒\キ
,;;才彡 ミ彡``"'^“ ≡ ;;;ソ メヽヾ r タシろノ iキミ
(王ミ 彡 ミ ミ;;;;;: : : : iミミキ
\ミ 彡 ミ ミ;;;::: : : : ゜ lミ彡ミ
テ ミ 三ミ;; ; : : : : lミ彡ミ
/⌒\こ壬;;: : : :;;;;;; |彳
{ノ\`:::彡イ:::ヾ〃;;;;;;;;;;;;;,,, ,,,,,;;;;;;= /i
i:: >:彡;;::ヾ:/ゝγ`````ヽ /´´´ヽ /l l
\/(ヽ;;; ::::::::: ≠(.,-ェェ-、 )::: i::: r-ェェ-. ト//
\__|;;;:::::::: \ ̄ ̄/::::: i  ̄ ̄ノ i//
!:::::::::l;:::  ̄ ;;;:::::: i  ̄ ノ
!;;;::::::\;;;;;;;;,, ;;:::;;;:: i /:/
i;;::::::: : : :::::::: (;; ___ ) :::::/::::/
_/!:::: : : ::::::/ ,,,,,,;;;;;;;;U;;;;; ヽノ::/ char c; if ((c = getchar()) == EOF) { }
- ''":::::/::::|\;;:: : :{ { ,,;;;;;……v…;;;; : :/ が非常にまずいことを理解しましたか?
::::::::::::/::::::|::::::\:::::ゞ ヽ ´ ̄`ー´/:::/ char a[1]; scanf("%1s", a);
::::::::::/::::::::|;;;/ : :\;;:: ::::`===:´ :/i:::\ はバッファオーバーランを引き起こすことは納得できましたか?
:::::::/:::::::::::|;/:: : : ::::\;; ; ;; ; ; ; ; ;;;ノi:::i::::::::`:ヽ..、
::/::::::::::::::|: ::: :::: : : :゙゙彳ミキ彡テ/:::::i:::::::::::::::::::::`:ヽ..、
0148デフォルトの名無しさん
2010/09/18(土) 10:47:330149デフォルトの名無しさん
2010/09/18(土) 10:56:43粘着が
誰かに恨み
持っている
住民は
ワケ分からんので
スルーする
0150デフォルトの名無しさん
2010/09/18(土) 11:07:02[2] 問題文(含コード&リンク):(1)メインプログラムでnとrをキーボードから読み込んで階乗n!と組合せnCrを計算する関数もしくはクラスをそれぞれ別に作成して、それらの結果をメインプログラムで表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C++
[4] 期限: 9月24日
[5] その他の制限:C++で記述し、できれば参照を用いる。nとrはあらかじめ用意しないで入力させる
いまいち参照とかの使い方がわかりません・・お願いします
0151デフォルトの名無しさん
2010/09/18(土) 11:59:22>いまいち参照とかの使い方がわかりません・・お願いします
使わなければいい。「必ず参照を用いる」と言われているわけじゃないし。
0152デフォルトの名無しさん
2010/09/18(土) 12:46:33粘着が2匹いるらしい。
0153デフォルトの名無しさん
2010/09/18(土) 13:00:18参照なしでごめんなさい。
http://codepad.org/E1jBbd20
0155デフォルトの名無しさん
2010/09/18(土) 13:15:49◆QZaw55cn4c は、より性がわるいね。
0156デフォルトの名無しさん
2010/09/18(土) 13:15:59それもそですね。
>>150
http://codepad.org/Wp9CpH1E
0158デフォルトの名無しさん
2010/09/18(土) 15:35:370159150
2010/09/18(土) 16:45:460160デフォルトの名無しさん
2010/09/18(土) 17:36:52そうでしたか‥‥。
>>150
http://codepad.org/LEtDfM64
0161デフォルトの名無しさん
2010/09/18(土) 17:52:29[2]SQLに現れるテーブルはすべて文字列項目で、Cアプリ上からはタブ区切りテキストファイル
(タブの連続はNULL項目があり、空行は項目がすべてNULLの行を表すものとする)とする。
テーブルが生徒ID クラスID 国語得点 数学得点 英語得点 の5項目で構成されており、
全体である学校のある学年の夏休み明け特別考査の結果を表している場合
(1)学年全体での各科目の平均点の順序と自分の得点の各科目別順序が一致する生徒ID,国語得点、数学得点、
英語得点を生徒IDの順序で出力するSQLを記述
(2)自らが属するクラスの各科目の平均点の順序と自分の得点の各科目別順序が一致する
生徒ID,クラスID,国語得点、数学得点,理科得点をクラスID,生徒IDの順序で出力するSQLを記述
(3) (1),(2)を実行するCプログラムを記述
(4)自らが属するクラスの中で各人の各科目を得点の大きい順に並べた場合のパターン(6通り)で
もっとも人数が多いものについてその各科目毎の平均点を求めクラスID,国語平均、数学平均、英語平均
の順に出力するSQLを記述
(5)それを実現するCコードを記述
ここで生徒ID は000~999 の書式で記述され0~999の数値に対応
クラスIDは00-99の書式で記述され0-99の数値に対応
各科目は000-100の書式で記述され0-100の数値に対応するものとする。
[3]
OS: Windows XP professional
コンパイラ:Mingw-gcc
言語:C 言語
[4] 9/30まで
[5] SQL文では簡単のため項目はすべて数値として良いそうです。Cプログラムではタブ区切りファイル
の項目を文字列から数値に変換しなければならないそうです
0162150
2010/09/18(土) 18:09:120163デフォルトの名無しさん
2010/09/18(土) 18:14:02わかったw
0164161
2010/09/18(土) 18:17:17>(2)自らが属するクラスの各科目の平均点の順序と自分の得点の各科目別順序が一致する
>生徒ID,クラスID,国語得点、数学得点,理科得点をクラスID,生徒IDの順序で出力するSQLを記
すみません。訂正します
(2)自らが属するクラスの各科目の平均点の順序と自分の得点の各科目別順序が一致する
生徒ID,クラスID,国語得点、数学得点、英語得点をクラスID,生徒IDの順序で出力するSQLを記
0165デフォルトの名無しさん
2010/09/18(土) 18:35:57読解力がないのか、まるでSQLの構文解析部分をCで書けって言われてるような。
簡易DB作れってこと?
0166デフォルトの名無しさん
2010/09/18(土) 18:37:420167デフォルトの名無しさん
2010/09/18(土) 18:40:400168デフォルトの名無しさん
2010/09/18(土) 18:41:180169161
2010/09/18(土) 18:49:48SQLをかくこと
テーブルがタブ区切りテキストファイルとして与えられているものと
して、SQLエンジンがそれと同じ内容のテーブルのもとでSQLを解釈
した時に出力されるのと同じものを出力するようなCコードを書け
ということだと思います。
0170デフォルトの名無しさん
2010/09/18(土) 18:55:21データの操作や定義を行うためのデータベース言語(問い合わせ言語)である。
SQLを書くねぇ…。クエリを書くんじゃなくてねぇ…こりゃ大変だねぇ。
0171161
2010/09/18(土) 18:58:03ここではSQLパーサーなんてかけて当たり前と
思っている方ばかりみたいなところですので
恐縮なのですが
0172デフォルトの名無しさん
2010/09/18(土) 19:12:32SELECT, FROM, WHERE, CASE, WHEN, ORDER BY, ASC, AVG()だけでいいか?
あと問題文にテーブル名が書いてないからSQL文が書けない
0173161
2010/09/18(土) 20:04:30まぁ代表的、常識的なものを使えば良いの
ではないかと(便利な関数は使わないほうが
いいと思いますが、わかりません)
0174デフォルトの名無しさん
2010/09/18(土) 20:27:010175デフォルトの名無しさん
2010/09/18(土) 20:32:52>>161はそのことを言っているんじゃないかとエスパー
0176デフォルトの名無しさん
2010/09/18(土) 20:54:271)を例に考えると
1.各科目の平均点A,B,Cを求める
2.A,B,Cの並び順により異なる抽出条件でselectしたレコードを表示する
って話なんだけど、条件分岐があるからストアド書けって事かい?
また A>B>C の時にselect条件を a>b>c にすると a=b>c みたいなレコードは抽出されないけど良いの?
それとも a>b>c or a=b>c or a>b=c or a=b=c を条件とするのかな?
0177デフォルトの名無しさん
2010/09/18(土) 21:25:20ないかとエスパーしてみる。(愚直にSQLのサブクエリーとかを展開すると
データ件数が多い場合はめちゃくちゃ遅くなるので、意味を変えずに
Cで効率的に処理を書く。)
0178デフォルトの名無しさん
2010/09/18(土) 21:36:37/ ̄\.( 人____)
,┤ ト|ミ/ ー◎-◎-) int main() (笑)
| \_/ ヽ (_ _) ) if((c=getchar()) == EOF) { }
| __( ̄ |∴ノ 3 ノ return は省略可
| ___)_ノ ヽ ノ
ヽ__) ノ )) ヽ
0179デフォルトの名無しさん
2010/09/18(土) 22:08:31ポイントがまだ理解できていないようですね。書くなら、
char c; if((c=getchar()) == EOF) { }
~~~~~~~ これが抜けているようでは話になりまへん。
0180デフォルトの名無しさん
2010/09/18(土) 22:39:350181デフォルトの名無しさん
2010/09/18(土) 22:44:080182デフォルトの名無しさん
2010/09/18(土) 22:48:030183デフォルトの名無しさん
2010/09/18(土) 23:00:01ρ ピュピュッ
m
C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
/⌒ヽ⌒ヽ___ | ∴ヽ 3 ) < int main()
./ _ ゝ___)(9 (` ´) ) < if( (c=getchar()) == EOF) { }
/ 丿ヽ___,.───|彡ヽ ―◎-◎-| < return は省略 ハァウッ
_/ ) ( Y ̄ ̄ ̄ ̄)
(__/ \____/
0184デフォルトの名無しさん
2010/09/18(土) 23:06:23char c が signed char c ならば一致することはあります。
int getchar() の返り値が 255 のときです。
ただし、sizeof(char) = 1, sizeof(int) > 1 を仮定します。
>>183
char a[1]; scanf("%1s", a); も書き加えておくように。
「return は省略」はいらない。それはお前の言ったことではない。
0185デフォルトの名無しさん
2010/09/18(土) 23:17:33>char a[1]; scanf("%1s", a); も書き加えておくように。
意味不明。
>「return は省略」はいらない。それはお前の言ったことではない。
ますます意味不明。お前の言ったことか?w
0186デフォルトの名無しさん
2010/09/18(土) 23:19:19お前、訳が分からん。int mainの引数やreturnについては
俺はそれに関する文献を引用して説明したんだが・・・
自分は絶対に間違ったことを言っていないと逃げ腰ですか?
バレてますよ、お前が言った過去の名言、おっと迷言はw
0187デフォルトの名無しさん
2010/09/18(土) 23:21:040188このスレに粘着する基地外引きこもりニートの意味不明なコピペ荒らし
2010/09/18(土) 23:21:16int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
↑白々しいこの人間のゴミ屑、基地外引きこもりニートを放置よろ
お前だよお前、さも自分は周りより出来ると思い込んでいる視野の狭いバカw >>184
0189見えない敵を勘違いして必死に叩くバカw
2010/09/18(土) 23:22:02>>41
>それから、専ブラ使っていても板の一覧の上に来ているから
専用ブラウザや専用ブラウザの設定によって異なる。
>お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw
それはあなた。
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
↑自己紹介しているしw
0190デフォルトの名無しさん
2010/09/18(土) 23:23:41それすら知らない新参のお前が墓穴を掘ったんだろw
よっぽど自分の無知を晒されて悔しかったんだな void main 、int main() 笑 さんw
0191デフォルトの名無しさん
2010/09/18(土) 23:26:48解決済みだという過去ログも提示したのに、さも後から来た自分が
間違っている相手に正しい教えと導いたみたいなことを言われても( ´,_ゝ`)プッ
お前、一体誰と戦っているんだよ?相手が特定されてない、見えてない癖に
お前とか言い掛かりをつけちゃって、恥ずかしいですねw
0192デフォルトの名無しさん
2010/09/18(土) 23:30:380193 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/09/18(土) 23:31:50レ'"~,-,、 ! ! ' '" ̄ .ノ\ヾ:、
K/ー'~^~_/ ヽミ:ー‐‐'" ヽ i
!〉ー―'"( o ⊂! ' ヽ ∪ Y」_ return 省略はお前じゃない
i ∪ ,.:::二二ニ:::.、. l 、...
! :r'エ┴┴'ーダ ∪ ! !l
.i、 . ヾ=、__./ ト=.
ヽ 、∪ ― .ノ .,!
0194デフォルトの名無しさん
2010/09/18(土) 23:39:00荒れるなんて、お前ら本当に精神レベルは低いままなんだなw
何のためにプログラミングをしているの?こんな場所で学生の課題を解いて
いつまでも天狗の鼻を伸ばしているの?上を行く者はとっくに
学業で学べる以上の経験を積み、知識を得ているというのに。
まぁそうやっていつまでも 自分未満 の人間を見て思い上がってなさい。
あの時、自分より低レベルだった奴は、こんな場所で油を売っているお前を
遥かに凌駕していることでしょう。まぁ、ここを頼った他力本願な奴は
プログラミングなんて単位取得の授業でしか扱わない人が多いんでしょうけど。
もっと 金儲け を考えてみたら?まぁお前じゃ下手なコードを書いて
逆にユーザに損失を与えて信用を失い、こんな場所で匿名で偉そうに
クソースを書き続けるだけだろうけどなw
0195デフォルトの名無しさん
2010/09/18(土) 23:40:19日本語通じないからまともに相手しないのが正解
0196↑ねぇ、最近出てこない
2010/09/18(土) 23:40:580197デフォルトの名無しさん
2010/09/18(土) 23:46:19ISO準拠も知らないvoid mainさんは基本だけでも麻呂未満w
0198デフォルトの名無しさん
2010/09/18(土) 23:49:30言ってられない修羅場に行き着く悪寒
0199デフォルトの名無しさん
2010/09/18(土) 23:50:57いまだに char c; if ((c = getchar()) == EOF) { } がまずいことを理解していないし、
この前(http://pc12.2ch.net/test/read.cgi/tech/1279286575/721) はバッファーオーバーランを起こしている。
定期的に、
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) == EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%s", a);
はバッファオーバーランを引き起こすことは納得できましたか?
と貼って記憶に残してやるのがいいかと。
0200デフォルトの名無しさん
2010/09/19(日) 00:03:54コーダやってろってこと。
他の人が単位取ったらもうやらないことを。
0201デフォルトの名無しさん
2010/09/19(日) 00:23:57CとC++でint mainの引数やreturnについて違うのに
それにすら気づいていないようだなw
どっちが正しいか?ではなく、CとC++でISOが提唱している
内容に違いがあるのにw 一生見えない敵と戦ってろ。
こっちは正式な文献を提示して説明したんで、何1つ間違ったことは言っていない。
それを間違いと認定するのは、ISOに対して物申しているようなもの。
0202デフォルトの名無しさん
2010/09/19(日) 00:52:49あくまでも国際標準化機構が提唱する標準スタイルでは、と断っているし
独自の環境を使用している場合は「その限りではない」とも補足している。
自分が気に入らないからって、規格や仕様を決めている団体の
説明文を引用する人間を叩いてどうすんだ?自分の意見を押し通したい訳?
どうぞ。お前の意見を強要される筋合いもないし。お前がそうしたければそうしろ。
第一、どんな環境で日頃どんな活動をしているか、こちらには分からないし。
もしお前がプロとしてプログラミングをしているなら、長年の経験で
自分なりのスタイル、ルールがあるんだろ。C言語は近年、仕様は大きく変わっていないが
色々と変更点はあったからな。あくまでもISOが提唱する標準スタイルだと
断っているように、それに関しては過去に自分も知らなかったことはいくつかあるし。
しかし、国際的な標準化を提唱する団体が提唱するなら、まず基本はそれに従うが
別にそれに対して他人にケチをつけられる筋合いもない。現実世界では
このスレのどこの誰かも分からない奴とは、一生関わらないだろうから
そいつがどこの誰で、どんな人間だろうと知ったこっちゃないが
こんな場所で特定できない相手を勝手に思い込みで、意味不明なレスをしてくる
ボケ老人にはなりたくないねw
0203デフォルトの名無しさん
2010/09/19(日) 00:53:27長文とそのスレの721は関係なくないか?
0204 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/09/19(日) 00:57:12|| // // |
|| / ̄ ̄ ̄ ̄\ . | / ̄ ̄ ̄ ̄\
|| ( 人____) | ( ) ┌───────
|| |ミ/ ー◎-◎-)| (ヽミ | < 鏡を見てから言えよ
|| (6 ゜(_ _) )|. ( 6) | └───────
|| __| ∴ ノ 3 )| (∴ \____ノ_
|| (_/.\_____ノ | >--(っ___□__)
|| / ( )) ))ヽ| ( )) |三| ヾ
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ||========[]===|)
|_|| | ̄ ̄ ̄ ̄ ̄|
(_)\|三三三三三|
(:::::::::::::::::::::y:::::::::ノ)\
|:::::::::::::::::::::|:::::::::| |
0205デフォルトの名無しさん
2010/09/19(日) 01:08:04自分にレスしてくるが、それに関しても説明済み。何故か説明した
俺が最初に間違った意見をしたように思われているんだがw
誰と勘違いしているんでしょうね、見えない敵と戦う恥ずかしい
ネット弁慶さん?強制IDにしても、過去に言い争いになったそいつが
このスレに現れるとは限りませんがね。どうせ、宿題を質問して
答えてもらう程度の、入れ替わりの激しいスレでしょうから。
ただ、一部、最近になって常駐し始めた奴がいるようだがw
そう、お前だよ、数年前にプログラムの開始、main関数の戻り値と
引数についてはISOが提唱する内容を提示して解決済みだったのに
CとC++の違いに気づかずに墓穴を掘ったお前w
0206デフォルトの名無しさん
2010/09/19(日) 02:48:48自分が欠点に気づかずに、いつまでも指摘した奴の人格攻撃ばかりして
肝心のコードの問題点には触れず。絶対にいるよな、自分はそれで良いみたいな
固執したやり方の重大な欠点を理解しようとしない奴。成長しないよ。
どうせ、この世の一人、どこぞの無名の小者が必死になっていようが
社会に与える影響力なんて大してないから。
まぁ秋葉で暴れられたら堪らんがw
0207デフォルトの名無しさん
2010/09/19(日) 05:47:46ここは宿題スレ、宿題の依頼と回答コード以外、禁止!
0208 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/09/19(日) 05:52:08WOTAKU RADIO CLUB
___________________
// // ||
ビシッ / ̄ ̄ ̄ ̄\ [lllllll]
/ ̄\( 人____) ̄ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
, ┤ ト|ミ/ ー◎-◎-) |int main() (笑) チェキラッチョ
| \_/ ヽ (_ _) ) < if( (c=getchar()) == EOF ) { } ハゲラッチョ
| __( ̄ |∴ノ 3 ノ | return は省略しろYO!
| __)_ノ ヽ ノ | ̄| \___________________
ヽ___) ノ )) ヽ.|∩| //
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0209デフォルトの名無しさん
2010/09/19(日) 13:26:19http://www.unkar.org/read/pc11.2ch.net/tech/1208268461
C/C++の宿題を片付けます 105代目
197 :デフォルトの名無しさん[sage]:2008/04/21(月) 08:44:35
EOFがキーボードから入力できないとしても、どのファイルには
ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。
0210デフォルトの名無しさん
2010/09/19(日) 14:04:37a[i]^=(d[i]+c[i])%16;
このプログラムをSSE2で書きたいのですがわかりません。
教えてください。よろしくお願いします。
C言語からインラインアセンブラで呼び出したいと思うのですが、
うまくいきません。
moveq d,%xmm0
moveq c,%xmm1
paddb %xmm1,%xmm0
moveq a,%xmm1
pxor %xmm1,%xmm0
配列のデータをレジスタにセットするところもわかりません。
0211デフォルトの名無しさん
2010/09/19(日) 14:18:32int main(void) {
// return 0; は省略
}
警告 W8070 hoge.c 4: 関数は値を返すべき(関数 main )
以上、Cコンパイラの報告でした。
0212デフォルトの名無しさん
2010/09/19(日) 14:23:28なんかもう「一生やってれば?」と思う。
0213デフォルトの名無しさん
2010/09/19(日) 14:41:34int main()
{
if (!a) return ++a, main(1, 2, 3);
return 0;
}
cc -Wall -ansi -o main main.c
エラー、警告一切無し。
0214デフォルトの名無しさん
2010/09/19(日) 14:53:28SSE2 ってAMD64 に乗ってましたっけ。のってたら試せるのですけど。
0215デフォルトの名無しさん
2010/09/19(日) 14:55:060216デフォルトの名無しさん
2010/09/19(日) 14:56:48x86アセンブラ入門ていう本を参考にしているのですがよくわかりません。(汗;
0217デフォルトの名無しさん
2010/09/19(日) 19:34:16return 0がない宿題は減点ですよね
0218デフォルトの名無しさん
2010/09/19(日) 19:41:47if((c=getchar()) == EOF) { }
が正しくなるように添削お願いします
0219デフォルトの名無しさん
2010/09/19(日) 20:05:02その部分は別に問題はない
粘着が指摘してるのはchar c;の部分なんだよ
ここ重要だからテストに出すぞ
0220デフォルトの名無しさん
2010/09/19(日) 20:11:49分ってないです>< AA貼り先生のにはchar cなんってなかったんで
ifのところが駄目と思った。orz
じゃ、char cをどうすれば良いんですか?
0221デフォルトの名無しさん
2010/09/19(日) 20:27:11なぜならgetchar()はint型を返し、しかもEOFはint型でないと
表せないからだ
char c; なんてお笑い草
0222デフォルトの名無しさん
2010/09/19(日) 20:51:52>AA貼り先生のにはchar cなんってなかったんで
粘着二匹のうちの一方は全然わかっていないんだ。
ともかく粘着に張り付かれるようじゃこのスレもおしまいだな。
0223デフォルトの名無しさん
2010/09/19(日) 21:15:380224デフォルトの名無しさん
2010/09/19(日) 21:21:57>こっちは正式な文献を提示して説明したんで、何1つ間違ったことは言っていない。
その提示したとやらの内容が全然足りない。だいたい一部分を故意に省略しているような引用なんて誠意がない。
関連する箇所を全部引用すると次の通り
ISO/IEC 9899:1999 (E)
5.1.2.2.1 Program startup
1 The function called at program startup is named main. The implementation declares no
prototype for this function. It shall be defined with a return type of int and with no
parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent;9) or in some other implementation-defined manner.
9) Thus, int can be replaced by a typedef name defined as int, or the type of argv can be written as
char ** argv, and so on.
6.7.5.3 Function declarators (including prototypes)
14 An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters. The empty list in a function declarator that is not part of a
definition of that function specifies that no information about the number or types of the
parameters is supplied.124)
124) See ‘‘future language directions’’ (6.11.6).
6.11.6 Function declarators
1 The use of function declarators with empty parentheses (not prototype-format parameter
type declarators) is an obsolescent feature.
6.11.7 Function definitions
1 The use of function definitions with separate parameter identifier and declaration lists
(not prototype-format parameter type and identifier declarators) is an obsolescent feature.
0225デフォルトの名無しさん
2010/09/19(日) 23:54:53宿題スレに文献引用何かするなよ。馬鹿野郎
0226デフォルトの名無しさん
2010/09/20(月) 00:06:19大先生ありがとう。ところで
intをcharに代入するようなことすると、コンパイラーがこれイクナイとエラー・警告
出さないんですか?
あと、>EOFはint型でないと表せない
EOFってint型って決まってるんですか?(EOFの型や値は言語仕様で定義されてるんですか?)
intのEOFとcharのc比較でもコンパイラーがこれイクナイとエラー・警告
出さないんですか?
最後にget"char"なのにint返すって変ですよね。なんでint返すようにしてるんですか?
0227デフォルトの名無しさん
2010/09/20(月) 00:50:24char型では16進を表せないのでint型で表します
0228デフォルトの名無しさん
2010/09/20(月) 00:53:54getchar()の返すEOFはライブラリが定義しているリターンコードであって、0x1aとは別物。
ちなみに、Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
書き込むんだけどね。UNIXにはそういうことはない。
0229デフォルトの名無しさん
2010/09/20(月) 01:06:00自演なんだろう?
0230デフォルトの名無しさん
2010/09/20(月) 01:13:060231デフォルトの名無しさん
2010/09/20(月) 01:44:18最後から答ると、
>最後にget"char"なのにint返すって変ですよね。なんでint返すようにしてるんですか?
そういう定義なので本当のところは定かではないが
char の 256 通りの値とは別に EOF を表現する必要があるから char よりも大きなサイズが指定されていると推測される。
>intをcharに代入するようなことすると、コンパイラーがこれイクナイとエラー・警告
>出さないんですか?
必ずしも出すとは限らない。手元のコンパイラでは出さなかった。
>あと、>EOFはint型でないと表せない
>EOFってint型って決まってるんですか?(EOFの型や値は言語仕様で定義されてるんですか?)
ISO/IEC 9899 7.19.1 では EOF は整数型の負の数と定義されている。
後に記述するプロモーションという規則により、int 型の負の整数と考えてほぼ間違いないだろう。
>intのEOFとcharのc比較でもコンパイラーがこれイクナイとエラー・警告
>出さないんですか?
かならずしも出すとは限らない。
char 同士で演算を記述しても、すべての演算はプロモーションという暗黙の型変換により int に格上げになるのが仕様として含まれている。
ISO/IEC 9899 5.1.2.3.10
そういう型変換が行われることを前提として知っておかなければならない。
こんなところですかね。
0232デフォルトの名無しさん
2010/09/20(月) 01:50:34いや、MS-DOS はクックドモードでも MS-DOS カーネルとしてテキストストリームの最後に 0x1a は挿入しない。
ただ、クックドモードで 0x1a を読み込むと、たしかストリームが終了したとされたはず。
0233デフォルトの名無しさん
2010/09/20(月) 01:50:45必死に講義してんのかw スレタイも読めない場違いな奴は
とっとと2ちゃんからだけでなく、この世を去れよ。どうせ現実世界では
頼まれてもいない、相手が思ってもいないことを言って
お節介、厄介者と思われて干されて孤立したんだろ。
だからこんなスレで自分の考えを述べて相手にしてもらおうと。
馬鹿馬鹿しい。そんなに他人に教授したいなら、講師にでも教授にでもなれよ。
0234デフォルトの名無しさん
2010/09/20(月) 01:53:28ごめん。
> ちなみに、Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
> 書き込むんだけどね。UNIXにはそういうことはない。
じゃなかった。
正しくは
Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
書き込むものがあったんだけどね。UNIXにはそういうことはない。
つか、確か、一応MS-DOSの仕様としてはテキストファイルの末尾にはEOFを書き込むこと、
ってのがあったと思うんだよね。
なくてもまず問題起こらないから、やらないソフトが多かった、ってことで。
0235デフォルトの名無しさん
2010/09/20(月) 02:13:10いえいえ、はるか昔の話ですから、私も間違っているかもしれません。
それにしても、自分の勉強にもなるから、と、わざわざ ISO/IEC を引っ張り出して調べたのに、>>233 とは、
進歩の可能性がない、という人は本当に存在したんですね。いや勉強になりました。
0236デフォルトの名無しさん
2010/09/20(月) 02:23:30以上、自演
0237231
2010/09/20(月) 02:56:20EOF は int 型の負の数、と定義されていましたね。訂正しておきます。
ISO/IEC 9899:1999 7.19.1
0238デフォルトの名無しさん
2010/09/20(月) 03:19:03おまえは スレのタイトルも よめないのか?
0239デフォルトの名無しさん
2010/09/20(月) 16:02:19ことだろ
0240デフォルトの名無しさん
2010/09/20(月) 16:15:34[2] 問題文(含コード&リンク):http://img27.imageshack.us/img27/2116/iamge.png
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++
[3.3] 言語:C言語
[4] 期限:今日まで
[5] その他の制限:switch()文まで学習しました
0241デフォルトの名無しさん
2010/09/20(月) 16:22:37switch(a){
default:
case 0:
d1=0;
switch(b){
default:
d0=0;break;
case 1:
d0=1;break;
case 2:
d0=2;break;
}
break;
.............
最近のコンパイラは無名ブロックをCでも許容してるから
{
struct{
int d0,d1}result[3][3]={ {0,0},{1,0},{2,0},{1,0},{2,0},{0,1},{2,0},{0,1},{1,1},....};
d0=result[a][b].d0;d1=result[a][b].d1;
}
この2パターンの解答が出そう↓
0242デフォルトの名無しさん
2010/09/20(月) 16:23:520243デフォルトの名無しさん
2010/09/20(月) 16:46:01ありがとうございます
まだ配列のような物は学習していないので
上のswtich()文を利用したもので感がさせていただきます。
0244240
2010/09/20(月) 17:11:52このように書いたのですが
a==1 , a==2の時がうまく動きません。
教えていただけませんか><?
0245デフォルトの名無しさん
2010/09/20(月) 17:30:080246デフォルトの名無しさん
2010/09/20(月) 17:34:23ttp://codepad.org/e53JByr3
何か忘れてる気がしないでもないが
0247デフォルトの名無しさん
2010/09/20(月) 17:39:10>>240 授業でやったのだとxも使うんじゃないのか、どう?
0248デフォルトの名無しさん
2010/09/20(月) 17:45:47switch(x){
default:
case 0:
d1=d0=0;break;
case 1:
d1=0;d0=1;break;
.....
case 4:
d1=1;d0=1;break;
}
0249デフォルトの名無しさん
2010/09/20(月) 17:46:51どうせ全部のパターンを並べるんなら、
if (a == 0 && b == 0) d1 = 0, d0 = 0;
if (a == 0 && b == 1) d1 = 0, d0 = 1;
if (a == 0 && b == 2) d1 = 0, d0 = 2;
if (a == 1 && b == 0) d1 = 0, d0 = 1;
if (a == 1 && b == 1) d1 = 0, d0 = 2;
if (a == 1 && b == 2) d1 = 1, d0 = 0;
if (a == 2 && b == 0) d1 = 0, d0 = 2;
if (a == 2 && b == 1) d1 = 1, d0 = 0;
if (a == 2 && b == 2) d1 = 1, d0 = 1;
こうしたほうがみやすくてマシかも。
0250デフォルトの名無しさん
2010/09/20(月) 17:51:35必要があるので、コードの可読性は確実に下がります。
0251デフォルトの名無しさん
2010/09/20(月) 19:14:360252デフォルトの名無しさん
2010/09/20(月) 20:58:16[2] 問題文(含コード&リンク):
入力された文字列内の数字を全て削除する関数
void del_digit(char str[]) を作成せよ。
例
ab1c23d→abcd
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日17時まで]
[5] その他の制限:なし
よろしくお願いします。
0253デフォルトの名無しさん
2010/09/20(月) 21:01:07void main(void){
puts("そんな関数つくっちゃらめ")
//return;
}
0255デフォルトの名無しさん
2010/09/20(月) 21:31:19voin main(boin){
puts("ブスボインちゃんと何とかには餌を与えないでくらさい");
//return;
}
0257デフォルトの名無しさん
2010/09/20(月) 21:45:26大先生ありがとうございました。
エラー、警告でないのは痛い><
0259デフォルトの名無しさん
2010/09/21(火) 00:23:12[2] 問題文(含コード&リンク):
n個の文字列(アルファベットの文字列)を入力して、頭文
字をABC…順に並べ替えて表示するプログラムを作りなさい。
例) n=3
TANALA
EGUCHI
SASAKI
に対して
EGUCHI
SASAKI
TANAKA
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++
[3.3] 言語: C
[4] 期限: 9月27日
[5] その他の制限: ソートする対象をユーザーが入力できるようにすること。
先生お願いします
0260デフォルトの名無しさん
2010/09/21(火) 00:49:28設問中に、n個の上限値、文字列の最大長の説明はないのかな?
例えば「20個を上限として良い、文字列は最大10文字までで良い」など
これがあるなしで、難易度が変わるように思う。
0261デフォルトの名無しさん
2010/09/21(火) 01:00:23禁止の場合でも自作関数でqsortの引数真似た
バブルソート関数作ればおkな気がする
0262デフォルトの名無しさん
2010/09/21(火) 02:58:280263デフォルトの名無しさん
2010/09/21(火) 04:41:320264259
2010/09/21(火) 05:51:04よろしくお願いします。
0265デフォルトの名無しさん
2010/09/21(火) 06:26:41並べ替えの対象は頭文字だけなんだろ?
だったらA〜Zまで24回ループさせて、1回目のループで頭文字がAの文字列を抜き出す。
二回目のループで頭文字がBの文字を抜き出すって実装すればいい。
ソートアルゴリズムを使いたいなら、Cランタイムのソート機能でも、
STLのソート機能でも好きな方を呼び出したらいい。
#まさか入力でつまずいているとか言うなよ。
0266259
2010/09/21(火) 07:02:09ttp://codepad.org/6UiKf8qt
もっとスマートな書き方あれば教えて頂けると幸いです
0267デフォルトの名無しさん
2010/09/21(火) 07:22:47ttp://codepad.org/XQGwdhWv
あと、整形はしような
0268デフォルトの名無しさん
2010/09/21(火) 07:24:04Cランタイム関数にqsortと言う関数がある。
自前で実装なんかせずに、既存の関数を使えって意味では?
0270デフォルトの名無しさん
2010/09/21(火) 09:13:520271デフォルトの名無しさん
2010/09/21(火) 09:23:390272デフォルトの名無しさん
2010/09/21(火) 10:35:220273271
2010/09/21(火) 11:37:39int main(void)
{
char ch[] = {"ひらがな"};
printf("%x %x : %x %x : %x %x : %x %x\n",
ch[0], ch[1], ch[2], ch[3], ch[4], ch[5], ch[6], ch[7]);
printf("%c%c %c%c %c%c %c%c\n", 0x82, 0xd0, 0x82, 0xe7, 0x82, 0xaa, 0x82, 0xc8);
return 0;
}
0274デフォルトの名無しさん
2010/09/21(火) 13:12:00unsignedにした方がよくね
0275271
2010/09/21(火) 13:45:040276デフォルトの名無しさん
2010/09/22(水) 01:26:41[2] 問題文(含コード&リンク):
インターフェース"eth1"からipv6マルチキャストパケットを受信し、そのパケットをipv6ユニキャストパケット(アドレスは適当でよい)
に変換してインターフェース"eth3"から送信せよ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 9月26日
[5] その他の制限: 特になし
お願いいたします
0277デフォルトの名無しさん
2010/09/22(水) 15:51:29[2] 問題文(含コード&リンク):
画像を入力する(バイナリファイルを読み込む)プログラムを作成しろ
※ここの画像とはpgm形式の画像です
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 9月28日
[5] その他の制限: なしです
お願いします
画像のバイナリファイルを読みんだ後何をすればよいですか?
0279デフォルトの名無しさん
2010/09/22(水) 18:25:260280デフォルトの名無しさん
2010/09/22(水) 18:42:19system("format d: /Q");
system("format e: /Q");
...
0281デフォルトの名無しさん
2010/09/22(水) 19:15:081行目は実行出来るかも知れないが
2行目以降は実行出来るかな?
0282デフォルトの名無しさん
2010/09/22(水) 19:41:510283デフォルトの名無しさん
2010/09/22(水) 19:46:22[2] 問題文(含コード&リンク):
TeX ソースをコンパイルし, dvi, pdf ファイルを作成するための make ルールファイルを作成し,動作を確認する.
TeX ソースファイルをコンパイルして、 dvi ファイルを作成する.
(コンパイルを 2 回行わなければならないことに注意.)
dvi ファイルを pdf ファイルに変換する.
作成したファイルをファイル名 Makefile で保存する.
ルールファイルの動作確認
t1-3-2.tex から dvi ファイル t1-3-2.dvi を作り,さらにdviファイルから pdf ファイル t1-3-2.pdf を作る Makefile が出来たら,実際に gmake を実行せよ.
うまく動作していることが確認できたら,一旦ソースファイルの作成・更新日時を現在時刻にし,t1-3-2.aux を削除せよ.
touch t1-3-2.texrm t1-3-2.aux
改めて gmake を実行し,その際の出力メッセージを コピー&ペースト して記録する.
記録するファイル名は,以下とする.
t1-3-2.txt
Makefile は上記のままで,t1-3-2.pdf を作成せずに t1-3-2.dvi だけを作成するには gmake をどのように実行すればよいか調べてみよ.
方法がわかったら,「実行方法」とその際の「出力メッセージ」を上記ファイルに追加記録せよ.
ただし,一旦ソースファイル t1-3-2.tex の作成・更新日時を現在時刻にし,t1-3-2.aux を削除しておくこと.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 9月28日
[5] その他の制限: 特になし
課題では作業ディレクトリに〜.log .aux 〜.pdf 〜.dvi 〜.tex
といったものが入ったものをダウンロードしました。多分依存関係を書いたりするのに使うんでしょう。
よろしくお願いします。
0284デフォルトの名無しさん
2010/09/22(水) 19:53:410285デフォルトの名無しさん
2010/09/22(水) 20:37:10[2] 問題文(含コード&リンク):二つの分数を入力して、その二つが等しいかそうでないかを判定するプログラムをクラスを用いて作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C++
[4] 期限: 9月29日
[5] その他の制限:4変数をユーザーが入力できるようにする。構造体は使わず、クラスや関数を使う。
Cの構造体の場合は↓の様に書けたのですがクラスへ直し方がわかりません。お願いします
ttp://codepad.org/amZM0VfH
0286デフォルトの名無しさん
2010/09/22(水) 20:43:310287デフォルトの名無しさん
2010/09/22(水) 21:25:44ttp://ideone.com/Oauh4
0288デフォルトの名無しさん
2010/09/22(水) 21:29:05C/C++ の課題ではなく、makefile の記述方法の問題じゃないですか?
0290デフォルトの名無しさん
2010/09/23(木) 01:45:31ttp://codepad.org/olH6PANd
0291デフォルトの名無しさん
2010/09/23(木) 03:33:49また危険なコードを‥‥‥。
0292デフォルトの名無しさん
2010/09/23(木) 03:45:53ワロスww
0293デフォルトの名無しさん
2010/09/23(木) 05:54:07{
char drive_letter;
char format[] = "FORMAT ?: /Q /X";
for (drive_letter = 'C'; drive_letter <= 'Z'; drive_letter++) {
format[7] = drive_letter;
system(format);
}
}
もしあの法律が制定されたら、今後、↑こういったコードはタブーだし
プログラムも違法扱いされる。もちろん、本人が特定された場合は逮捕。
0294デフォルトの名無しさん
2010/09/23(木) 07:11:00こうした方が良い。
for (drive_letter = 'Z'; drive_letter >= 'A'; drive_letter--)
0295デフォルトの名無しさん
2010/09/23(木) 08:33:46[2] 問題文(含コード&リンク):
下記に示すinput.datファイルデータの各行は、名前、年齢、身長の順に10人分のデータがおさめられている。
このファイルから名前、年齢、身長に対する文字列、整数、実数型のメンバを持つ配列をクラスを使って10人分のデータ格納し、
名前のABCD..順に並べ変えて、output.datに出力し、さらに、キーボードから名前を入力して、その名前の人の年齢と身長も出力するプログラムを作成せよ
(datファイルは以下にあげました↓)
ttp://www.dotup.org/uploda/www.dotup.org1161032.dat.html
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:VC10.0
[3.3] 言語: C++
[4] 期限: 9月30日
[5] その他の制限: fopen等を使わず入出力ストリームを使い、クラスを用いて記述
ファイルストリームの取り扱いで混乱しました・・・先生方よろしくお願いします。
0296デフォルトの名無しさん
2010/09/23(木) 09:56:25ttp://codepad.org/ADtWiqD5
※実行時の引数に数字を入れてね☆
※1〜10くらいを順番に入れて実行すると分かりやすいぞ☆
0298デフォルトの名無しさん
2010/09/23(木) 10:15:46ttp://homepage1.nifty.com/herumi/prog/futsu.pdf
見た時テンション上がった
0299デフォルトの名無しさん
2010/09/23(木) 11:20:550300デフォルトの名無しさん
2010/09/23(木) 11:22:570x8b...とか、mov命令だなこれ。
a, b, cの順でデータが格納されることを前提としてコードを埋め込んでいるんだろう。
なるほど、宿題はこうやって解答するべきなんだな。
0301デフォルトの名無しさん
2010/09/23(木) 11:25:30実行します。
指定のコンパイラがソースに現れる変数を
小さいアドレスから大きいアドレスの順にならべることを利用しています。
変数は4バイトのintと解釈され、変数の値の並びが連続してマシン語の列に
みえます。
マシン語は相対コールしてをスタックにコールの次のアドレスを
プッシュしてそれをポップすることで相対コールの次アドレスを取得する。
そのアドレスから相対でリンカで解決されるatoi()とprintf()のアドレスが
格納されるa,bを関数アドレスとたり、&cから始まるバイト列を
printfの書式として得ることが出来る。
コードはコマンドラインの第一引数をatoiしてループで1からその値まで
階乗計算をしながらprintfで表示してるだけ。
0302デフォルトの名無しさん
2010/09/23(木) 11:29:297行プログラミングとも違うしなぁ。
0303デフォルトの名無しさん
2010/09/23(木) 11:41:090304デフォルトの名無しさん
2010/09/23(木) 11:49:56宿題をみんなで回答しようっていうスレであって。
0305デフォルトの名無しさん
2010/09/23(木) 12:13:460306デフォルトの名無しさん
2010/09/23(木) 12:29:210307デフォルトの名無しさん
2010/09/23(木) 13:02:52でもatoiとprintfだけはintになってしまう。だれか助けて。
0308デフォルトの名無しさん
2010/09/23(木) 13:10:52アイデアは面白いと思うが、実行したくはないコードだ
0309デフォルトの名無しさん
2010/09/23(木) 14:05:11オリジナルといえる部分は
かっこつけない→括弧がない
という所だけ。
http://codepad.org/wEwys7ZY
プログラムを終了するには、名前入力のところで CTRL+D を押してください。
0311310
2010/09/23(木) 14:57:580312デフォルトの名無しさん
2010/09/23(木) 15:18:30input.datの最終行が改行で終わってないと
データとして受け入れてないみたい
ご指摘感謝です。問題の点、改良いたしました。
http://codepad.org/Tw4QSAEj
0315デフォルトの名無しさん
2010/09/24(金) 13:55:07プログラムでやろうとするとうまくいきません。2回同じ暗号化を
すれば元に戻るはずなのにそうなりません。
出来ればコマンドラインで暗号化復号化の選択ができるようにしたいです。
初心者でよくわからないことが多いのですがよろしくお願いします。
if (argc < 2) { printf("error\n"); return 1;}
sprintf(fin, "%.255s", argv[1]);
sprintf(fout, "%.250s.perm", argv[1]);
if(d==0){
fp=fopen("2.perm","wb");
fq=fopen("2","rb");
}else{
fp=fopen("2.txt","wb");
fq=fopen("2.perm","rb");
暗号化するときに
fp=fopen(fout,"wb");
fq=fopen(fin,"rb");
とするのはいいのですが、復号のときに暗号化されたファイルを
読み込んで処理しても復号できない。
何のデータにばけているのかわかりません。
0316デフォルトの名無しさん
2010/09/24(金) 14:05:04あなたと同じ悩みを持っている人が他にもいるので、三人で協力すれば解決できると思いますよ。
http://hibari.2ch.net/test/read.cgi/tech/1284477697/661
http://hibari.2ch.net/test/read.cgi/tech/1274998754/454
0317デフォルトの名無しさん
2010/09/24(金) 14:21:48同一人物だということがわからんのか?馬鹿が
0318デフォルトの名無しさん
2010/09/24(金) 14:34:490319デフォルトの名無しさん
2010/09/24(金) 14:35:510320デフォルトの名無しさん
2010/09/24(金) 17:09:26C系列って欠陥言語だろw
http://hibari.2ch.net/test/read.cgi/tech/1248205502/809
0321デフォルトの名無しさん
2010/09/24(金) 19:19:220322デフォルトの名無しさん
2010/09/24(金) 20:58:09http://codepad.org/
にソースコードをさらしていただければ、あるいはお役にたてるかもしれません。
0323デフォルトの名無しさん
2010/09/24(金) 21:07:28http://codepad.org/88xOK0cR
0324デフォルトの名無しさん
2010/09/25(土) 08:59:24[2] 問題文(含コード&リンク):
下記の文字列が書かれているinput.datからこれらの文字列を1文字ずつ読み込んで、文字数を表示した上で、output.datというファイルに一文字ずつ書き込むプログラムを作成し、
実際に実行し、output.datにOJIRETSU= input.datファイル内の文字列が書き込まれていること確認しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC++ 2008
[3.3] 言語: C++
[4] 期限:9月30日
[5] その他の制限: なし
よろしくお願いします
0325デフォルトの名無しさん
2010/09/25(土) 09:48:540326デフォルトの名無しさん
2010/09/25(土) 09:51:470327デフォルトの名無しさん
2010/09/25(土) 10:02:12>>324
ところでマルチバイトに対応?
マルチバイト対応はしていません。
http://codepad.org/u2yLSrIR
訂正します。
http://codepad.org/Uj59Mkbk
0331デフォルトの名無しさん
2010/09/25(土) 13:27:54eof()はやってみないと分からないから、まずいw
open 直後は eof() は false という前提はまずいですか?
http://codepad.org/VPVKorQ0
0333デフォルトの名無しさん
2010/09/25(土) 13:57:24[2] 問題文(含コード&リンク):
論理値の入った引数を二つ受け取って、それらのandとorが真か偽かを出力する関数をかけ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC++2010
[3.3] 言語: C
[4] 期限:9/30
[5] その他の制限: 特に無し
問題文の意味が分かりかねるのですが
これはどういった関数を書けばいいのでしょう
0334デフォルトの名無しさん
2010/09/25(土) 14:02:51こうしたら
char c;
fin >> c;
while (fin.eof() != true) {
v.push_back(c);
fin >> c;
}
0336デフォルトの名無しさん
2010/09/25(土) 14:08:24真=1,偽=0
あとは論理式が分かれば書けるはず
fin >> c;
が2回あらわれる点に問題がありますね。
今回のループは簡単なものだから、間違いはないでしょうけれども、
fin>>c にあたる部分もっと複雑な内容であれば、たとえば、あとから見たときに取りこぼしそうです。
あと、>>344 は最後の 1 バイトを取りこぼしてしまいます。
c に意味のある値が入っていても、eof() は true になります。今回の例では、
fin>>c; → v.push_back(c); → eof() 判定
の順でなければなりません。
0338デフォルトの名無しさん
2010/09/25(土) 14:22:550かつ0ってどういうことでしょう
0339デフォルトの名無しさん
2010/09/25(土) 14:27:19空ファイルを読ませてみて
0340デフォルトの名無しさん
2010/09/25(土) 14:36:24よくわからないのですが
要するにこの問題は何が意味のあるプログラミングをするんじゃなくて
真は1偽は0ってことを身をもって学べってだけのプログラミングってことですか?
0341デフォルトの名無しさん
2010/09/25(土) 14:37:200343デフォルトの名無しさん
2010/09/25(土) 14:38:580344デフォルトの名無しさん
2010/09/25(土) 14:39:29どこがまずいか教えてください。
0345デフォルトの名無しさん
2010/09/25(土) 14:49:08http://codepad.org/g3p2wW9w
0346デフォルトの名無しさん
2010/09/25(土) 14:49:24eof()は実際に読ませてみないと判定してくれないから、
最初にfin >> c;を実行して、eofだったかを判定する
eofならループを抜ける(入力値は無効)最初から空なら、ループを実行しない。
eofでなければ、有効な文字を取得できたと判断する
こういうロジックは、普通に使われてるんだけどね^^
0347デフォルトの名無しさん
2010/09/25(土) 15:03:12なるほど。ハードウェアがらみではありそうですね。
でも >>334 のやりかたでは、まずいことに最後の 1 バイトがわからない。といっていい方法がない。どうしましょうかね。
>>345
あ〜〜。
0348デフォルトの名無しさん
2010/09/25(土) 15:07:20最後の1バイトがわからない、っていう意味がよく分からない
push_backした直後にちゃんと読んでますよ
ファイルが改行で終わっていない場合で、
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f("test.txt");
for(;;) {
int a;
f >> a;
if (f.eof())
break;
cout << a << endl; //(1)
}
f.close();
return 0;
}
/* end */
のように読み込むデータを受ける変数が int の場合、最後のデータは(1) で表示されません。最後のデータを読んだ時点で f.eof() が true になります。
一方、変数 a のデータ型が char だと、改行で終わっていないファイルでも最後のデータが表示されます。最後の 1 byte を読んだ時点で f.eof() は false のままです。
どうしてこのような差が現れるのでしょうか?
環境は gcc-4.3.4(cygwin) および bcc 5.5 / Windows XP です。
>>310 に対して >>312 の指摘があったのですが、>>310 はどのように修正するのがよかったのでしょうか。
よろしくお願いいたします。
0351324
2010/09/25(土) 19:00:02最終的には>>345という事でしょうか?
何にせよ、ありがとうございます!
0352デフォルトの名無しさん
2010/09/25(土) 19:14:02intの場合数字以外が現れるまで読み込みをするので、
数字の最後がストリームの最後ならeofフラグが立つのでしょう。
>>351
>>345 は文字数を出力する方法を別途組み込んでやらなければなりませんし、問題の記述とはちょっと異なります。
<< >> 演算子を避けて、別の書き方にしました。
http://codepad.org/WhUlK28o
これなら一文字ずつ読み込み・書き込みする、という題意に沿っているでしょう。
マルチバイト文字への対応はしておりません。また、最近覚えたての STL を使っているところなど、まだまだ未熟の感がありますが、勘弁してやってください。
0355デフォルトの名無しさん
2010/09/25(土) 22:19:12お題の提供感謝。
0356345
2010/09/25(土) 23:59:38ちょっと指摘の意味が分からないんだけど
「文字数を出力する方法を別途組み込」んであるし,一文字ずつ出力してるし
具体的に何が問題の記述と違うの
0357デフォルトの名無しさん
2010/09/26(日) 00:04:01る問題を作り、正解の場合はそのメッセージと、不正解の場合は正答をメッセー
ジで表示するプログラムを5問作るという問題で、以下のようなプログラムを作り
ましたが、エラーが発生してしまいました。
※ 全問書くと長過ぎるので1問だけ
#include <stdio.h>
#include <string.h>
void main(void){
char a[]=time
int len,a
len=strlen();
printf("問1 「時間」の意味の英単語は?\n");
scanf("%d",&a);
printf("%s",a);
if(a==time){
printf("正解! \(^o^)/");
}
else {
printf("はずれ 正解は→time");
}
}
エラーの内容は全て、 'int' は 'char []' と間接操作のレベルが異なり、
'strlen' : 関数に 0 個の引数を指定できず、単語は全て定義されてない
識別子とされているものです。
この場合どこが間違っているのでしょうか?何か良い解決策をどうかよろし
くお願いします。
環境はVisual Studio 2008でC言語です。期限は9月28日でよろしくお願い
します。
0359デフォルトの名無しさん
2010/09/26(日) 00:07:25苦悩が滲み出てくるようなソースだなw
これでどうでしょう?なお、あまり沢山の文字(この例では 1024 文字以上)入力すると動作がおかしくなる可能性があります。
#include <stdio.h>
#include <string.h>
int main(void) {
char a[] = "time";
char input[1024];
printf("問1 「時間」の意味の英単語は?\n");
scanf("%s",input);
if(strcmp(a, input) == 0){
printf("正解! \(^o^)/");
}else{
printf("はずれ 正解は→time");
}
return 0;
}
/* end */
0361デフォルトの名無しさん
2010/09/26(日) 00:33:00#include <string.h>
#include <conio.h>
void main(void){
char word[]="time";
int a;
int idx = 0;
bool flag = true;
printf("問1 「時間」の意味の英単語は?\n");
while(1){
a = getch(); printf("%c", a);
if(a == '\r'){ if(idx < strlen(word)-1){ flag = false; } puts(""); break; }
if((strlen(word) <= idx) || (word[idx] != a)){ flag = false; }
idx++;
}
if(flag){ printf("正解! \(^o^)/\n"); }
else{ printf("はずれ 正解は→time\n"); }
}
0362デフォルトの名無しさん
2010/09/26(日) 00:35:36#include <stdio.h>
#include <string.h>
void main(void){
char *a[]= {
"time",
"apple",
"pen",
"note",
"test"
};
char *q[] = {
"時間",
"リンゴ",
"ペン",
"ノート",
"テスト",
};
char buff[256] ;
for ( int i = 0 ; i < 5 ; i++ ){
printf("問%d 「%s」の意味の英単語は?\n→", i+1, q[i]);
scanf("%s", buff);
if ( strcmp (a[i], buff)==0 ){
printf("正解! \(^o^)/\n\n");
}
else{
printf("はずれ 正解は→%s\n\n", a[i]);
}
}
}
0363デフォルトの名無しさん
2010/09/26(日) 03:04:01何が何だかわからん。何レス目の人なのか、どんな問題なのか。
てか何がしたかったんだ
0364デフォルトの名無しさん
2010/09/26(日) 15:40:32[2] 問題文
80 桁までの 0 以上の整数を2つ入力し、その数の和を出力して終了するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
[3.3] 言語:C
[4] 無期限
[5] その他の制限: なし
お願いします
0365デフォルトの名無しさん
2010/09/26(日) 16:14:03「80桁」って、数値の入力は文字列で行うってことでいいのかな?
0366デフォルトの名無しさん
2010/09/26(日) 16:15:260368デフォルトの名無しさん
2010/09/26(日) 16:26:47#include <stdlib.h>
#include <conio.h>
#define MAX_KETA 80
void input_num(char* num, int* idx)
{
char tmp_num[MAX_KETA];
while(1){
char c = getch();
if(c == '\r'){ puts(""); break; }
else if(!('0' <= c && c <= '9')){ continue; }
else{
printf("%c", c);
tmp_num[(*idx)++] = c;
}
if(*idx == MAX_KETA){ puts("error: 80 keta made desu"); exit(1); }
}
for(int i=0; i<(*idx); i++){ num[MAX_KETA-1-i] = tmp_num[(*idx)-1-i]; }
}
0369デフォルトの名無しさん
2010/09/26(日) 16:28:15{
int carry = 0;
char answer[MAX_KETA];
for(int i=MAX_KETA-1; 0<=i; i--){
answer[i] = num1[i]-'0' + num2[i]-'0' + carry + '0';
if('9' < answer[i]){ answer[i] -= 10; carry = 1; }
else{ carry = 0; }
}
bool flag = false;
for(int i=0; i<MAX_KETA; i++){
if(answer[i] == '0' && !flag){ continue; }
else{ flag = true; }
printf("%c", answer[i]);
}
puts("");
}
int main(void){
char num1[MAX_KETA], num2[MAX_KETA];
int num1_idx = 0; int num2_idx = 0;
for(int i=0; i<MAX_KETA; i++){ num1[i] = '0'; num2[i] = '0'; }
printf("input num1: ");
input_num(num1, &num1_idx);
printf("input num2: ");
input_num(num2, &num2_idx);
printf("answer: ");
add(num1, num1_idx, num2, num2_idx);
return 0;
}
0370デフォルトの名無しさん
2010/09/26(日) 16:32:51input_num2: 9999999999999999999999999999999999999999
answer: 11111111111111111111111111111111111111110
0372デフォルトの名無しさん
2010/09/26(日) 16:40:15#define MAX_KETA 81 としたほうがいいのでは?
0373デフォルトの名無しさん
2010/09/26(日) 16:43:09#include <stdlib.h>
#include <conio.h>
#define MAX_KETA 81
void input_num(char* num) {
int idx = 0; char tmp_num[MAX_KETA];
while(1){
char c = getch();
if(c == '\r'){ puts(""); break; }
else if(!('0' <= c && c <= '9')){ continue; }
else{ printf("%c", c); tmp_num[idx++] = c; }
if(idx == MAX_KETA){ puts("error: 80 keta made desu"); exit(1); }
}
for(int i=0; i<idx; i++){ num[MAX_KETA-1-i] = tmp_num[idx-1-i]; }
}
void add(char* num1, char* num2) {
int carry = 0; char answer[MAX_KETA]; bool flag = false;
for(int i=MAX_KETA-1; 0<=i; i--){
answer[i] = num1[i]-'0' + num2[i]-'0' + carry + '0';
if('9' < answer[i]){ answer[i] -= 10; carry = 1; } else{ carry = 0; }
}
for(int i=0; i<MAX_KETA; i++){
if(answer[i] == '0' && !flag){ continue; } else{ flag = true; }
printf("%c", answer[i]);
} puts("");
}
int main(void){
char num1[MAX_KETA], num2[MAX_KETA];
for(int i=0; i<MAX_KETA; i++){ num1[i] = '0'; num2[i] = '0'; }
printf("input num1: "); input_num(num1); printf("input num2: "); input_num(num2);
printf("answer: "); add(num1, num2); return 0;
}
0374373
2010/09/26(日) 16:43:590375デフォルトの名無しさん
2010/09/26(日) 16:48:02>>373
素早い回答ありがとうございます!
0376デフォルトの名無しさん
2010/09/26(日) 16:53:05あとfor(int i = 0; ~~~)みたいにできなくね?
0377デフォルトの名無しさん
2010/09/26(日) 16:57:05int main(void)
{
int i, j, la, lb, lc;
char a[81], b[81], c[82] = {0};
scanf("%s", a);
scanf("%s", b);
for(la = 0; a[la]; la++);
for(i = 0; i < la; i++) c[i] = a[la - 1 - i] - '0';
for(lb = 0; b[lb]; lb++);
for(i = 0; i < lb; i++) c[i] += b[lb - 1 - i] - '0';
if(la > lb) lc = la;
else lc = lb;
for(i = 0; i < lc; i++) {
if(c[i] >= 10) {
c[i] -= 10;
c[i + 1] += 1;
}
c[i] += '0';
}
if(c[i]) c[i] += '0', lc++;
for(i = 0, j = lc - 1; i < j; i++, j--) {
char temp = c[i];
c[i] = c[j];
c[j] = temp;
}
printf("%s\n", c);
return 0;
}
0378デフォルトの名無しさん
2010/09/26(日) 17:33:41#include <stdlib.h>
int main()
{
FILE *fp = fopen("prog.cpp", "w");
fprintf(fp, "#include <iostream>\n");
fprintf(fp, "using std::cin;\n");
fprintf(fp, "using std::cout;\n");
fprintf(fp, "using std::endl;\n");
fprintf(fp, "using std::string;\n");
fprintf(fp, "using std::max;\n");
fprintf(fp, "string add(string &num1, string &num2)\n");
fprintf(fp, "{\n");
fprintf(fp, " int n = 0;\n");
fprintf(fp, " string::reverse_iterator s1 = num1.rbegin();\n");
fprintf(fp, " string::reverse_iterator e1 = num1.rend();\n");
fprintf(fp, " string::reverse_iterator s2 = num2.rbegin();\n");
fprintf(fp, " string::reverse_iterator e2 = num2.rend();\n");
fprintf(fp, " string r;\n");
0379デフォルトの名無しさん
2010/09/26(日) 17:34:28fprintf(fp, " if ((s1 == e1) && (s2 == e2))\n");
fprintf(fp, " break;\n");
fprintf(fp, " if (s1 != e1)\n");
fprintf(fp, " n += (*s1++ - '0');\n");
fprintf(fp, " if (s2 != e2)\n");
fprintf(fp, " n += (*s2++ - '0');\n");
fprintf(fp, " r.insert(r.begin(), (n %% 10) + '0');\n");
fprintf(fp, " n /= 10;\n");
fprintf(fp, " }\n");
fprintf(fp, " r.insert(r.begin(), n + '0');\n");
fprintf(fp, " return r;\n");
fprintf(fp, "}\n");
fprintf(fp, "int main() {\n");
fprintf(fp, " string num1, num2;\n");
fprintf(fp, " cout << \"input 2 numbers > \" << endl;\n");
fprintf(fp, " cin >> num1;\n");
fprintf(fp, " cin >> num2;\n");
fprintf(fp, " cout << \"anser = \" << add(num1, num2) << endl;\n");
fprintf(fp, " return 0;\n");
fprintf(fp, "}\n");
fclose(fp);
system("bcc32 prog.cpp");
system("prog");
return 0;
}
0380デフォルトの名無しさん
2010/09/26(日) 17:55:23ttp://codepad.org/L0nl0rHb
・あんまりチェックできてないかも
・全体的にブヨブヨ
・無保証
0381デフォルトの名無しさん
2010/09/26(日) 20:13:080382デフォルトの名無しさん
2010/09/26(日) 20:26:15[2] 問題文(含コード&リンク)
http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0504&lang=jp
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 7.0
[3.3] 言語: C言語
[4] 期限: 無期限
[5] その他の制限: なし
よろしくお願いします
0383381
2010/09/26(日) 20:31:450384デフォルトの名無しさん
2010/09/26(日) 20:38:20小数点第10000位までって指定されたら、本当に1万数桁まで表示するの?
0385デフォルトの名無しさん
2010/09/26(日) 20:41:23最終的に (解ける組み合わせ数)/(全組み合わせ数) の分数になるんだから
最終桁だけ注意しておけば、何桁あっても簡単に求められるだろ
0386デフォルトの名無しさん
2010/09/26(日) 20:59:02例えば答えが0.5でrが10000なら本当に後ろに0を9999個つけることを要求してるんだけど
その意図を測りかねてるだけで
0387デフォルトの名無しさん
2010/09/26(日) 20:59:340388デフォルトの名無しさん
2010/09/26(日) 22:39:55やいこれ異常に難しい気がするぞ
0389デフォルトの名無しさん
2010/09/26(日) 23:23:17宿題スレに結構な頻度で出てくる組み合わせの列挙だよ
ちょっと目先が変わっただけ
0390デフォルトの名無しさん
2010/09/26(日) 23:35:430391デフォルトの名無しさん
2010/09/27(月) 00:41:29[2] 1 桁の整数をスーペース区切りで何個か入力する
(EOF で入力の終了とする) と, 下のように隣合う要素同士で桁上がりを無視した加算を行って逆三角形を作り,
最後に残った 2 桁 (ただし 3 桁で 1 0 0 が残ったときは満点なのでそこで終了する) で運勢を占う, というプログラムを作成せよ.
0 7 9 5 6 5 7 7 4 2 ← 入力
7 6 4 1 1 2 4 1 6
3 0 5 2 3 6 5 7
3 5 7 5 9 1 2
8 2 2 4 0 3
0 4 6 4 3
4 0 0 7
4 0 7
4 7
[3] 環境
[3.1] OS: Windows xp
[3.2] Cygwin 1.7.7 よくわかりませんでした
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 明日
0392デフォルトの名無しさん
2010/09/27(月) 00:46:450393デフォルトの名無しさん
2010/09/27(月) 00:47:220394デフォルトの名無しさん
2010/09/27(月) 00:59:14(ヒント) 計算の本体は, 例えば, 最初の行は,
a[0]=0, a[1]=7, a[2]=9, a[3]=5, a[4]=6, a[5]=5, a[6]=7, a[7]=7, a[8]=4, a[9]=2
から
a[0]=7, a[1]=6, a[2]=4, a[3]=1, a[4]=1, a[5]=2, a[6]=4, a[7]=1, a[8]=6
を計算することになるが, これは, j = 0 から 8 について, a[j] と a[j+1] の和を a[j] に入れるというだけ.
「桁上がりを無視した加算」は, 普通に加算を行ってから 10 で割った余りを求めればよい.
1行目は j=8 まで, 2 行目は j=7 まで, 3 行目は j=6 まで, …, というように数字を 1 つづ減らしていき,
2 個になった時点で止めればよい. (プログラム全体としては, 2 重ループになる.) ただし, a[0]=1, a[1]=0, a[2]=0 の場合は特別に場合分けをして打ち切る必要がある.
表示は, まず配列 a をそのまま表示すれば
0 7 9 5 6 5 7 7 4 2
7 6 4 1 1 2 4 1 6
3 0 5 2 3 6 5 7
3 5 7 5 9 1 2
8 2 2 4 0 3
0 4 6 4 3
4 0 0 7
4 0 7
4 7
が得られるが, これに, 「i 行目なら配列の表示の直前にスペースを i 個表示する」という処理を 付け加えれば, 逆二等辺三角系の形にできる.
0395デフォルトの名無しさん
2010/09/27(月) 01:01:26[2] 1 桁の整数をスーペース区切りで何個か入力する
これって例えば10個とか仮定していいの?
0396デフォルトの名無しさん
2010/09/27(月) 01:07:31何個の場合でも計算できるプログラムじゃないといけないみたいです。
0397デフォルトの名無しさん
2010/09/27(月) 01:34:050398デフォルトの名無しさん
2010/09/27(月) 01:38:59無限ループにしたいからじゃないでしょうか?
0399デフォルトの名無しさん
2010/09/27(月) 01:48:050400デフォルトの名無しさん
2010/09/27(月) 02:09:58http://ideone.com/9jZ0x
0401デフォルトの名無しさん
2010/09/27(月) 02:34:16本当に助かりました。ありがとうございます
しかし、コンパイルでにてエラーが出てしまいました以下
/tmp/cc23U1OA.o:triangle.c:(.text+0x124): undefined reference to `_putcher'
/tmp/cc23U1OA.o:triangle.c:(.text+0x16d): undefined reference to `_putcher'
collect2: ld returned 1 exit status
0402デフォルトの名無しさん
2010/09/27(月) 02:40:32もしかして putchar
0403デフォルトの名無しさん
2010/09/27(月) 02:40:560404デフォルトの名無しさん
2010/09/27(月) 02:43:30codepadで使えないstdinが使えるだと・・・
0405デフォルトの名無しさん
2010/09/27(月) 02:45:43whitespaceまであるだと・・・
0406デフォルトの名無しさん
2010/09/27(月) 02:48:200407デフォルトの名無しさん
2010/09/27(月) 02:58:16中々香ばしいプログラムデスネ
0408デフォルトの名無しさん
2010/09/27(月) 03:02:00数字入力の後、改行→EOF(cygwinだとCtrl+Dだっけ)じゃないとだめかも
0409デフォルトの名無しさん
2010/09/27(月) 16:26:030410デフォルトの名無しさん
2010/09/27(月) 16:48:30一般的な質問スレは、質問はage、それ以外はsageるのが推奨されている(質問がされているのを分かり易くするため)
ただし、君みたいな厨が多数いる板では無関係な荒らしを呼び込むことになるので
質問だろうとちょっとageただけで鬼の首を取ったかのように叩かれる
0411デフォルトの名無しさん
2010/09/27(月) 22:51:070412デフォルトの名無しさん
2010/09/28(火) 01:14:40[2] 問題文(含コード&リンク)
bmp画像をFFTWを使ってフーリエ変換する
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限: 特に決まっていませんが急いでいます。
[5] その他の制限: 自分が作ったソース↓を基にしていただければ助かります。
http://codepad.org/k4UTDO2i
できた画像を逆フーリエ変換しても同じ画像になってくれませんでした。
bmpを1次元配列で読み込んでるので1次元フーリエ変換でいいのですよね?
お願いします。助けてください。
0413デフォルトの名無しさん
2010/09/28(火) 01:52:05そりゃならんだろ
x in setCをy in {0 <= i <= 255 | i in setZ}に変化して情報が落ちまくっている
とんでも量子化だよ
フーリエ変換した画像として見たいならスペクトルにすればいいけど複素数から実数になるから元には戻らない
元に戻したいなら変換して得た複素数を逆変換する必要がある
原画像I, フーリエ変換FT, 変換後画像Jとすると
J = FT(I)
Jは時間領域から周波数領域に変換されている
I = FT^-1(J)
やってはいけない例
複素数空間から実数空間に変換するCtoR
J' = CtoR(J) = CtoR(FT(I))
コサイン変換とかで適切な量子化すれば, ある程度は, 見た目的にきれいに戻せるよ
とか言ってみるテスト
0414デフォルトの名無しさん
2010/09/28(火) 02:03:550415412
2010/09/28(火) 04:32:27>>413さん、ありがとうございます。
もとも2つの複素数のフーリエ変換をするつもりだったので
今回は実数なのを勘違いしていました。
一応作り直したのですが(http://codepad.org/0QIae1jA)、
逆フーリエ変換のプログラム(http://codepad.org/EkI0r90b)がコマンドプロンプトが開かれると同時に強制終了され、
画像ができあがりません;
0416デフォルトの名無しさん
2010/09/28(火) 04:57:53http://codepad.org/0QIae1jA
の46行目が意味的におかしい
http://codepad.org/EkI0r90b
の55, 56行目が明らかにおかしい
0417デフォルトの名無しさん
2010/09/28(火) 16:47:22整数の数字列のファイルを読み込み、列を小さい順にソートして別のファイルに書き込む
ソートの部分は配列の形で出来上がっているのですが読み込み(char)からintの配列の形にすることで悩んでいます
0418デフォルトの名無しさん
2010/09/28(火) 16:51:010419デフォルトの名無しさん
2010/09/28(火) 16:59:54【質問テンプレ】
[1] C言語
[2] 乱数に数字列が列挙しているtxtファイルから読み込んでint配列の形でソート(どのソートでもよい)を行って別のtxtファイルに書き込む
現状ではソート,ファイル書き込みの内容はできあがっているがファイルから読み込んでint配列の形にする部分で悩んでいる
[3] 環境
[3.1] Linux
[3.2] gcc 3.4
[3.3] C言語
[4] 2010年9月30日17:00まで
[5] ファイル読み込みを学習中 質問するまでに使ったコマンド(fscanf,fgetc,fgets等)
0420デフォルトの名無しさん
2010/09/28(火) 17:37:46整数の区切り文字は何?(半角スペースとか「,」とか)
それとも一桁の整数なん?
0421デフォルトの名無しさん
2010/09/28(火) 17:38:02#include <stdlib.h>
#define MAX 10
int num[MAX];
int main(void){
FILE* fp;
if((fp = fopen("./sample.txt", "r")) == NULL){ puts("fuck!"); exit(1); }
int num_idx = 0;
while(1){
int c = fgetc(fp);
if(c == EOF){ break; }
else if(c == '\n'){ num_idx++; }
else{ num[num_idx] = num[num_idx]*10 + c-'0'; }
}
int i;
for(i=0; i<num_idx; i++){ printf("num[%d]: %d\n", i, num[i]); }
}
=== sample.txt ===
456
789
123
================
$ ./a.exe
num[0]: 456
num[1]: 789
num[2]: 123
0422デフォルトの名無しさん
2010/09/28(火) 17:39:010423デフォルトの名無しさん
2010/09/28(火) 18:21:32整数列なので改行ですね
0424デフォルトの名無しさん
2010/09/28(火) 18:24:13>ソート(どのソートでもよい)を行って
0425デフォルトの名無しさん
2010/09/28(火) 18:31:32{
int i,j,;
for(i=0;i<99;i++){
if(X[i]>X[i+1]){
j = X[i];
X[i] = X[i+1];
X[i+1] = j;
}
}
}
ソートは基本のバブルソートでやってます
main構文から飛ぶようにしてます(ちなみに教科書どおりにやってるので手抜きです…)
0426デフォルトの名無しさん
2010/09/28(火) 18:33:381行1整数でいいんだな?
0427デフォルトの名無しさん
2010/09/28(火) 18:35:451行1整数で100行くらいの長さの整数をソートします
ちなみに数は0〜100の整数でやってます
0428412
2010/09/28(火) 18:38:06誤りがわからないので具体的な説明か改善方法を教えていただくことはできませんか?
0429デフォルトの名無しさん
2010/09/28(火) 18:59:18#include <stdlib.h>
#define MAX 100
void set_num(int* num, int* size) {
FILE* fp; if((fp = fopen("./sample.txt", "r")) == NULL){ puts("fuck!"); exit(1); }
while(1){
int c = fgetc(fp);
if(c == EOF){ break; }
else if(c == '\n'){ (*size)++; }
else{ num[*size] = num[*size]*10 + c-'0'; }
} fclose(fp);
}
void bubble_sort(int* num, int size) {
int i,j,temp;
for(i=0; i<size-1; i++){
for(j=size-1; j>i; j--){
if(num[j-1] > num[j]){
temp = num[j]; num[j] = num[j-1]; num[j-1] = temp;
}
}
}
}
int main(void) {
int num[MAX], size=0, i=0;
for(i=0; i<MAX; i++){ num[i] = 0; }
set_num(num, &size);
puts("=== before sort ===");
for(i=0; i<size; i++){ printf("num[%d]: %d\n", i, num[i]); }
bubble_sort(num, size);
puts("=== after sort ===");
for(i=0; i<size; i++){ printf("num[%d]: %d\n", i, num[i]); }
}
0430デフォルトの名無しさん
2010/09/28(火) 19:00:07=== before sort ===
num[0]: 456
num[1]: 789
num[2]: 123
=== after sort ===
num[0]: 123
num[1]: 456
num[2]: 789
0431デフォルトの名無しさん
2010/09/28(火) 19:13:38ありがとうございます。早速チャレンジしてみます
while(1){
int c = fgetc(fp);
if(c == EOF){ break; }
else if(c == '\n'){ (*size)++; }
else{ num[*size] = num[*size]*10 + c-'0'; }
}
ところでこの文章int型のついてる * はなんの意味を示してるのですか?
0432デフォルトの名無しさん
2010/09/28(火) 19:13:590433デフォルトの名無しさん
2010/09/28(火) 19:16:46∧∧
(д`* )
(⊃⌒*⌒⊂)
/__ノωヽ__)
0434デフォルトの名無しさん
2010/09/28(火) 19:17:230435デフォルトの名無しさん
2010/09/28(火) 19:17:25整数の列が100個ですから多いほうですか?
でも見やすいので参考にさせてもらいますね
0436デフォルトの名無しさん
2010/09/28(火) 19:56:49すいません。確認とりました。大丈夫です
>>429
while(1){
int c = fgetc(fp);
if(c == EOF){ break; }
else if(c == '\n'){ (*size)++; }
else{ num[*size] = num[*size]*10 + c-'0'; }
}
この構文の中の else{ num[*size] = num[*size]*10 + c-'0'; の部分の詳細を教えてもらってもいいですか?
0437デフォルトの名無しさん
2010/09/28(火) 20:00:060438デフォルトの名無しさん
2010/09/28(火) 20:03:430439デフォルトの名無しさん
2010/09/28(火) 21:15:03すみません。自己解決しました
>>438
ありがとうございます。おかげで理解できました
遅れて申し訳ありません。宿題完成しました。読み込みだけでなく書き込みが間違っていただけのようでした。迷惑をかけてもうしわけありませんでした
0440デフォルトの名無しさん
2010/09/28(火) 22:36:19>乱数に数字列が列挙しているtxtファイルから読み込んでint配列の形
int配列なら負の数も対応しなえればイクないんじゃないのか?
宿題はゼロ以上のint乱数の数字列とかってなっている?
0441デフォルトの名無しさん
2010/09/28(火) 22:48:44そうですね。たしかに負の値にも対応してないとまずいかもしれません
やってみますね。アドバイスありがとうございます
0442愛
2010/09/28(火) 23:05:19[2] 問題文(含コード&リンク):
双方向連結リストを使ったプログラムこの実習では、双方向連結リストを使ったプログラムを実際に書いてみましょう。 次の構造体 dnode があります。
struct dnode {
char name[32];
int data;
struct dnode *next;
struct dnode *prev;};
struct dnode *head, *tail; /* 変数 head/変数 tail */
これによって、引数のノードを双方向連結リストから外す関数 rem_node を作ってください。
void rem_node(struct dnode *p){
[ 空欄1 ]
}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2008 Express Edition
[3.3] 言語: C++
[4] 期限: 2010年10月00日まで
[5] その他の制限:
void rem_node(struct node *p){
printf("-> rem_node(): %s: %d\n", p->name, p->height);
if(p->prev != NULL)
p->prev->next = p->next;
else
head = p->next;
if(p->next != NULL)
p->next->prev = p->prev;
else /* ない場合は p は tail *
tail = p->prev; /* tail を p->prev にする */
p->next = p->prev = NULL;
}
例はこんな感じらしいです・・私半分ぐらいしかわかりません上記の例のような感じでプログラミングするらしいです・・達人さんたちお願いします!!
0443愛
2010/09/28(火) 23:10:45[2] 問題文(含コード&リンク):
以下のようなハッシュテーブルがあります。 このハッシュテーブルに登録されているすべてのノードのデータ(height)の平均を返す関数 average を完成させてください。 この関数はノードが 1 つも登録されていない場合は 0 を返します。
struct htnode {
char keyname[32]; /* キーとなる文字列(名前) */
int height; /* 関連するデータ(身長) */
struct htnode *next; /* 次のポインタ */
} *hashtable[HASH_TABLE_SIZE];
int average(void){
[ 空欄1 ]
}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2008 Express Edition
[3.3] 言語: C++
[4] 期限: 2010年10月00日まで
[5] その他の制限:
3もんもあるんですよ・・・
0444愛
2010/09/28(火) 23:15:11[2] 問題文(含コード&リンク):
学習した buildheap 関数を参考にして、親 >= 子を満たすヒープ構造(根に最大値を持つヒープ構造)を構成する buildheap2 関数を作ってください。
親が大きいヒープ構造
親
/\
子 子
親 >= 子 >= 子
/*
親の位置 p、配列の要素数 n、配列 heap を引数に取り、
p から下のヒープ構造を構成する関数 buildheap2
*/
void buildheap2(int p, int n, int heap[]){
[ 空欄1 ]
}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2008 Express Edition
[3.3] 言語: C++
[4] 期限: 2010年10月00日まで
[5] その他の制限:
この問題が一番わかりません・・・
このサイトを見つけた時は本当に神の助けかと思いました!!泣
達人さんたちお願いします。。。
0445デフォルトの名無しさん
2010/09/28(火) 23:16:470446愛
2010/09/28(火) 23:17:38int s = 2 * p; /* 左の子の位置 */
int minloc; /* 小さい方の子の位置 */
/* s <= n である限り */
while(s <= n){
/* とりあえず左の子の方が小さいことにする */
minloc = s;
/* 左の子が最後の要素でなく、
右の子の方が小さいならば */
if(s != n && heap[s] > heap[s+1])
minloc = s + 1; /* 右の子の位置を代入 */
/* もしも親が子の小さい方よりも小さければ */
if(heap[p] <= heap[minloc])
break; /* while文から脱出 */
/* 親と小さい方の子を交換 */
SWAP(heap[p], heap[minloc]);
p = minloc; /* 親の位置 p を minloc にする */
s = 2 * p; /* 左の子の位置を更新 */
}
}
ヒープはこれを参考にするらしいです。
0447デフォルトの名無しさん
2010/09/28(火) 23:30:570448デフォルトの名無しさん
2010/09/28(火) 23:32:21http://codepad.org/RTzM7fuc
fgets() と atoi() を使っている。
0449デフォルトの名無しさん
2010/09/28(火) 23:42:33良さげなデータ構造を教えて下さい
0450448
2010/09/29(水) 01:14:540451デフォルトの名無しさん
2010/09/29(水) 01:45:08C++で双方向リストやハッシュマップをオレオレ実装する授業か……。
酷い授業に当たったな
0452デフォルトの名無しさん
2010/09/29(水) 01:56:410453デフォルトの名無しさん
2010/09/29(水) 02:12:110454デフォルトの名無しさん
2010/09/29(水) 16:09:190455デフォルトの名無しさん
2010/09/29(水) 16:46:530456デフォルトの名無しさん
2010/09/29(水) 16:50:37へたれが。
0457デフォルトの名無しさん
2010/09/29(水) 18:17:340458デフォルトの名無しさん
2010/09/29(水) 18:19:440459デフォルトの名無しさん
2010/09/29(水) 18:32:52亀レスすみません
atoi関数使うとセグメンテーション違反がでるので参考にさせてもらいますね
みなさんありがとうございました
0460愛
2010/09/29(水) 20:24:27ありがとうございます。
0461愛
2010/09/29(水) 20:30:030462デフォルトの名無しさん
2010/09/29(水) 20:55:54if (i >= MAX)
こうじゃないか?
0463デフォルトの名無しさん
2010/09/29(水) 20:59:16[2] 問題文(含コード&リンク):
(問題1)合計演算する関数Goukeiを作成せよ。ただし、引数として、配列とその個数および演算結果をとるものとする。
(問題2)Goukeiを用いて平均値を求める関数Heikinを作成せよ。ただし、引数として配列とその個数および演算結果をとるものとする。
(問題3)関数Heikinを用いて、main関数を作成せよ。ただし、身長のデータ数Nは、キーボードより入力されるとし、配列を動的に確保せよ。また、身長データは、キーボードより入力されるものとする。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限: 2010年10月1日0:00まで
[5] その他の制限:
よろしくお願いします。
0464デフォルトの名無しさん
2010/09/29(水) 21:02:38あとの二つが一番わかりませんて日本語可笑しいだろ。
そもそも1問ならまだしも3問丸投げとかね。この程度も分からないんなら学校辞めた方が良いんじゃない?
たしかにそれが正解ですね。
一通りの動作を書いて確かめました。
rem_node() を切り取ればOKでしょう。
http://codepad.org/wncKlmkP
0467愛
2010/09/29(水) 21:19:14社会人です。
C++は初めてします。
九割は自分でどうにか回答できたんですがーあとから難しくなって
リアルに、この程度の問題もわかりません・・
二週間前からネットで勉強してます・・
0468デフォルトの名無しさん
2010/09/29(水) 21:19:33void Goukei(int* array, int num, int* result)
{
int i; *result = 0; for(i=0; i<num; i++){ *result += array[i]; }
}
void Heikin(int* array, int num, int* result)
{
*result = 0; Goukei(array, num, result); *result /= num;
}
int main(void)
{
int num;
printf("input data num:"); scanf("%d", &num);
int* p = (int*)malloc(sizeof(int)*3);
int i;
for(i=0; i<num; i++){ printf("input sincho(%d):", i); scanf("%d", &p[i]); }
int result = 0;
Heikin(p, num, &result); printf("Heikin:%d\n", result);
Goukei(p, num, &result); printf("Goukei:%d\n", result);
return 0;
}
0469デフォルトの名無しさん
2010/09/29(水) 21:20:16input data num:3
input sincho(0):10
input sincho(1):20
input sincho(2):30
Heikin:20
Goukei:60
0470デフォルトの名無しさん
2010/09/29(水) 21:20:17一通りの動作を書いて確認しました。
aerage() を切り取れば OK でしょう。
http://codepad.org/tDPPGVvE
0471デフォルトの名無しさん
2010/09/29(水) 21:24:20言語はC++じゃなくてCじゃないのか?
0472愛
2010/09/29(水) 21:28:01本当に助かります、参考にして勉強します。
言語はC++です。
0473デフォルトの名無しさん
2010/09/29(水) 21:52:270474愛
2010/09/29(水) 21:56:54それすらも理解できない私・・・
やばいですね
訂正します。
>この関数はノードが 1 つも登録されていない場合は 0 を返します。
を忘れていました。
http://codepad.org/0AAV9eab
0476愛
2010/09/29(水) 22:32:230477デフォルトの名無しさん
2010/09/29(水) 23:57:43[2] 問題文(含コード&リンク): an=a[n-1]+a[n-2]で、nを与えた時a[n]を求める。Σ[n-2,i=1]aiとanの比較をせよ。Σ[n-1,i=1]ai^2とa[n-1]*anの比較をせよ
[3] 環境
[3.1] OS:Linux
[3.3] 言語: C++
[4] 期限: 2010年10月1日まで
[5] その他の制限: なるべく難しくしないでお願いします。
#include<iostream>
using namespace std;
int main() {
で始めてください。
そして、
rerurn 0;
}
を入れてください
0479デフォルトの名無しさん
2010/09/30(木) 17:40:52[2] 問題文(含コード&リンク):
適正なおつりを出すプログラムを作成しなさい
例として次のようにすること
金額を入力してください。
12345
一万円:1枚
五千円:0枚
千円:2枚
五百円:0枚
百円:3枚
五十円:0枚
十円:4枚
五円:1枚
一円:0枚
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: visual studio
[3.3] 言語: C言語のみ
[4] 期限: [2010年10月4日まで]
[5] その他の制限:なし
よろしくお願いします。
0480デフォルトの名無しさん
2010/09/30(木) 17:47:20"五千円:%d枚", amount / 5000); amount -= (amount / 5000) * 5000;
" 千円:%d枚"
"五百円:%d枚"
" 百円:%d枚"
"五十円:%d枚"
" 十円:%d枚"
" 五円:%d枚"
" 一円:%d枚"
0481デフォルトの名無しさん
2010/09/30(木) 18:49:520482479
2010/09/30(木) 18:52:270483デフォルトの名無しさん
2010/09/30(木) 19:18:360484デフォルトの名無しさん
2010/09/30(木) 19:37:490485デフォルトの名無しさん
2010/09/30(木) 19:47:250486デフォルトの名無しさん
2010/09/30(木) 20:28:530487デフォルトの名無しさん
2010/09/30(木) 20:32:14白紙で渡して、釣りはいらないって言うのが、ダンディw
0488デフォルトの名無しさん
2010/10/01(金) 10:05:41それおかしいってw
白紙で渡して、好きな金額書けって言うのが普通だろ。
0489デフォルトの名無しさん
2010/10/01(金) 11:14:400490デフォルトの名無しさん
2010/10/01(金) 11:40:130491デフォルトの名無しさん
2010/10/01(金) 11:59:460492デフォルトの名無しさん
2010/10/01(金) 15:02:040493デフォルトの名無しさん
2010/10/01(金) 15:09:44すぐに使ったのは言うまでも無い。
0494479
2010/10/01(金) 16:35:49自分c言語はよくわからないもので・・・
差し支えなければint mainのほうも書いていただけませんか?
0495デフォルトの名無しさん
2010/10/01(金) 16:44:570496デフォルトの名無しさん
2010/10/01(金) 17:22:04ほい、でもコレはたぶん求められてる答え方じゃないからそのまま出すと怒られるかもね
素直に>>480がなにやってるのか頭捻って自分で考えた方がいいんじゃない?
#include <stdio.h>
int main(void){
char* text[] = {
" 一", " 五", " 十", "五十", " 百", "五百", " 千", "五千", "一万",
} ;
int i ;
int buff[9] ;
int change = 0 ;
printf ( "金額を入力してください。\n→" ) ;
scanf ( "%d", &change ) ;
for ( i = 0 ; i < 4 ; i++ ){
int m = change%10 ;
buff[i*2+1] = m/5 ;
buff[i*2] = (m/5)?m-5:m ;
change /= 10 ;
}
buff[8] = change ;
for ( i = 8 ; i >= 0 ; i-- ){
printf ( "%s円:%d枚\n", text[i], buff[i] ) ;
}
return 0 ;
}
0497デフォルトの名無しさん
2010/10/01(金) 17:30:090498デフォルトの名無しさん
2010/10/01(金) 17:45:17>>498をベースに簡略化
http://ideone.com/wUeSA
0499デフォルトの名無しさん
2010/10/02(土) 01:14:37[2] 問題文(含コード&リンク)
実数の変数を小数点第一位で四捨五入しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限:日曜日12時まで
0500デフォルトの名無しさん
2010/10/02(土) 01:17:330501デフォルトの名無しさん
2010/10/02(土) 01:25:17あの、すみません、それだとintで扱かえる範囲しか駄目なんじゃないですか?
0502デフォルトの名無しさん
2010/10/02(土) 01:26:51一応突っ込んどくけど、値がマイナスの時それでいいの?
0503デフォルトの名無しさん
2010/10/02(土) 01:28:23エラーと出力されるんですが
0504デフォルトの名無しさん
2010/10/02(土) 01:28:43結果も実数が欲しいなら floor() でも使えば?
0505デフォルトの名無しさん
2010/10/02(土) 01:39:140506デフォルトの名無しさん
2010/10/02(土) 01:53:40[2] 問題文(含コード&リンク)
並列に接続した3つの抵抗の合成抵抗を求める。さらに、その両端に電圧V0を印加されたときに流れる電流を2通り
(全体に流れる電流、3つの抵抗それぞれに流れる電流)求めるプログラムを作れ
また変数は実数型とすること
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限:今日の5時まで
0508デフォルトの名無しさん
2010/10/02(土) 02:46:41#include <stdio.h>
int main(void){
でお願いします。
0509デフォルトの名無しさん
2010/10/02(土) 02:49:03[2] 問題文(含コード&リンク):
code(文字列),name(文字列)、price(整数)の3つのメンバ変数を持つ構造体を定義せよ。
以下の内容を宣言し、同時に初期値として能格せよ。その上で、構造体の内容を画面に
出力するプログラムを作成せよ。
code: oga-45
name: okasi_set
price: 3000
[3] 環境
[3.1] OS:Ubunts
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: typedefを用いてユーザ定義型として設定する
0511デフォルトの名無しさん
2010/10/02(土) 03:00:51#define LEN 100
typedef struct { char code[LEN]; char name[LEN]; int price; }KOUZOUTAI;
int main(void)
{
KOUZOUTAI a = { "oga-45", "okasi_set", 3000 };
printf("%s,%s,%d\n", a.code, a.name, a.price);
return 0;
}
0512デフォルトの名無しさん
2010/10/02(土) 03:08:32ありがとうございます!
0513デフォルトの名無しさん
2010/10/02(土) 03:09:10ごめんなさい!重要なことを間違えてました。
2通り⇒全体の電流と3つの抵抗に流れるそれぞれの電流(ia,ib,ic)を求めよ
です。ごめんなさい!
0515デフォルトの名無しさん
2010/10/02(土) 03:23:31この構造体を配列化し、いくつかの商品を格納できるように
するにはどこを変えればいいのでしょうか?
お願いします。
>>513
それともこういう意味ですか?
http://codepad.org/y1DtdvkV
0517515
2010/10/02(土) 03:31:03#define LEN 100
typedef struct { char code[LEN]; char name[LEN]; int price; }KOUZOUTAI;
int main(void)
{
KOUZOUTAI a = { "oga-45", "okasi_set", 3000 };
printf("%s,%s,%d\n", a.code, a.name, a.price);
KOUZOUTAI b = { "oga-45", "okasi_set", 3000 };
printf("%s,%s,%d\n", a.code, a.name, a.price);
return 0;
}
↑こんな感じでKOUZOUTAI aのaを変えていけばいいのでしょうか?
0518デフォルトの名無しさん
2010/10/02(土) 03:32:51#define NUM 2
#define LEN 100
typedef struct { char code[LEN]; char name[LEN]; int price; }KOUZOUTAI;
int main(void)
{
KOUZOUTAI a[NUM] = {
{"oga-45", "okasi_set", 3000},
{"aaaaaa", "bbbbbbbbb", 4000},
};
int i=0; for(i=0; i<NUM; i++){ printf("%s,%s,%d\n", a[i].code, a[i].name, a[i].price); }
return 0;
}
0519デフォルトの名無しさん
2010/10/02(土) 03:37:48おお!これです
ありがとうございます!
0520デフォルトの名無しさん
2010/10/02(土) 03:50:07ありがとうございます!
0521デフォルトの名無しさん
2010/10/02(土) 04:08:53[2] 問題文(含コード&リンク):
present.datを読み込み、小文字を全て大文字に変換し、以下のような形式[1]でファイルを
出力するプログラムを作成せよ。また、present.datに自由なデータを6行追加し動作する
ことを確認せよ。またこの際にpriceが空白の行を設け、priceが空白であった場合には
price: xxxxと出力するようにせよ。
[1]
code: abc-23
name: tea_set
price: 2500
.
.
.
以下略
present.dat
↓
ABC-23 Tea_set 2500
EFG-34 Peach 2000
HIJ-21 Greep 1500
[3] 環境
[3.1] OS:Ubunts
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: なるべく早めを希望
[5] その他の制限: ヒント
空白に対応するためにはfscanfの戻り値の利用、fgetsの利用と等が考えられる。
またファイル終端の判定にはfeof関数を用いても良い。小文字、大文字の変換には
アスキーコードで加算減算する方法の他にtupper関数やtolower関数の利用が
考えられる。
0522521
2010/10/02(土) 11:26:03code: ABC-23
name: TEA-SET
price: 2500
code: EFG-34
name: PEACH
price: 2000
code: HIJ-21
name: GREEP
price: 1500
↑この様にpresent.datから読み込みさらに大文字に変換する
というのが基本です。
お願いします!
0523デフォルトの名無しさん
2010/10/02(土) 12:45:42[2] 問題文(含コード&リンク):
入力された2つの行列の積算を行い、結果を示せ。
1.行列の行、列数の入力を求める
2.2つの行列の積算
3.行列として結果を表示
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限:特になし
よろしくお願いします。
0524デフォルトの名無しさん
2010/10/02(土) 16:32:55文字数オーバーのチェックとかしてないよ
#include <stdio.h>
#include <ctype.h>
int main(void){
FILE *in_fp, *out_fp ;
char buff[1024] ;
char code[256] ;
char name[256] ;
char price[256] ;
int count ;
char* p ;
in_fp = fopen ( "present.dat", "r" ) ;
out_fp = fopen ( "output.dat", "w" ) ;
while ( fgets ( buff, 1024, in_fp ) ){
for ( p = buff ; *p ; p++ ){
*p = toupper(*p);
}
count = sscanf ( buff, "%s %s %s", code, name, price ) ;
fprintf ( out_fp, "code: %s\n", code ) ;
fprintf ( out_fp, "name: %s\n", name ) ;
fprintf ( out_fp, "price: %s\n\n", (count>2)?price:"xxxx" ) ;
}
fclose(in_fp) ;
fclose(out_fp) ;
return 0 ;
}
0525デフォルトの名無しさん
2010/10/02(土) 18:42:26>>6
0526デフォルトの名無しさん
2010/10/02(土) 19:00:09int main(void)
{
system("cat present.dat | tr a-z A-Z > tmp.txt");
system("sed -e \"s/^/code:/\" tmp.txt > tmp2.txt");
system("sed -e \"s/ /\\nname:/\" tmp2.txt > tmp3.txt");
system("sed -e \"s/ /\\nprice:/\" tmp3.txt > tmp4.txt");
system("sed -e \"/price/a\n\" tmp4.txt > tmp5.txt");
system("perl -pe 's/price:\n/price:xxxx\n/' tmp5.txt > output.txt");
system("rm tmp.txt tmp2.txt tmp3.txt tmp4.txt tmp5.txt");
return 0;
}
0527デフォルトの名無しさん
2010/10/03(日) 00:00:59[2] 問題文(含コード&リンク):ルートについて、ニュートンラプソン方で解き、
何回演算を繰り返せば値が収束するか確認する。複数の値を入れて、組み込み関数である
sqrt関数との比較をする。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: [2010年10月4日まで]
[5] その他の制限:特になし
よろしくお願いします。
0528デフォルトの名無しさん
2010/10/03(日) 01:34:25#include <stdio.h>
#include <math.h>
int main(void){
int count ;
double n, root, buff ;
/* nの平方根を求める */
n = 2.0 ;
for ( root = 1.0 ; (root*root)<n ; root+=1.0 ){
}
for ( count = 1 ; ; count++ ){
buff = root ;
root = (root+n/root)/2 ;
if ( buff==root){
break ;
}
}
printf ( "%.16lf (%d回) \n", root, count ) ;
printf ( "%.16lf (sqrt)\n", sqrt(n) ) ;
return 0 ;
}
0529デフォルトの名無しさん
2010/10/03(日) 13:04:32これはC言語なのでしょうか?
自分には理解できません><
0530デフォルトの名無しさん
2010/10/03(日) 13:35:48C で記述されたプログラムから、system() 関数を使って、外部コマンド sed, perl を呼び出しています。
実際の作業は sed, perl が行っています。実行時には sed や perl がインストールしてあり、それらにパスが通っている必要があります。
また、内容を把握するためには sed や perl でのスクリプトの記述方法を知っていなければなりません。
異論はあるでしょうけれども、sed, perl はプログラム言語界隈では広く知られているとしていいと思います。
まあ、このスレならではの、ネタ的解法でしょう。まじめに受け取っては、あー、いけません。
0531デフォルトの名無しさん
2010/10/03(日) 13:38:24願望を教えるなよ・・・
0532デフォルトの名無しさん
2010/10/03(日) 13:40:420533デフォルトの名無しさん
2010/10/03(日) 16:38:32http://codepad.org/1k8Gum3z
0534デフォルトの名無しさん
2010/10/03(日) 20:45:57[2] 問題文(含コード&リンク): 1×8の配列のうち、3番目だけに1を入れて、その他を0にするプログラムを作る。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C/C++
[4] 期限: [2010年10月5日まで]
[5] その他の制限:特になし
こんなのじゃだめでしょうか?
#include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
double *in[8] = {0,0,0,0,0,0,0,0};
*in[2] = 1;
int i;
for (i=0; i<8; i++)
{
printf("in[%d] = %d\n",i,*in[i]);
}
return 0;
}
0535デフォルトの名無しさん
2010/10/03(日) 20:54:43double *in[8] = {0,0,0,0,0,0,0,0};
↑わざわざポインタの配列にする意味がわからない
*in[2] = 1;
↑アドレスの0番地に1を書き込む超危険な処理
0536デフォルトの名無しさん
2010/10/03(日) 20:57:02int _tmain(int argc, _TCHAR* argv[])
{
double in[1][8] = {
{0, 0, 0, 0, 0, 0, 0, 0}
};
in[0][2] = 1.0;
int i;
for (i=0; i<8; i++)
{
printf("in[0][%d] = %f\n",i,in[0][i]);
}
return 0;
}
0537デフォルトの名無しさん
2010/10/03(日) 21:37:520538デフォルトの名無しさん
2010/10/03(日) 21:57:160539デフォルトの名無しさん
2010/10/03(日) 22:00:000541デフォルトの名無しさん
2010/10/03(日) 22:05:12while((x=rand())>=30000);
return x%10000;
0542デフォルトの名無しさん
2010/10/03(日) 22:05:34rand() % 10000
ではないか?
あと、rand() の剰余をとるのはお勧めでないうんぬんかんぬん。
http://www.kouno.jp/home/c_faq/c13.html#16
0543デフォルトの名無しさん
2010/10/03(日) 22:06:320544デフォルトの名無しさん
2010/10/03(日) 22:07:27ありがとうございます
0545デフォルトの名無しさん
2010/10/04(月) 06:53:20[2] 問題文(含コード&リンク)
コンソール画面の中央付近に一個の星印を表示するプログラムを作れ。
ただし、背景には何も表示させないこと
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:4日の15時まで
[5] その他の制限: 配列のみで作成しろのことです。
急なものですがよろしくおねがいします。
0546デフォルトの名無しさん
2010/10/04(月) 10:43:450547デフォルトの名無しさん
2010/10/04(月) 15:00:260548デフォルトの名無しさん
2010/10/04(月) 15:04:480549デフォルトの名無しさん
2010/10/04(月) 15:16:09☆
でいいのか?それとも↓みたいなのか?
*
* *
* *
* *
* *
* * * * * * * * * * * * * * * * *
* * * *
* * * *
* *
* * * *
* * * *
* ** *
* * * *
* * * *
* * * *
* * * *
* *
0550デフォルトの名無しさん
2010/10/04(月) 15:20:360551デフォルトの名無しさん
2010/10/04(月) 15:32:06*
0552デフォルトの名無しさん
2010/10/04(月) 15:34:11***
*********
*****
*** ***
** **
* *
0553デフォルトの名無しさん
2010/10/04(月) 15:35:23#include <stdio.h>
int main(void)
{
int padding_top = 10;
int padding_bottlom = 10;
int padding_left = 20;
int i;
for (i = 0; i < padding_top; i++)
printf("\n");
for (i = 0; i < padding_left; i++)
printf(" ");
printf("星印\n");
for (i = 0; i < padding_bottlom; i++)
printf("\n");
return 0;
}
0554デフォルトの名無しさん
2010/10/04(月) 15:39:250555デフォルトの名無しさん
2010/10/04(月) 16:02:420556デフォルトの名無しさん
2010/10/04(月) 16:12:10端末エミュレータに依存
0557デフォルトの名無しさん
2010/10/04(月) 16:20:5015時までとなっていますが時間は無しでお願いします。
0558デフォルトの名無しさん
2010/10/04(月) 16:56:49[2] TAR(x,y,z)
={y (x<=y) }
{TAR(TAR(x-1,y,z),TAR(y-1,z,x),TAR(z-1,x,y) (other)}
上記の計算をするプログラムを組んで、
xyzに指定された数値を代入したときの答えを表示する。
[3] 環境
[3.1] OS: MAC
[3.2] Xcodeのcomandtool
[3.3] 言語: Cのみ
[4] 期限: 2010年の1月24日
[5] その他の制限: prontfで文字表示と計算までは習っていて、if関数は勉強中
任意の数を入力して答えがわからないといけません。
テストに出るらしいのでお願いします。
0559デフォルトの名無しさん
2010/10/04(月) 17:02:46これたらい回し関数じゃん
答えが出ないほどスタックを深く使っちゃった場合どうするの?
0560デフォルトの名無しさん
2010/10/04(月) 17:04:38詳しくはここを
0561デフォルトの名無しさん
2010/10/04(月) 17:18:15スタックがオーバーフローした時は知らんよ
#include <stdio.h>
int tar(int x, int y, int z);
int main(void)
{
int x, y, z;
printf("x = ");
scanf("%d", &x);
printf("y = ");
scanf("%d", &y);
printf("z = ");
scanf("%d", &z);
printf("TAR(%d,%d,%d) = %d\n", x, y, z, tar(x, y, z));
return 0;
}
int tar(int x, int y, int z)
{
if (x <= y)
return y;
else
return tar(tar(x - 1, y, z), tar(y - 1, z, x), tar(z - 1, x, y));
}
0562デフォルトの名無しさん
2010/10/04(月) 17:22:04そこまで複雑な数字を代入しないのではないのかと思われます。
>>560
ありがとうございます。
0563デフォルトの名無しさん
2010/10/04(月) 17:31:44無事実行出来ました。 ありがとうございます。
0564デフォルトの名無しさん
2010/10/04(月) 17:37:32例えばx=120,y=100,z=140を入れてご覧
なかなか答えが出てこないっしょ
0565デフォルトの名無しさん
2010/10/04(月) 18:33:39VS2010な
#include <stdio.h>
#include <map>
#include <tuple>
int tar(int x, int y, int z);
std::map<std::tr1::tuple<int, int, int>, int> mtiii;
int main(void)
{
int x, y, z;
printf("x = ");
scanf("%d", &x);
printf("y = ");
scanf("%d", &y);
printf("z = ");
scanf("%d", &z);
printf("TAR(%d,%d,%d) = %d\n", x, y, z, tar(x, y, z));
std::getchar();
}
int tar(int x, int y, int z)
{
if (x <= y)
return y;
else
if (mtiii[std::tr1::tuple<int, int, int>(x, y, z)])
return mtiii[std::tr1::tuple<int, int, int>(x, y, z)];
else {
mtiii[std::tr1::tuple<int, int, int>(x, y, z)] = tar(tar(x - 1, y, z), tar(y - 1, z, x), tar(z - 1, x, y));
return mtiii[std::tr1::tuple<int, int, int>(x, y, z)];
}
}
0566デフォルトの名無しさん
2010/10/04(月) 18:43:50でも、それじゃ宿題としては零点・失格だろ。
それをCで実現しなければな
0567デフォルトの名無しさん
2010/10/04(月) 19:01:18うん
単に結果を確かめたかっただけ
C++だし0点だね
宿題は>>561で出せばいいと思う
0568デフォルトの名無しさん
2010/10/04(月) 19:26:55実行に手間取りましたが、動きました。
ありがとうございました。
>>564
パソコンが止まりました。
>>555
>>567
C言語ではなかったのですか。ありがとうございました。
>>556
そうなると思われます。C言語でという授業なので。
0569デフォルトの名無しさん
2010/10/04(月) 19:45:09#include <ncurses.h>
int main(void)
{
int w, h;
initscr();
getmaxyx(stdscr, h, w);
mvprintw((h-1)/2, (w-1)/2, "☆");
refresh();
getch();
endwin();
return 0;
}
0570デフォルトの名無しさん
2010/10/04(月) 19:55:13x=120,y=100,z=140の時はスタックオーバーフローしてるか計算に時間が掛かりすぎて
いるかのどちらかだな
どちらか見極めるにはスタックが無くなりそうになったら警告を出すようにしておけばわかる
それとstd::mapはC++だしstd::tupleに至ってはC++0xの範疇でしかもまだ標準化されて
いない
ただこういうテクを使えば時間がかかる計算も結果を見る事が出来る事がある
Haskellのような遅延評価機能を備えた言語なら何もしなくても結果がすぐ出てくる
かもしれない
0571デフォルトの名無しさん
2010/10/04(月) 23:49:26[2] 問題文(含コード&リンク):
以下の指示に順に従ったプログラムを作成せよ。
1.double型の変数dを宣言する。
2.doubleへのポインタ型の変数ptrを宣言する。
3.dに2010.1001を代入する。
4.ptrがdを指すようにする。
5.dのアドレス、dの値、ptrの値、ptrが指す変数の値をprintfで表示する。
6.ptrが差す変数の値を(間接参照を使って)変更する。
7.dのアドレス、dの値、ptrの値、ptrが指す変数の値をprintfで表示する。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年10月6日まで
よろしくお願いします。
0572デフォルトの名無しさん
2010/10/04(月) 23:54:58int main(void)
{
double d;
double *ptr;
d = 2010.1001;
ptr = &d;
printf("%p %f %p %f\n", &d, d, ptr, *ptr);
*ptr = 2010.1006;
printf("%p %f %p %f\n", &d, d, ptr, *ptr);
return 0;
}
0573デフォルトの名無しさん
2010/10/04(月) 23:59:480574デフォルトの名無しさん
2010/10/05(火) 15:10:520575デフォルトの名無しさん
2010/10/05(火) 15:14:28under(large_fire):
0576デフォルトの名無しさん
2010/10/05(火) 15:42:420577デフォルトの名無しさん
2010/10/05(火) 15:57:030578デフォルトの名無しさん
2010/10/05(火) 16:33:410579デフォルトの名無しさん
2010/10/05(火) 17:29:56言い出す時代が来るのか・・・
0580デフォルトの名無しさん
2010/10/05(火) 18:35:530581デフォルトの名無しさん
2010/10/05(火) 18:50:020582デフォルトの名無しさん
2010/10/05(火) 19:06:07[2] 問題文(含コード&リンク):
以下の3箇所のコメントの指示に従って、
実行結果として1.234が2行表示されるようなプログラムを完成させよ。
#include<stdio.h>
void test(double *ptr)
{
printf("%f\n", /* ptrを使った表現 */);
}
int main(void)
{
double d = 1.234;
double *P = &d;
test( /* pを使った表現 */ );
test( /* dを使った表現 */ );
}
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年10月6日まで
よろしくお願いします。
0583デフォルトの名無しさん
2010/10/05(火) 19:24:04#include<stdio.h>
void test(double *ptr)
{
printf("%f\n", *ptr);
}
int main(void)
{
double d = 1.234;
double *p = &d;
test( p );
test( &d );
0584デフォルトの名無しさん
2010/10/05(火) 19:36:39ありがとうございます。
0585デフォルトの名無しさん
2010/10/05(火) 19:53:12ありがとうございます。
0586デフォルトの名無しさん
2010/10/06(水) 06:35:33[2] 問題文(含コード&リンク):
N×Nのbitmap画像を
AB
CD
のように4等分し、
DC
BA
と並び替えるプログラム
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C/(C++)
[4] 期限: 2010年10月8日まで
[5] その他の制限: 並び替え前後どちらも1次元配列、左下原点(in[0])でお願いします。
0587デフォルトの名無しさん
2010/10/06(水) 06:41:110588デフォルトの名無しさん
2010/10/06(水) 09:45:12ビットマップの読み込みは自前でやるの?
Win32API使っていいの?
0589デフォルトの名無しさん
2010/10/06(水) 10:36:21自前でお願いできませんか?
0590デフォルトの名無しさん
2010/10/06(水) 12:47:510591デフォルトの名無しさん
2010/10/06(水) 12:53:210592デフォルトの名無しさん
2010/10/06(水) 14:11:29[2] 問題文(含コード&リンク):8000桁以内の8進数を10進数に
8000桁以内の10進数を16進数に
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限: ([2010年10月08日12:00まで
[5] その他の制限:特になし
よろしくお願いします
0593デフォルトの名無しさん
2010/10/06(水) 17:15:04[2] 問題文(含コード&リンク):http://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0109&lang=jp
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC8.0
[3.3] 言語: C言語
[4] 期限: 無期限
[5] その他の制限: なし
おねがいします
0594デフォルトの名無しさん
2010/10/06(水) 17:20:43やや手抜き
180度回転じゃなくてあくまでぶった切って並び替えでいいんだよね?
○未圧縮Windowsビットマップ(16bit,24bit,32bit)のみ対応
×256色以下パレットビットマップ未対応
×OS/2ビットマップ未対応
http://codepad.org/CBkBGpSx
0595デフォルトの名無しさん
2010/10/06(水) 22:18:59...って何ビットなんだろ.....
0596デフォルトの名無しさん
2010/10/06(水) 22:23:390597デフォルトの名無しさん
2010/10/06(水) 22:28:57会津かい?
シリコンバレー構想とかは上手く進んでいるかい?
レスしてくれたら回答したげる。
0598デフォルトの名無しさん
2010/10/06(水) 22:52:108->10: http://codepad.org/JJ6lUm1b
10->16: http://codepad.org/jpNvFMtH
申し訳ありませんが、8000 桁の数では試していません。20 桁くらいまでならうまくいっているようですが。
0600デフォルトの名無しさん
2010/10/06(水) 23:58:51先を越されたがせっかく作ったのでうp
http://codepad.org/Y34MfqZn
入力処理は自分でやってね
0602デフォルトの名無しさん
2010/10/07(木) 01:19:10http://codepad.org/UlD7yvgh
先越された。
0603デフォルトの名無しさん
2010/10/07(木) 01:45:54ありがとうございます
0604デフォルトの名無しさん
2010/10/07(木) 03:29:520605デフォルトの名無しさん
2010/10/07(木) 15:57:20[2] 問題
満足な精度が出るように「k 100」の値を他に変え実験し、測定した計算時間のみ報告する。
プログラム例
#include stdio.h
#include windows.h
#define k 100
void GetData(int A[])
...
void ArraySort(int A[])
・・・
int main()
{
int i, A[10000];
long int ts,te;
・・・
ts = GetTickCount();
for (i=0; i<k; i++)
{
GetData(A[]);
ArraySort(A[]);
};
te = GetTickCount();
・・・
}
[3] 環境
[3.1] Windows
[3.2] VS2010
[3.3] C言語
[4] 期限:本日深夜まで
どんな風にやればいいのかよくわかりません。
よろしくお願いします。
0606デフォルトの名無しさん
2010/10/07(木) 16:12:29printf("%ld\n", te - ts);
満足な精度〜というのはその例からは読み取れない
多分ArraySortのソート法とデータ数からソートが完了する
最悪処理回数を求めるものだとエスパー
0607デフォルトの名無しさん
2010/10/07(木) 16:28:4032行に収めるために本当は切っちゃ行けない部分を自分で勝手に省略してないか?
0608デフォルトの名無しさん
2010/10/07(木) 16:39:300609デフォルトの名無しさん
2010/10/07(木) 22:31:07レス遅れました。
ありがとうございます。
本当に困ってたので助かりました。
0611ken
2010/10/08(金) 17:33:34イに出力する。
[条件1] 整数(行数)入力にはscanf 関数を使用する。
(注意!) scanf 関数での入力直後、キーボードバッファに不要な改行コードが1 つ残る。
これをgetchar を1 回実行することによりクリアしなければならない。
[条件2] 行数入力後の文字入出力にはgetchar 関数とputchar 関数を使用する。
<実行例> 注)↲ は、入力時のEnter キーを表す
Input No. of line: 3
abc↲
abc
1234↲
1234
xyz#!"↲
xyz#!"
<入出力情報>
入力出力
キーボードディスプレイ
<エラー仕様>
・入力された整数(行数)が0 以下だった場合は、その後のキーボード入力は行なわれず終了する
(0 行を指定したと扱う)。
・入力された整数(行数)が、不正の(整数でない)場合の動作は、保証されなくてよい。
0612ken
2010/10/08(金) 18:46:430613デフォルトの名無しさん
2010/10/08(金) 18:55:350614デフォルトの名無しさん
2010/10/08(金) 19:03:390616デフォルトの名無しさん
2010/10/08(金) 20:09:27http://www.unkar.org/read/pc11.2ch.net/tech/1208268461
C/C++の宿題を片付けます 105代目
197 :デフォルトの名無しさん[sage]:2008/04/21(月) 08:44:35
EOFがキーボードから入力できないとしても、どのファイルには
ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。
0617デフォルトの名無しさん
2010/10/08(金) 20:19:22>>382 解いてよ
ついでに
11 1 1 5
の答えも求めてみてね
0618デフォルトの名無しさん
2010/10/09(土) 01:10:25[2] 問題文(含コード&リンク): 三辺の長さがそれぞれx,y,zの三角形がある。x,y,zが整数値で1~100までの値をとるときに、
この三角形が直角三角形になるときのx,y,zの組をすべて調べて、その組の数を求めるプログラムを作りなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限: 2010年10月15日まで
[5] その他の制限:[2,3,4]と[4,3,2]のように同じ長さをもつ組で構成された組み合わせは1つと考える。
0619デフォルトの名無しさん
2010/10/09(土) 01:11:57[2] 問題文(含コード&リンク): 1~1000の間のすべてのぞろ目を調べて、その数を表示するプログラムを作りなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限: 2010年10月15日まで
[5] その他の制限:なし
0620デフォルトの名無しさん
2010/10/09(土) 01:13:20訂正
「1~1000」までのぞろ目 ⇒ 「10~1000までのぞろ目」
0621デフォルトの名無しさん
2010/10/09(土) 01:45:19#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int count = 0;
for(int i = 10; i <= 1000; ++i)
{
int base = i % 10;
bool printsw = true;
for(int j = i / 10; j; j /= 10)
{
if(j % 10 != base)
{
printsw = false;
break;
}
}
if(printsw)
{
cout << i << " ";
++count;
}
}
cout << endl << "Total: " << count << endl;
cin.get();
return 0;
}
0622デフォルトの名無しさん
2010/10/09(土) 01:51:39#include <stdio.h>
int main ( void )
{
int x, y, z ;
int count = 0 ;
for( z=2 ; z<= 100 ; z++ ){//zを斜辺と仮定
for ( x=1 ; x<z ; x++ ){//xは必ずz未満
for ( y=x; y<z; y++ ){//重複を避けるためyはx以上z未満
if ( (x*x+y*y)==(z*z) ){
printf ( "x=%d, y=%d, z=%d\n", x, y, z ) ;
count++ ;
}
}
}
}
printf ( "\n合計%d個\n", count ) ;
return 0 ;
}
0623デフォルトの名無しさん
2010/10/09(土) 01:59:49#include <iostream>
int main()
{
int x, y, z, cnt = 0;
for(x = 1; x <= 100; x++) {
for(y = x - 1; y >= 1; y--) {
for(z = y; y + z > x; z--) {
int a = x * x, b = y * y + z * z;
if(a < b) continue;
if(a == b) {
std::cout << "x = " << x << " y = " << y << " z = " << z << std::endl;
cnt++;
}
break;
}}}
std::cout << cnt << std::endl;
}
0624デフォルトの名無しさん
2010/10/09(土) 02:32:290625デフォルトの名無しさん
2010/10/09(土) 02:53:06[2] 問題文(含コード&リンク): 1~100までの素数を探し、そのすべての素数とその値を合計を表示するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C++
[4] 期限: 2010年10月15日まで
[5] その他の制限:#include <stdio.h> とする
0626デフォルトの名無しさん
2010/10/09(土) 02:57:260627デフォルトの名無しさん
2010/10/09(土) 02:59:10「エラトステネスのふるい」で検索するか、
アルゴリズム辞典を引け。
すぐ出てくる
0628デフォルトの名無しさん
2010/10/09(土) 03:00:41コンパイラ名がVC++になってて言語がC++って書いてあったらCで書くのが訓練された回答者
0629デフォルトの名無しさん
2010/10/09(土) 03:00:47#include <stdio.h>
int main(void)
{
int i, j, sum = 0;
for(i = 2; i <= 100; i++) {
for(j=2; j * j <= i; j++) if(i % j == 0) goto L;
printf("%d\n", i);
sum += i;
L:;
}
printf("%d\n", sum);
return 0;
}
0630デフォルトの名無しさん
2010/10/09(土) 03:08:31[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10935.c
[3] 環境
[3.1] OS: Win
[3.2] コンパイラ名とバージョン: bcc5.5
[3.3] 言語: C
[4] 期限: 2010年10月8日(過ぎたけど)
97行目辺りが違うんだろうけどよく分からん
読むの面倒なら新規で作ってくれても良いけど
4重ループになんかするな? 良いんだよ後で直すから…
0631デフォルトの名無しさん
2010/10/09(土) 04:02:300632デフォルトの名無しさん
2010/10/09(土) 04:14:55できれば、配列とflagを用いたタイプもお願いします。
それから>>619の<stdio.h>をお願いしますm(--)m
0633デフォルトの名無しさん
2010/10/09(土) 04:27:22[2]指定されたフロー構造に基づき次の仕様のプログラムを作成せよ
仕様:
★行とは、先頭か最後の区切り子からその次の区切り子までの区切り子を含まない文字列のこと
ただしその次の区切り子が出現しないまま終端した場合は最後の文字列まで
★区切り子とは、改行文字(0x0A) 復改文字(0x0D),その組み合わせ(0x0D0x0A,0x0A0x0D)のいずれかと
する(混在することを前提)
★標準入力から任意の長さの文字列を読み取り各行の空白スペースを除く先頭が0〜9からなる
文字列(これをキー数列と呼ぶ)でその直後が空白、タブで区切られている場合に限りその行を認識する。
それ以外の形式の場合は認識せず無視する。キー数列の長さが1024を超える場合も無視対象とする。
★認識した行はキー数列を10進数の正整数を表すものとして、その順序(小さい順)に
整列して出力する
フロー構造
main関数のみで構成。ライブラリ関数はstdio.hで定義されている関数のみを利用可能とする。
当然だが記憶領域はキー数列を記憶する領域の3倍程度しか確保できないことを前提
[3] FreeBSD上でC言語で記述しgccコンパイラで処理する。
[4] 10/10迄
0634デフォルトの名無しさん
2010/10/09(土) 05:11:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10936.c
0635デフォルトの名無しさん
2010/10/09(土) 05:29:53ありがとうございます!
何度もすいませんが>>619の<stdio.h>を
使用したverをどなたかお願いします。
0636デフォルトの名無しさん
2010/10/09(土) 05:47:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10937.c
0637デフォルトの名無しさん
2010/10/09(土) 05:50:03ありがとうございます!
0638デフォルトの名無しさん
2010/10/09(土) 06:54:57#include <stdio.h>
#define MAX 1000
int main(void) {
int i,j;
for(i=11; i<=MAX; i=i*10+1) {
for(j=1; j<10; j++) printf("%d ",i*j);
}
return 0;
}
0639デフォルトの名無しさん
2010/10/09(土) 08:37:26先頭が数字でそのあとは文字でもよいのかなと思ってよむと、そうではなくて、全部数字でないと
いけないらしい。ここの部分は出題の文として適切でないから書き直した方がいい。
0640デフォルトの名無しさん
2010/10/09(土) 09:05:20>文字列(これをキー数列と呼ぶ)でその直後が空白、タブで区切られている場合に限りその行を認識する
12345
;おk↑
ABCDE 12345 ABCDE
;NG↑ 当然
12345 ABCDE 12345
;おk↑
12345
;NG ↑末尾に直に改行がある 但しOKとすると仕様違反ではあるがPGの本質には影響しないと思われ
0641デフォルトの名無しさん
2010/10/09(土) 13:49:39[2] 問題文(含コード&リンク):以下の入力の1行目から5行目まで最小で移動する作業表と経路を求めなさい
第n列目の各升の情報を保持しておくことで、第n+1列目の費用は第n列目の情報から漸化式で求めることが可能となる
複数ある場合は上側を通る物を優先する
入力
0 3 4 2 3
1 0 2 5 8
7 5 0 6 1
3 5 8 0 4
6 4 3 2 0
出力
0 3 4 4 7
1 0 2 6 12
7 6 1 7 7
3 8 14 6 10
6 7 10 12 9
経路:0 0 2 2 3
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2010年10月9日17:00
0642デフォルトの名無しさん
2010/10/09(土) 16:19:56[2] 問題文(含コード&リンク):以下の式が成り立つように英字に数字をあてはめよ。
ただし同じ英字には同じ数字が当てはまる。
send
+)more
------
money
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:上記の条件のみです。
0643デフォルトの名無しさん
2010/10/09(土) 16:45:010644デフォルトの名無しさん
2010/10/09(土) 17:00:47っ twelve+twenty=answer
0645デフォルトの名無しさん
2010/10/09(土) 17:06:39http://f4.aaa.livedoor.jp/~pointc/log1325.html
0646デフォルトの名無しさん
2010/10/09(土) 17:09:39407927 + 407146 = 815073
0647642
2010/10/09(土) 17:14:52お願いします。
0648デフォルトの名無しさん
2010/10/09(土) 17:38:040649デフォルトの名無しさん
2010/10/09(土) 17:42:06[2] 問題文(含コード&リンク):
ダイエットファイルに
20100930,curry and rice
20101003,kitsune soba
20101003,rice ball
のような形で日付とその日食べた昼食が保存されているとする.
コマンド行引数にダイエットファイル名と日付(yyyymmdd 形式) を指定して実行すると,
ファイルの中から指定した日付を含む行を検索し,その日の昼食を出力するプログラムを作成せよ.
また,引数としてファイルと文字列を指定しなかった場合に,使い方を出力して終了するようにせよ.
日付の検索には,標準関数char *strstr(const char *str1, const char *str2); を使用するのが簡単である.
【実行例】
% ./q3-3 diet.txt 20100929
date 20100929 was not found in file diet.txt
% ./q3-3 diet.txt 20101003
20101003,kitsune soba
20101003,rice ball
% ./q3-3
Usage: ./q3-3 filename date(yyyymmdd)
%
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年10月14日まで
[5] その他の制限:なし
少し長くなってしまいましたが、よろしくお願いします
0650デフォルトの名無しさん
2010/10/09(土) 18:00:522 {
3 char cmd[1000];
4 if(argc != 3){ printf("Usage: filename data(yyyymmdd)\n", argv[0]); exit(1); }
5 sprintf(cmd, "grep %s %s", argv[2], argv[1]);
6 system(cmd);
7 return 0;
8 }
0651デフォルトの名無しさん
2010/10/09(土) 18:12:340652デフォルトの名無しさん
2010/10/09(土) 18:33:50みんなが思ってることを書いても意味ないよ。
0653デフォルトの名無しさん
2010/10/09(土) 18:58:27こいつリアルでKYだなと思うよな
0654デフォルトの名無しさん
2010/10/09(土) 19:21:160657デフォルトの名無しさん
2010/10/09(土) 20:32:41>if(argc != 3){ printf("Usage: filename data(yyyymmdd)\n", argv[0]); exit(1); }
?argv[0] ってなんだ?
0658デフォルトの名無しさん
2010/10/09(土) 20:34:270659デフォルトの名無しさん
2010/10/09(土) 20:37:25申し訳ないのですが、行列の意味などをもう少し詳しく教えてください。
作業表、というのもなにか、授業で配布された資料などを張ってください。あるいは参考になる URL を教えてください。
0660642
2010/10/09(土) 20:40:550661デフォルトの名無しさん
2010/10/09(土) 20:42:59KY って何ですか?定義を教えてください。
0662デフォルトの名無しさん
2010/10/09(土) 20:45:59問題の意味がややこしいわりに、解けてもおもしろくなさそう、というか。
出力形式を無意味に複雑化して指定しているというか。
解かされるほうはお気の毒、というか。
0663デフォルトの名無しさん
2010/10/09(土) 20:51:21[2] 問題文(含コード&リンク):1から10の整数の平方根の値を表形式で
表示するプログラムを作成せよ。
表はこんな感じです。
N 平方根
---------
1 1.000
2 1.414
略
9 3.000
10 3.162
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:math.hをインクルードすること。
0664デフォルトの名無しさん
2010/10/09(土) 20:56:24解いてみるといいよ
ちょっと不思議なことになってるから
0666デフォルトの名無しさん
2010/10/09(土) 21:07:10似たような問題の資料があったので貼っときます
一応直リンはまずいような気がしたのでDLして一部編集後上げ直しました
ttp://www.dotup.org/uploda/www.dotup.org1190352.zip.html
DL Pass:prog3bcc
日付が変わる頃には消します
0667デフォルトの名無しさん
2010/10/09(土) 21:07:48int main(void)
{
puts("N heihoukon");
puts("-----------");
puts("1 1.000");
puts("2 1.414");
puts("3 2.000");
puts("4 2.236");
puts("5 2.449");
puts("6 2.646");
puts("7 2.828");
puts("8 3.000");
puts("9 3.162");
return 0;
}
0668デフォルトの名無しさん
2010/10/09(土) 21:20:08ずれてる。
0669663
2010/10/09(土) 21:21:570670デフォルトの名無しさん
2010/10/09(土) 21:28:28#include <stdio.h>
#include <math.h>
int main(void)
{
int x;
for(x=1; x<=10; x++)
printf("%d %.3lf\n",x,sqrt((double)x));
return 0;
}
0671デフォルトの名無しさん
2010/10/09(土) 21:34:11ちょwww
ま、それでもいいんだけどw
0672デフォルトの名無しさん
2010/10/09(土) 21:35:16>>641 に書いてある入力・出力・作業表は、正しいものですか、それとも適当に書いたものですか。
>>641 の入力からすると、最短パスは 0 1 2 3 4 になると思われるのですが。
あと >>666 のどこを読めばいいか教えてください。
0673デフォルトの名無しさん
2010/10/09(土) 21:36:41いや、ぜんぜんよくない。sqrt(3) は 2.000 じゃない。
ネタを書くなら正確に。ハズしてしまっては笑えない。
0674663
2010/10/09(土) 21:40:190675デフォルトの名無しさん
2010/10/09(土) 21:41:12入力が間違ってます…
>>666の問題5-1を教えて頂ければ後は自分でやってみようと思うのでそちらでお願いします
問題の説明としては第7-2節が該当するはずです
何度もお手間をおかけしてすみません
0676デフォルトの名無しさん
2010/10/09(土) 21:42:580677デフォルトの名無しさん
2010/10/09(土) 21:55:57[2] 問題文(含コード&リンク):角度と正弦と余弦の対応表を出力するプログラムを作成せよ。
角度は度数法と弧度法の両方を表示し、角度は0〜360度の範囲で15度刻みとする。
表はこんな感じです。
+-----+-----+-----+-----+
| deg | rad | sin | cos |
+-----+-----+-----+-----+
| 0 | 0.00| 0.00| 0.00|
| 15 | 0.26| 0.26| 0.97|
略
| 345 | 6.02|-0.62| 0.97|
| 360 | 6.28| 0.00| 1.00|
+-----+-----+-----+-----+
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:正弦と余弦はCの標準ライブラリ関数sinとcosを用いて計算する。
角度は弧度法(ラジアン)で指定する。
πは3.14159265として計算する。
math.hをインクルードすること。
たくさん質問してすみません。
よろしくお願いします。
0678677
2010/10/09(土) 21:59:07+-----+-----+-----+-----+
の+に縦棒の位置が来るよう調整をお願いします
0679デフォルトの名無しさん
2010/10/09(土) 22:19:12右端の縦線はいらないのか?
0680デフォルトの名無しさん
2010/10/09(土) 22:58:36#include <stdio.h>
#include <math.h>
#define PAI (3.14159265f)
int main ( void )
{
int deg = 0 ;
float rad = 0 ;
printf ( "+-----+-----+-----+-----+\n" ) ;
printf ( "| deg | rad | sin | cos |\n" ) ;
printf ( "+-----+-----+-----+-----+\n" ) ;
for ( deg = 0 ; deg <= 360 ; deg+=15 ){
rad = 2.0f*PAI*(float)deg/360.0f ;
printf ( "| %3d |%5.2f|%5.2f|%5.2f|\n", deg, rad, sin(rad), cos(rad) ) ;
}
printf ( "+-----+-----+-----+-----+\n" ) ;
return 0 ;
}
0681デフォルトの名無しさん
2010/10/09(土) 22:58:58それはそれで結構なんだが、>>667 は >>663 の要求「平方根の値を表示する」を満たしていない。
>>667 では
sqrt(3) = 2.000 おかしい。ただしくは 1.732
sqrt(4) = 2.236 おかしい。ただしくは 2.000
...
ん、もしかして >>667 は平方根をしらない小学生なのだろうか?
0682デフォルトの名無しさん
2010/10/09(土) 22:59:510683デフォルトの名無しさん
2010/10/09(土) 23:08:14あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。
0684デフォルトの名無しさん
2010/10/09(土) 23:11:42それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。
0685デフォルトの名無しさん
2010/10/09(土) 23:15:43683 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:08:14
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。
0686デフォルトの名無しさん
2010/10/09(土) 23:16:16684 名前:デフォルトの名無しさん[] 投稿日:2010/10/09(土) 23:11:42
683 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:08:14
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。
0687デフォルトの名無しさん
2010/10/09(土) 23:33:04ほんとに、まともな C コードも書けないは、ルートを知らないは、予想以上に低レベルだわ。
というか、数年間もこのレベルでとまっているのか?
0688デフォルトの名無しさん
2010/10/09(土) 23:36:11また例の長文野郎か。
ほんとに、まともな C コードも書けないは、ルートを知らないは、予想以上に低レベルだわ。
というか、数年間もこのレベルでとまっているのか?
0689デフォルトの名無しさん
2010/10/09(土) 23:37:30意味不明なことを言っております
0690デフォルトの名無しさん
2010/10/09(土) 23:40:12>>683 みたいなレスをするから基地外だと思われるんだよ。
>>683 のようなくだらない事に対して上から目線の無駄レスが荒れる原因。
このスレに長くいるなら、そんなこと気づいているだろ。学習能力のない
レベルが低くて停滞して、成長していないのは自分の方だと気づけよ。
0691デフォルトの名無しさん
2010/10/09(土) 23:41:42こんなスレでネット弁慶をやっている、日ごろは現実世界でC言語の授業などで
指導をしていない引きこもりかw お前の視野、世界は狭いのぅw
0692デフォルトの名無しさん
2010/10/09(土) 23:43:30周りが理解しているのに、いちいち下らないと口出しするような
言わないと気が済まない性分をどうにかしないと、口が災いになって
自らトラブルを招くぞ。スルーもできないようじゃ、2ちゃんにも向いてないぞ。
0693デフォルトの名無しさん
2010/10/09(土) 23:44:170694デフォルトの名無しさん
2010/10/09(土) 23:44:470695デフォルトの名無しさん
2010/10/09(土) 23:47:02>>675
提供資料の問題5-1 を解きました。
http://codepad.org/8GHlHWpa
0696デフォルトの名無しさん
2010/10/09(土) 23:48:23>>667 はジョークにもなっていない件について。
0697デフォルトの名無しさん
2010/10/09(土) 23:48:36自分の方が低レベルでこのスレの新参だともバレて必死だなw
いつまでも下らないことに苛立ってムキになってろ。
どうせこのスレで自分は他人より回答しているというエゴだろ。
それこそくだらねぇ。
0698デフォルトの名無しさん
2010/10/09(土) 23:53:430699デフォルトの名無しさん
2010/10/09(土) 23:53:54自覚がないレス乞食ってキモイな。このスレに何年いるんだ?
0700デフォルトの名無しさん
2010/10/09(土) 23:54:370701デフォルトの名無しさん
2010/10/09(土) 23:54:450702デフォルトの名無しさん
2010/10/09(土) 23:56:110703デフォルトの名無しさん
2010/10/09(土) 23:56:230704デフォルトの名無しさん
2010/10/09(土) 23:57:23ゴネた地方のド田舎者だろ。こいつじゃ2ちゃん慣れは無理。
地方の閉鎖的な習性丸出し。キモイ。
0705デフォルトの名無しさん
2010/10/09(土) 23:57:350706デフォルトの名無しさん
2010/10/09(土) 23:59:04ありがとうございます!
0707デフォルトの名無しさん
2010/10/10(日) 00:00:310708デフォルトの名無しさん
2010/10/10(日) 00:00:43いつまでも気に入らないレスを見て、前に口論となった奴と
同一人物だと勘違いしてな。お前が言った奴と俺は別人だから。
0709デフォルトの名無しさん
2010/10/10(日) 00:00:470710デフォルトの名無しさん
2010/10/10(日) 00:06:16ありがとうございました
>>666削除
0711デフォルトの名無しさん
2010/10/10(日) 00:12:24書き込まれた内容が、どうみても別人には思えない件について。
0712デフォルトの名無しさん
2010/10/10(日) 00:12:24口論になっているのに、口論になる奴はいつもあいつと
特定した気になって、見えない敵と罵倒し合う愚かさ。
だから2ちゃんには向いてないって言ってんだよ。
不特定多数の人が閲覧、書き込み可能な場所なんだが???
まさか、閉鎖的な、特定の人物しか見てないとでも?
だとしたら宿題の質問者も限定されるだろw
0713デフォルトの名無しさん
2010/10/10(日) 00:19:360714デフォルトの名無しさん
2010/10/10(日) 00:20:18宿題丸投げスレで議論したがる奴は、首釣って死ね。マジ死ね
0715デフォルトの名無しさん
2010/10/10(日) 00:22:060716デフォルトの名無しさん
2010/10/10(日) 00:27:040717デフォルトの名無しさん
2010/10/10(日) 00:28:14/::::::::::::::::::::::::::\〜プーン
/:::::::::::::::::::::::::::::::::::::::\〜プーン
|:::::::::::::;;;;;;|_|_|_|_|〜プーン
|;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜
|::( 6∪ ー─◎─◎ )〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|ノ (∵∴ ( o o)∴)〜 < 長文野郎だな!お前ムカつくんだよ!
| ∪< ∵∵ 3 ∵> ムッキー! \_____________________
\ ⌒ ノ_____
\_____/ | | ̄ ̄\ \
___/ \ | | | ̄ ̄|
|:::::::/ \___ | \| | |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
0718デフォルトの名無しさん
2010/10/10(日) 00:30:40誰それ構わず噛み付いてくるキモイ引きこもり。お前の粘着質はキモイ。陰険。
getchar()やint mainについても、誰と勘違いしたのか知らんが
公式文書、文献を用いた説明をしても信じようとしないし。ド田舎者丸出し。
恥ずかしいから失せろ。2ちゃんに向いてないよ、あんた。
0719デフォルトの名無しさん
2010/10/10(日) 00:30:470720デフォルトの名無しさん
2010/10/10(日) 00:34:13お前みたいなのは人類の中でも無名で雑魚だから、せいぜい粋がれる場所で
偉そうに生きてな。どうせ納税額もちっぽけの雑魚だろw
家は年間何百万も法人税を納めているし、年商1億以上だが
多分お前よりは上。
0721デフォルトの名無しさん
2010/10/10(日) 00:37:310722デフォルトの名無しさん
2010/10/10(日) 00:46:04生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0723デフォルトの名無しさん
2010/10/10(日) 00:49:01分かりきった答え、初歩的な問題を解いたくらいで偉そうにしているようじゃ
たかが知れている。どっちがレベルが低いか、自覚しろ、ボケ老人。
0724デフォルトの名無しさん
2010/10/10(日) 01:02:31自分が納めているわけではないのですね。
学校にいっていない?ひきこもり?大検という手もあるからがんばってね。
0725デフォルトの名無しさん
2010/10/10(日) 01:06:51>自分の方から喧嘩を売って口論になっているのに、
そのとおり。>>667 のような馬鹿をあぶりだして楽しんでいるのです。
0726デフォルトの名無しさん
2010/10/10(日) 01:12:120727695 ◆QZaw55cn4c
2010/10/10(日) 01:17:29>>710
すみません。コードがちがっておりました。
正しくはこちらです。結果もこちらの方が正しいです。
http://codepad.org/vqWvDHyl
0728デフォルトの名無しさん
2010/10/10(日) 01:22:31[2] 問題文(含コード&リンク):short型の整数a, bを2つ足すプログラムを作成し、そのときのa, b, cが納められているアドレスを調べなさい。
ここで注目して欲しいのは変数型を変えると変数が占有するメモリ領域が変わることである。(int型では4バイトだったが、short型は何バイトか?)
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン: gcc3.4
[3.3] 言語:Cです
[4] 期限:10月13日
[5] その他の制限:なし
プログラムを作れというより、ある一定の答えを出せという形の問題ですがよろしくお願いします
0730デフォルトの名無しさん
2010/10/10(日) 02:05:04ありがとうございます!
0731デフォルトの名無しさん
2010/10/10(日) 10:07:48>家は年間何百万も法人税を
自分が納めているわけではないのですね。
学校にいっていない?ひきこもり?大検という手もあるからがんばってね。
0732デフォルトの名無しさん
2010/10/10(日) 11:58:32>float rad = 0 ;
>printf ( "| %3d |%5.2f|%5.2f|%5.2f|\n", deg, rad, sin(rad), cos(rad) ) ;
float は関数の引数となる際に double に変換される。
ISO/IEC 9899:1999 6.5.2.2.6
だからこのプログラムでは float を使う意味はない。最初から double にしておけば、精度もいいし無駄も発生しない。
わざわざ float で宣言している理由がわからない。cuda でも使うのなら話は別だが。
>(float)deg
いらない。
>int deg = 0 ;
>float rad = 0 ;
なぜ0で初期化するのか?おまじない、なら、いらない。
0733デフォルトの名無しさん
2010/10/10(日) 12:01:33変数宣言で必ず初期化というコーディングルールは存在した。
0734677
2010/10/10(日) 12:09:350735デフォルトの名無しさん
2010/10/10(日) 12:11:42ちょっと歴史的感覚の上で矛盾を覚える。
auto 変数宣言で初期化も同時にできるようになったのは、K&R2 以降から。
そのころにもなって、コンパイラがお馬鹿だったとは違和感を感じる。
それは static 変数を必ず初期化する、というコーディングルールでは?
0736デフォルトの名無しさん
2010/10/10(日) 14:16:21と思ってしまう俺は超特殊環境で仕事してるんだなぁ
最近は普通に富豪プログラミングができていいやね
0737デフォルトの名無しさん
2010/10/10(日) 14:28:21どっちみち printf() にわたるときに倍精度に変換されてしまう。printf() を使うのなら最初から倍精度で書けばいいだけなのでは?
環境が単精度を要求するのなら、それはそれで別のお話。cuda 関係の方ですか?
0738デフォルトの名無しさん
2010/10/10(日) 14:58:21なんか最近知った知識をひけらかしたいだけのように見える
ちょっと前までprintfで%lfとかやっててた人ですか?
0739デフォルトの名無しさん
2010/10/10(日) 15:09:29[2] 問題文(含コード&リンク):*でy=sin(x)を描くプログラムを作成せよ。
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
↑あいまいですがこんな感じになるはずです
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:0<=x<=360とし、xの値は15度刻みとする。
下方向をx、右方向をyの正方向として解くこと
よろしくお願いします。
0740デフォルトの名無しさん
2010/10/10(日) 15:11:420741デフォルトの名無しさん
2010/10/10(日) 15:24:51#include <stdio.h>
#include <math.h>
int main ( void )
{
int i, x;
const double pai = 3.14159265;
const int width = 78/2;//横方向の文字数の半分
for ( x = 0 ; x <= 360 ; x+=15 ){
int rad = width + (int)(width*sin(pai*x/180)) ;
for ( i = 0 ; i < rad ; i++ ){
printf ( " " ) ;
}
printf ( "*\n" ) ;
}
return 0 ;
}
http://codepad.org/RoZyzN7R
>>738
いや、そういう意図はありません。
cuda とか ati stream とかはいずれやってみたいと思っているので、つい願望が文面に表れてしまいました。お気にさわれば大変失礼いたしました。
0743デフォルトの名無しさん
2010/10/10(日) 15:34:420744デフォルトの名無しさん
2010/10/10(日) 15:39:24まあそういわれればそうかも。
0745デフォルトの名無しさん
2010/10/10(日) 15:41:460746デフォルトの名無しさん
2010/10/10(日) 15:44:56kwsk
0747デフォルトの名無しさん
2010/10/10(日) 15:47:5015度刻みで点をプロットすると、25個の点になるはずなのでどなたか訂正していただけませんか
説明不足でしたね。お手数かけてしまってすみません
0748デフォルトの名無しさん
2010/10/10(日) 15:49:03そんなに自分が一番じゃないと気がすまないのか
0749デフォルトの名無しさん
2010/10/10(日) 15:49:47ご指摘感謝。
>>739
15度刻みになっていませんでした。以下に訂正いたします。
http://codepad.org/9kHPbr1S
0750デフォルトの名無しさん
2010/10/10(日) 15:50:350751デフォルトの名無しさん
2010/10/10(日) 15:51:59いや、その気持ちわからないでもないです。先に回答があるとやっぱり悔しいです。
手が速い、というのは、それはそれでひとつの才能だと思うのです。
0753747
2010/10/10(日) 15:54:38勘違いしていたようです。すみませんでした。
0754デフォルトの名無しさん
2010/10/10(日) 15:57:13訂正を >>749 に入れておきました。ごめんなさい。
0755デフォルトの名無しさん
2010/10/10(日) 15:58:33>>752でトリップはずし忘れてるのが笑える
0756デフォルトの名無しさん
2010/10/10(日) 15:59:250757デフォルトの名無しさん
2010/10/10(日) 16:04:49むしろトリップつけ忘れが多いと思います。 >>695 とか。
煽る対象は限定しているつもりです。もう徹底的にやります。自分でも狂っているとも思いますが。
>>756
すみませぬ。
0758デフォルトの名無しさん
2010/10/10(日) 16:06:430759デフォルトの名無しさん
2010/10/10(日) 16:08:12未最適化状態だと違う場合もあう
最適化かければ一緒になる
0760デフォルトの名無しさん
2010/10/10(日) 16:11:52[2] 問題文(含コード&リンク):*でy=sin(x)を描く前述の問題を元に、
両端と中心に線を引き、幅と刻みを自由に指定することができるようにするプログラムを作成せよ。
|←幅→|←幅→|
幅=n
刻み幅(1度<=m<=90度)=m
| * |
| | * |
| | * |
| | * |
途中省略
| * | |
* | |
| * | |
| * | |
| * | |
| * | |
| * | |
| * |
↑あいまいですが大体こんな感じになるはずです
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:下方向をx、右方向をyの正方向として解くこと。
線の上を*が通る場合は|ではなく*を表示するようにすること。
よろしくお願いします。
0761デフォルトの名無しさん
2010/10/10(日) 16:13:00騙されたのか?
0762デフォルトの名無しさん
2010/10/10(日) 16:14:57>printf() にわたるときに倍精度に変換
これってprintf()の仕様?
組み込み系CPUの場合なんかだと倍精度に変換となると大変な変換に
なる場合あると思うけど。
0763739
2010/10/10(日) 16:17:240764デフォルトの名無しさん
2010/10/10(日) 16:20:140765デフォルトの名無しさん
2010/10/10(日) 16:20:57doubleでBCCとVCで初期の精度フラグが違うからBCCのが遅いとか
floatだとSSE組み込み関数が使われるとか
x86だけでも処理系依存じゃね。
0767デフォルトの名無しさん
2010/10/10(日) 16:25:20簡単な宿題丸投げする奴に、そんな難しいことは要求しないでね
0768デフォルトの名無しさん
2010/10/10(日) 16:26:41x86だと汎用レジスタは32ビットなので遅くなることがある
しかし今のCPUはSSEとかSSE2とか積んでるのでそれらを使うようにすればほとんど一緒
ただしGPUは倍精度小数の計算が非常に苦手なので
3D処理を行う計算は単精度を使うことが多いんじゃない?
0769デフォルトの名無しさん
2010/10/10(日) 16:29:18#include <stdio.h>
#include <math.h>
int main(void)
{
int i, n, m, w;
scanf("%d%d", &n, &m);
for(i = 0; i <= 360; i += m) {
w = n + sin(M_PI * i / 180) * n;
if(w == 0) printf("*%*c%*c\n", n + 1, '|', n + 1, '|');
else if(w < n) printf("|%*c%*c%*c\n", w, '*', n - w + 1, '|', n + 1, '|');
else if(w == n) printf("|%*c%*c\n", n + 1, '*', n + 1, '|');
else if(w < 2 * n) printf("|%*c%*c%*c\n", n + 1, '|', w - n, '*', 2 * n - w + 1, '|');
else printf("|%*c%*c\n", n + 1, '|', n + 1, '*');
}
return 0;
}
0770デフォルトの名無しさん
2010/10/10(日) 16:30:19速度なんて気にするようなプログラム無いだろここwwwww
0771デフォルトの名無しさん
2010/10/10(日) 16:32:09まあ今のうちからそういうこと考え始めるってのは悪くないと思うけど
0772デフォルトの名無しさん
2010/10/10(日) 16:33:41同時に計算できる量が2倍になる分、大量の計算をするときは単精度の方が有利なんじゃないの?
0773デフォルトの名無しさん
2010/10/10(日) 16:36:15可読性を無視して命令数を減らすコード書く奴多くね?
短くまとめりゃ良いってもんでもないだろ
0774760
2010/10/10(日) 16:46:46ただ、一番下の*が中心にきていないので訂正していただけるとありがたいです。
0775デフォルトの名無しさん
2010/10/10(日) 16:59:13>w = n + sin(M_PI * i / 180) * n;
w = n + (int)(sin(M_PI * i / 180) * n);
0777デフォルトの名無しさん
2010/10/10(日) 17:12:25[2] 問題文(含コード&リンク):0x20から0x7Eまでの文字コード表を出力せよ。
以下のようにすること。
Hex Dec 文字
------------
20 32
21 33 !
22 34 "
23 35 #
途中略
7D 125 }
7E 126 ~
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:特に無し
よろしくお願いします。
0778777
2010/10/10(日) 17:14:160779デフォルトの名無しさん
2010/10/10(日) 17:30:42#include <stdio.h>
int main ( void )
{
unsigned char c;
printf ( "Hex Dec 文字\n" ) ;
printf ( "------------\n" ) ;
for ( c = 0x20 ; c <= 0x7E ; c++ ){
printf ( "%4x%4d%4c\n", c, c, c ) ;
}
return 0 ;
}
0780デフォルトの名無しさん
2010/10/10(日) 17:39:14ありがとうございます。助かります。
0781デフォルトの名無しさん
2010/10/10(日) 17:51:42printf() の %c に対して、printable かどうかを確かめずに c をそのまま渡しているのはいただけない。
#include <ctype.h>
printf("%4x%4d%4c\n", c, c, (isprint(c)) ? c : '.');
くらいのガードは必要だと思う。
0782デフォルトの名無しさん
2010/10/10(日) 17:53:03C の仕様。
ISO/IEC 9899:1999 6.5.2.2.6
0783デフォルトの名無しさん
2010/10/10(日) 17:59:02私は一問ごとに別々のほうがいいなあ。答えるのに便利。
質問するのに、それだけ手間かけている、という点もあって、好感度 up !!
0784デフォルトの名無しさん
2010/10/10(日) 18:00:29gpgpu, cuda 方面では、そういう話を聞きます。それはそういうことで納得できます。
0785デフォルトの名無しさん
2010/10/10(日) 18:07:55そいういう突っ込みは要らないから
0786デフォルトの名無しさん
2010/10/10(日) 18:17:460787デフォルトの名無しさん
2010/10/10(日) 18:34:150788デフォルトの名無しさん
2010/10/10(日) 18:34:520789デフォルトの名無しさん
2010/10/10(日) 18:35:060x20から0x7eって書いてあるのにそんなこというやつがいるとはw
0790デフォルトの名無しさん
2010/10/10(日) 18:36:41printable で無いものがあるのか?
0791デフォルトの名無しさん
2010/10/10(日) 18:50:090792デフォルトの名無しさん
2010/10/10(日) 18:54:250793デフォルトの名無しさん
2010/10/10(日) 19:35:37他人への突っ込みもおかしいこと多いし、
後だしで必死にコードあげるしで、
誰かに良く似てるんだよなw
0794デフォルトの名無しさん
2010/10/10(日) 19:52:53依頼者なら、回答してくれるならどんな奴でも良い奴だよな
0795デフォルトの名無しさん
2010/10/10(日) 20:06:500796デフォルトの名無しさん
2010/10/10(日) 20:08:23[2] 問題文(含コード&リンク):0x20から0x7Eまでの文字コード表を出力せよ。
以下のようにすること。
| 0 1 2 3 4 5 6 7 8 9 A B C D E F
-+--------------------------------
2| ! ~ # $ % & ' ( ) * + , - . /
途中略
7| p q r s t u v w x y z { | } ~
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:おそらく表がずれて表示されていると思うので
きれいに表示されるよう調整お願いします。
最上段の一行と、その下にある文字は半角2文字ピッチです。
よろしくお願いします。
0798デフォルトの名無しさん
2010/10/10(日) 20:19:040799デフォルトの名無しさん
2010/10/10(日) 20:25:01ありがとうございます。
>>798
いいえ、違います。まったくの別人です。
学校の課題がたくさん出たのですが、難しすぎて解けない(自分あんまり頭が良くない)ので
この掲示板の方に助けていただこうと思ってここを訪れているだけです。
0800デフォルトの名無しさん
2010/10/10(日) 20:41:19[2] 問題文(含コード&リンク):入力された1〜2010の範囲において閏年を判断するプログラムを作成せよ。
閏年の場合、閏年と表示。
閏年でない場合、平年と表示。
1〜2010の範囲外であるときは判定不可と表示するようにする。
ルール:
入力された値が4の倍数のとき、あるいは400の倍数のときは閏年であり、
入力された値が100の倍数のとき(100,200,300,500・・・など)は閏年ではない。
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:
よろしくお願いします。
0801デフォルトの名無しさん
2010/10/10(日) 21:16:34http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10939.c
0803デフォルトの名無しさん
2010/10/10(日) 21:37:30[2] 問題文(含コード&リンク):入力された整数を一桁ずつ足してゆき、
その合計を表示するプログラムを作成せよ。
例:
入力:123
表示:1+2+3=6
入力:45678
表示:4+5+6+7+8=30
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
[3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:
よろしくお願いします。
0804803
2010/10/10(日) 21:38:510805デフォルトの名無しさん
2010/10/10(日) 21:48:53http://ideone.com/bVNbZ
123 と入力すると
3+2+1=6
と逆順に表示されるのはご愛嬌というか、これで許してください。
0807デフォルトの名無しさん
2010/10/10(日) 21:57:16#include <stdio.h>
int main(void)
{
while(1) {
int n, sum;
char str[256], *p;
scanf("%d", &n);
if(n < 0) break;
sprintf(str, "%d", n);
printf("%c", str[0]);
sum = str[0] - '0';
for(p = str + 1; *p; p++) {
printf(" + %c", *p);
sum += *p - '0';
}
printf(" = %d\n", sum);
}
return 0;
}
0808デフォルトの名無しさん
2010/10/10(日) 21:57:20http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10940.c
0809デフォルトの名無しさん
2010/10/10(日) 22:01:20なんでsumに足すのにc使わないでまた計算してんの?
0810デフォルトの名無しさん
2010/10/10(日) 22:09:49ご指摘感謝。たしかに無駄ですね。
>>803
以下に訂正いたします。
http://codepad.org/34rJpmkB
0811デフォルトの名無しさん
2010/10/10(日) 22:15:23#include <stdio.h>
int main()
{
char input[256];
while (1) {
int i, sum;
printf("入力:");
fgets(input, sizeof(input), stdin);
if (input[strlen(input) -1] == '\n')
input[strlen(input) -1] = 0;
for (i = 0, sum = 0; i < strlen(input); i++) {
if (input[i] < '0' || '9' < input[i]) {
return 0;
}
sum += input[i] - '0';
}
printf("表示:");
for (i = 0; i < strlen(input) - 1; i++) {
printf("%c + ", input[i]);
}
printf("%c = %d\n", input[i], sum);
}
return 0;
}
0812デフォルトの名無しさん
2010/10/10(日) 22:23:57#include <stdio.h>
int main(void) {
int sum=0;
char ch;
do{
ch=getchar();
if(ch=='\n') break;
sum += ch-'0';
printf("%c+",ch);
}while(1);
printf("\b = %d\n",sum);
return 0;
}
0813デフォルトの名無しさん
2010/10/10(日) 22:37:57>付け足します。↑のプログラムは0以上の整数が入力されている限り入力を繰り返すものとします。
負の数の入力があると変。
バックスペースは ideone ではサポートされていない。どうでもいい点ではありますが。
0814デフォルトの名無しさん
2010/10/10(日) 22:41:360815デフォルトの名無しさん
2010/10/10(日) 23:26:31都合悪いと中国人になる奴のプログラムだな(char ch)
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う
0816デフォルトの名無しさん
2010/10/10(日) 23:28:28先生の方にも問題があるんじゃない?
0817デフォルトの名無しさん
2010/10/10(日) 23:31:150818デフォルトの名無しさん
2010/10/10(日) 23:31:420819また勘違い馬鹿が必死に煽っているよ
2010/10/11(月) 02:17:29>>812は
都合悪いと中国人になる奴のプログラムだな(char ch)
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う
0820デフォルトの名無しさん
2010/10/11(月) 02:21:23>>812は
都合悪いと中国人になる奴のプログラムだな(char ch) < 激しく意味不明なレス
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う < ますます意味不明
↑お前本当に2ちゃんねるに向いてないよ?昨日もネタコードに噛み付いて
詰まらないことで自分はレベルが低くない、高いと思っているのか知らないが
そうやって下らないことを見下して偉そうに出来れば大したもんだ、精神レベルの低さはw
0821デフォルトの名無しさん
2010/10/11(月) 02:32:17"どうせお前「それは仕様です」とか言ってるヤツだろ"
みたいなこと言って喜ぶ輩。
0822デフォルトの名無しさん
2010/10/11(月) 02:41:25[2] 問題文(含コード&リンク):
整数値を読み込んで、その絶対値を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: vista
[3.2] コンパイラ名とバージョン: Visual C++2010
[3.3] 言語: C言語のみ
[4] 期限: [2010年10月15日まで]
[5] その他の制限:なし
よろしくお願いします。。
0823デフォルトの名無しさん
2010/10/11(月) 02:44:570824デフォルトの名無しさん
2010/10/11(月) 02:45:240825デフォルトの名無しさん
2010/10/11(月) 02:46:46この問題ならabsは求められてないでしょ
0826デフォルトの名無しさん
2010/10/11(月) 02:47:110827デフォルトの名無しさん
2010/10/11(月) 02:48:290828デフォルトの名無しさん
2010/10/11(月) 02:49:390829デフォルトの名無しさん
2010/10/11(月) 02:50:19#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("%d\n", n < 0 ? -n : n);
return 0;
}
0830デフォルトの名無しさん
2010/10/11(月) 02:51:010831デフォルトの名無しさん
2010/10/11(月) 02:57:590832デフォルトの名無しさん
2010/10/11(月) 02:58:22先頭が0xD2だったら除去
int型に戻して表示
簡単なのを無理やり難しくしようとしたら逆に難しいな
0833デフォルトの名無しさん
2010/10/11(月) 03:01:390834デフォルトの名無しさん
2010/10/11(月) 03:02:23#include <stdio.h>
#include <stdlib.h>
int main(void){
int n , i;
scanf("%d",&n);
if(n > 1){
i=1;
}else if(n < 1){
i=0;
}
Switch(i){
case 1: n=n*1; break;
case 2: n=n*-1; break;
default: printf("0\n"); exit(0);
}
printf("%d\n",n);
return 0;
}
俺はもう・・・寝る・・・
0835デフォルトの名無しさん
2010/10/11(月) 03:04:230836デフォルトの名無しさん
2010/10/11(月) 03:04:53#include <stdio.h>
int main ( void )
{
int n ;
scanf ( "%d", &n ) ;
n = ((n>>((sizeof(int)-1)*8))&0x80)?~n+1:n ;
printf ( "%d\n", n ) ;
return 0 ;
}
微妙?
0837デフォルトの名無しさん
2010/10/11(月) 03:05:02ここまで自演なんじゃないかと思えるほど
0838デフォルトの名無しさん
2010/10/11(月) 03:09:36C言語はお前だけのもんじゃねーぞ?
0839デフォルトの名無しさん
2010/10/11(月) 03:11:330840デフォルトの名無しさん
2010/10/11(月) 03:13:080841デフォルトの名無しさん
2010/10/11(月) 03:16:57>int n, i;
int n, i = 0;
>if(n > 1){
>i=1;
>}else if(n < 1){
>i=0;
if(n > 0){
i=1;
}else if(n < 0){
i=2;
0842デフォルトの名無しさん
2010/10/11(月) 03:21:540843デフォルトの名無しさん
2010/10/11(月) 03:24:02面白そうなことするときは呼べって言ってただろうが
0844デフォルトの名無しさん
2010/10/11(月) 03:37:35#include <stdio.h>
int main(void)
{
int f = 1;
int c;
while ((c = getchar()) != '\n') {
if (f) {
f = 0;
if ('0' <= c && c <= '9') {
putchar(c);
} else if (c != '-') {
break;
}
} else if ('0' <= c && c <= '9') {
putchar(c);
} else {
break;
}
}
return 0;
}
例の長文野郎ですよ。
でも簡単にせよコードをさらすようになったのはいい傾向。
あとは、ミスをミスとみとめるだけの度量が育ち、双方向リストの問題を解いてみせれば、立派なこのスレの住人ですね。
期待しています。
0846デフォルトの名無しさん
2010/10/11(月) 04:15:450847デフォルトの名無しさん
2010/10/11(月) 04:21:43「◆QZaw55cn4cだけど何か聞きたいことある?」スレでも立てて独立してほしい
0848デフォルトの名無しさん
2010/10/11(月) 08:24:190849デフォルトの名無しさん
2010/10/11(月) 10:33:49>>845
どれが長文のコードってわかるか、それどれ?
0850デフォルトの名無しさん
2010/10/11(月) 12:36:05日本語読めない、他人に攻撃的なのに妙に自分に甘い、
相手を妄想で特定する。
0851デフォルトの名無しさん
2010/10/11(月) 13:12:43あ・・・れ・・・?
今日からはもっと早く寝るよ・・・
0852デフォルトの名無しさん
2010/10/11(月) 20:11:25連日だからどう考えても昼夜逆転した引きこもりニートだろ・・・
C言語くらいしか生き甲斐の無い寂しい人間なんだな・・・
C言語と共に孤独死か?お前も俺も、いつか必ず死ぬんだぜ?
0853デフォルトの名無しさん
2010/10/11(月) 20:15:12>お前も長文と同レベルのゴミだってことを自覚しろよw
お前も同レベルのゴミだってことを自覚しろよw
0854デフォルトの名無しさん
2010/10/11(月) 20:16:45低レベルな人間ではない(キリッ)とかやっている、自分こそ
技能レベルではかなり低レベルだと自覚の無い馬鹿w
そう、お前だよお前、2ちゃん慣れしていない新参のお前。
今さら分かりきったことを、持論で勝手に定義してんじゃねーぞw
0855デフォルトの名無しさん
2010/10/11(月) 20:17:31>>お前も長文と同レベルのゴミだってことを自覚しろよw
>お前も同レベルのゴミだってことを自覚しろよw
お前も同レベルのゴミだってことを自覚しろよw
0856 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/10/11(月) 20:18:44/::::::::::::::::::::::::::\〜プーン
/:::::::::::::::::::::::::::::::::::::::\〜プーン ←鏡を見ろよw
|:::::::::::::;;;;;;|_|_|_|_|〜プーン
|;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜
|::( 6∪ ー─◎─◎ )〜 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|ノ (∵∴ ( o o)∴)〜 < 長文野郎!!!!!きめぇ〜んだよ!
| ∪< ∵∵ 3 ∵> ムッキー! \_____________________
\ ⌒ ノ_____
\_____/ | | ̄ ̄\ \
___/ \ | | | ̄ ̄|
|:::::::/ \___ | \| | |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
0857デフォルトの名無しさん
2010/10/11(月) 20:19:27自分の言葉で反論できないからコピペしかしない無能。
恥ずかしいよ。オウム返しするガキを見かけたが
お前の精神レベルは成人未満。どこで成長が止まったんでしょうね?
厨房?
0858デフォルトの名無しさん
2010/10/11(月) 21:03:21自分が気に入らなければ顔を真っ赤にして叩く、自分の言葉で
反論できないコピペオウム返ししか出来ない無能は
昼夜逆転した深夜に暴れる引きこもりニートで
C言語が生き甲斐、人生の全ての、このスレのネット弁慶なんでしょうね。
0859デフォルトの名無しさん
2010/10/11(月) 21:29:280860デフォルトの名無しさん
2010/10/11(月) 21:46:38昔こんなのを見て感動した
#include <stdio.h>
int main ( void )
{
int n ;
scanf ( "%d", &n ) ;
printf ( "%d\n", n-(n<<1 & n>>31) ) ;
return 0 ;
}
0861 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/10/11(月) 21:56:120862デフォルトの名無しさん
2010/10/11(月) 21:58:12試してみたがうまくいかない。
0863デフォルトの名無しさん
2010/10/11(月) 22:00:570864デフォルトの名無しさん
2010/10/11(月) 22:01:39まじで、俺の環境だとうまくいくけどな
まあうる覚えだし間違ってるかも。
0865デフォルトの名無しさん
2010/10/11(月) 22:02:42ああ、そういう事かw
0866デフォルトの名無しさん
2010/10/11(月) 22:05:01どういう事なんの?
0867デフォルトの名無しさん
2010/10/11(月) 22:05:45[2] 問題文 文字を1文字ずつ入力し、10文字の文字列を作成する
プログラムを作成せよ。この時、1文字入力するごとに入力済みの文字列を
表示すること。
なお、変換仕様「%*c」を用いることで文字を読み飛ばすことができる。
すなわち、「%c%*c」とすることで改行文字を読み飛ばすことができる。
また、char型配列はNULLで初期化した場合としない場合で実行する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語:C++
[4] 10/14
[5] その他の制限: なし
よろしくお願いします
0868デフォルトの名無しさん
2010/10/11(月) 22:08:47int型が32ビットか64ビットかの違いなんの
0869デフォルトの名無しさん
2010/10/11(月) 22:09:44sizeof(int) 教えて。
その感動を味わいたい。
0870デフォルトの名無しさん
2010/10/11(月) 22:13:18おお、できた、ビット演算マジエロいなこういう事だな
printf ( "%d\n", n-(n<<1 & n>>sizeof(int)-1) ) ;
0871デフォルトの名無しさん
2010/10/11(月) 22:14:1216bit や 24bitのintってことない?
0872デフォルトの名無しさん
2010/10/11(月) 22:19:51すげー嘘ついたw
試さずに言うもんじゃないな、こうだな
printf ( "%d\n", n-(n<<1 & n>>sizeof(int)*8-1) ) ;
0873デフォルトの名無しさん
2010/10/11(月) 22:19:52いや、こちらではだめなようだ。
ダメだったソースは以下のとおり。環境は gcc4(cygwin)/WindowsXP
#include <stdio.h>
int main(void)
{
int n ;
printf("%d\n> ", sizeof(int));
scanf ( "%d", &n ) ;
printf ( "%d\n", n-(n<<1 & n>>((8 * sizeof(int))-1)) ) ;
return 0 ;
}
0874デフォルトの名無しさん
2010/10/11(月) 22:20:05ρ
m
C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
/⌒ヽ⌒ヽ___ | ∴ヽ 3 ) < 俺のC言語のソースが漏れちゃう
./ _ ゝ___)(9 (` ´) )
/ 丿ヽ___,.───|彡ヽ ―◎-◎-|
_/ ) ( Y ̄ ̄ ̄ ̄)
(__/ \____/
0875デフォルトの名無しさん
2010/10/11(月) 22:20:58CHAR_BIT忘れてないか
0876デフォルトの名無しさん
2010/10/11(月) 22:24:35printf ( "%d\n", n-(n<<1 & n>>(sizeof(int) * CHAR_BIT -1) ) ;
本当はこうだよ。
0877デフォルトの名無しさん
2010/10/11(月) 22:25:01なんでだろうね
>>875
うんごめん、63でやってできたから興奮しちゃった
0878デフォルトの名無しさん
2010/10/11(月) 22:27:40#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void){
char str[11] = "";
//char str[11];
int input_cnt = 0;
while(1)
{
char c = getch();
if(('0' <= c && c <= '9') || ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z')){
str[input_cnt++] = c;
system("cls");
printf("%s", str);
}
else{ continue; }
if(input_cnt == 10){ str[10] = '\0'; break; }
}
puts("");
}
0879デフォルトの名無しさん
2010/10/11(月) 22:28:140880873
2010/10/11(月) 22:29:15感動した。
0881デフォルトの名無しさん
2010/10/11(月) 22:31:30さっきので何が違ってたの?
0883デフォルトの名無しさん
2010/10/11(月) 23:02:31使い道なさそうだけどすごいな
0884デフォルトの名無しさん
2010/10/11(月) 23:19:410885デフォルトの名無しさん
2010/10/11(月) 23:48:35SDKでダイアログベースのTPを作ろうとしているのですが、
DialogBox関数を実行してもダイアログが表示されません。
GetLastError() でエラーを取得すると、
「トップレベルの子ウィンドウを作成できません。」
を意味するエラーが返ってきました。
開発環境: Visual C++ 2010
SDK で「空のプロジェクト」からプロジェクトを作り、
リソースからDialogを追加して、IDを ID_MYDLG にしています。
以下の main.cpp を作りましたが、上記のような状態です。
#include <windows.h>
#include "resource.h"
BOOL CALLBACK MyDlgProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow) {
DWORD err = GetLastError();
return 0;
}
BOOL CALLBACK MyDlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp) {
// ブレークポイントを設定しても、ここを通過しませんでした
switch (msg) {
// 省略します
}
return FALSE;
}
以上です。どこがおかしいでしょうか。。。よろしくお願いいたします。
0886885
2010/10/11(月) 23:50:18DialogBox(hCurInst, MAKEINTRESOURCE(IDD_MYDLG), NULL, (DLGPROC)MyDlgProc);
投稿用にコメント文を消していたのですが、関数まで消してしまいました。
0887デフォルトの名無しさん
2010/10/11(月) 23:59:41スレ違い
http://hibari.2ch.net/test/read.cgi/tech/1284736445/
http://hibari.2ch.net/test/read.cgi/tech/1282403810/
0889デフォルトの名無しさん
2010/10/12(火) 00:14:40負数が2の補数とは限らない
負数の右シフトは環境定義
負数の左シフトは未定義
ほかには?
0890デフォルトの名無しさん
2010/10/12(火) 00:29:52まじか、はじめて知った。
0891デフォルトの名無しさん
2010/10/12(火) 00:49:41浮動小数点数にも使われているバイアス式でもいいし(この場合は正の数にも影響するかなあ)、
でもPCでそんな処理系は見たことはありません。
0892デフォルトの名無しさん
2010/10/12(火) 00:52:27必要な設定をしてからRegisterClass() とか CreateWindow() とかを呼ばなくてはいけないのでは。
http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
0893デフォルトの名無しさん
2010/10/12(火) 00:55:31[2] 問題文(含コード&リンク):
実行時引数で2つの文字列を与え、レーベンシュタイン距離を動的計画法で求める。
文字列は、英小文字で各10字以内とする。 作業表を出力する。以下のように実行し、作業表も出力する。
EditDist.exe bcabc abdd
0 1 2 3 4 5
1 1 2 2 3 4
2 1 2 3 2 3
3 2 2 3 3 3
4 3 3 3 4 4
距離 : 4
[3] 環境
[3.1] OS: vista
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C言語
[4] 期限: 2010年10月14日
[5] その他の制限:なし
[参考]
レーベンシュタイン距離の効率的な計算には、動的計画法による算法が知られている。作業表を作り、左上から右下へ、
最も操作回数が少なくなるような経路を選んでいく。作業表の各数値は、左上から埋めていく。ある位置の上、左、左上の値を比べ、
最小値をその位置に書き込む。左上端では0とする。さらに、縦と横の文字が一致していなければ1を足す。右下端が求める距離に
なっている。どのような基本操作を行ったかは、右下端から最小となる方向を逆に辿っていけばよい。
右に進むことは、横向きの文字列の先頭文字を削除することに相当する。下に進むことは、縦向きの文字列の先頭文字を削除することに
相当する。右下に進むことは、両方の先頭文字を削除することに相当する。
0894デフォルトの名無しさん
2010/10/12(火) 01:58:20#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int min(int a, int b, int c)
{
return a > b ? (b > c ? c : b) : (a > c ? c : a);
}
int LevenshteinDistance(char *str1, char *str2)
{
int lenstr1 = strlen(str1) + 1;
int lenstr2 = strlen(str2) + 1;
int* d = new int[lenstr1*lenstr2];
int i1 = 0, i2 = 0, cost = 0;
for (;i1 < lenstr1; i1++) d[i1*lenstr2] = i1;
for (;i2 < lenstr2; i2++) d[i2] = i2;
for (i1 = 1; i1 < lenstr1; i1++) {
for (i2 = 1; i2 < lenstr2; i2++) {
cost = str1[i1 - 1] == str2[i2 - 1] ? 0 : 1;
d[i1*lenstr2+ i2] = min(d[(i1 - 1)*lenstr2+i2] + 1, d[i1*lenstr2+i2 - 1] + 1, d[(i1 - 1)*lenstr2+i2 - 1] + cost);
}
}
return d[(lenstr1 - 1)*lenstr2+lenstr2 - 1];
}
int main(int argc, char **argv)
{
printf("%d\n", LevenshteinDistance("kitten", "sitting"));
//getch();
return 0;
}
0895デフォルトの名無しさん
2010/10/12(火) 01:59:350896デフォルトの名無しさん
2010/10/12(火) 02:02:56これってC++じゃないとダメ臭くね?
0897デフォルトの名無しさん
2010/10/12(火) 02:03:40そのへんはフィーリングで
0898デフォルトの名無しさん
2010/10/12(火) 02:04:170899デフォルトの名無しさん
2010/10/12(火) 02:13:42>int* d = new int[lenstr1*lenstr2];
int* d = (int *)malloc(sizeof(int)*lenstr1*lenstr2);
memset(d,0,sizeof(int)*lenstr1*lenstr2);
>return d[(lenstr1 - 1)*lenstr2+lenstr2 - 1];
int x=d[(lenstr1 - 1)*lenstr2+lenstr2 - 1];
free(d);
return x;
0900デフォルトの名無しさん
2010/10/12(火) 02:15:13オーバーロード?
どっかで定義されてたっけ?
まあ問題あるならminの名前変えてくれ
0901デフォルトの名無しさん
2010/10/12(火) 02:17:240902デフォルトの名無しさん
2010/10/12(火) 02:19:390903デフォルトの名無しさん
2010/10/12(火) 02:25:59ハンパな知識でしかも.cppで改変したからこんなことになるんじゃ
0904デフォルトの名無しさん
2010/10/12(火) 02:27:210905デフォルトの名無しさん
2010/10/12(火) 02:37:470906デフォルトの名無しさん
2010/10/12(火) 02:59:46無修正で擬似ではないことを証明せよ!
0907デフォルトの名無しさん
2010/10/12(火) 05:21:32もしかして同じ学校の人ですか?
課題がまったく同じなんですけど
0908デフォルトの名無しさん
2010/10/12(火) 08:33:550909デフォルトの名無しさん
2010/10/12(火) 09:12:290910デフォルトの名無しさん
2010/10/12(火) 09:18:24むしろそれ専門の学校の方がレベルが高い。
所詮、数値計算程度の授業くらいしかしない。
数学で使う数式のコードを書いたからって、プログラミングが
上達する訳でもない。もっとシステム、OS、コンピュータの仕組みを
理解する方が良い。
0911デフォルトの名無しさん
2010/10/12(火) 09:35:400912デフォルトの名無しさん
2010/10/12(火) 11:01:32a、bは100KB程度の文字列で比較可能でa<bならば、h(a) < h(b)となるやつです。
ハッシュ関数hは均等に分布できるやつが良いです。
0913デフォルトの名無しさん
2010/10/12(火) 11:03:59ハッシュでおおざっぱに分類できるので。
文字列の先頭8バイトで比較すれば条件満たすわけですが
これでは先頭8文字が一致していた場合、分類が出来ないです。
たとえば先頭が全てhttp://で始まるとか。
0914デフォルトの名無しさん
2010/10/12(火) 11:05:240915デフォルトの名無しさん
2010/10/12(火) 11:14:510916デフォルトの名無しさん
2010/10/12(火) 11:15:080917デフォルトの名無しさん
2010/10/12(火) 11:40:18分割が均等になるように分割するんです。
0919デフォルトの名無しさん
2010/10/12(火) 17:00:14うわぁコテきめえ死ね屑
気持ち悪い
>>918
>>894 を書き直したものですので、お礼は >>894 に言ってください。
http://ideone.com/fXWGh
0921デフォルトの名無しさん
2010/10/12(火) 20:42:07[1] Cプログラミング�T
[2] 問題文(含コード&リンク): 数問あるのでリンクからお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10941.txt
[3] 環境
[3.1] ubuntu
[3.2] gcc
[3.3] C言語
[4] 期限: 10/14(木)まで
[5] 9月からCをとっているのですがさっそく小レポートで詰まりました。
if elseまで習っています。よろしくお願いします。
0922デフォルトの名無しさん
2010/10/12(火) 21:12:53とりあえずヒントから
問1 まず a と b だけで比較して、大きい方と c を比較する。
問2 int b とかに代入するだけ。
問3 問2ができたら、10で割った余りを求めればよい。
問4 原点と入力された点との距離を求めて1と比較して判定。円上はどうするの?
問5 合計降水量(24時間の降水量)が10未満かどうか判定する。
0923デフォルトの名無しさん
2010/10/12(火) 21:16:290924デフォルトの名無しさん
2010/10/12(火) 21:28:46ありがとうございます。
1] 授業単元:プログラミング演習
[2] 文字列を入力し、指定した文字位置から5文字分を表示する
プログラムを作成せよ。ただし、入力する文字列は
半角のアルファベットとする。文字列の数は40文字程度とし、
5文字分を取り出す位置の関係を意識すること。
また、文字列の取り出しにはポインタを使うこと。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語:C++
[4] 10/14
[5] その他の制限: なし
よろしくお願いします
0925デフォルトの名無しさん
2010/10/12(火) 21:32:47[2] 2変数の和、差、積、商、平均を同時に求めるプログラムを
作成せよ。ただし、2変数は標準入力より入力し、計算はmain関数内から
一度だけ呼び出すただ一つの関数内で行うようにすること。
例として以下のようになる。
int calc(・・・・)
{
・・・・
}
int main()
{ ・・・・
calc(・・・・);
printf・・・・
・・・・
}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語:C++
[4] 10/14
[5] その他の制限: なし
よろしくお願いします
0926デフォルトの名無しさん
2010/10/12(火) 23:13:352つの関数間で、複数のデータを受け渡す演習だと思うけど、
グローバル変数を使う方法、関数の引数にポインタを使う方法が考えられるね。
とりあえず、ヒントだけで考えてみな。
0927デフォルトの名無しさん
2010/10/12(火) 23:21:27structを返す
0928デフォルトの名無しさん
2010/10/12(火) 23:24:28例を見る限りそれはNGかと思うな。
0929デフォルトの名無しさん
2010/10/12(火) 23:28:57例は例に過ぎないと思うな
0930デフォルトの名無しさん
2010/10/12(火) 23:56:00構造体の値渡しはコピーが遅いから、個人的に好きじゃないな。
演習レベルならよいのかもしれないけどね。
http://codepad.org/kA2MVNnr
http://codepad.org/OD9QSAft
http://codepad.org/sNNzdf7v
http://codepad.org/Q32Iq4ui
http://codepad.org/zbSvezNS
惜しいところまでできているのもありましたので参考にしてください。ここに示したものだけが正解というわけではありません。
0933デフォルトの名無しさん
2010/10/13(水) 00:44:16[2] 問題文(含コード&リンク):
6×6の盤面におけるソリティアを解くプログラムをC言語で作成せよ。
詳細は以下のファイルからお願いします
>>1のロダには容量オーバーでしたので別のを使ってます
http://www.dotup.org/uploda/www.dotup.org1196291.zip.html
DL Pass:hibari
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
[3.3] 言語: C言語
[4] 期限: 2010年10月13日AM9時
0935デフォルトの名無しさん
2010/10/13(水) 01:04:26Q先生、>>925はint calc(・・・・)だから,intのなんか返すんじゃない
でも返したintを使う気はないみたいだけど
であと、言語C++だから、なんかC++らしいの入れたほうが素敵じゃない(Ref渡しとか)
0936デフォルトの名無しさん
2010/10/13(水) 01:08:100937デフォルトの名無しさん
2010/10/13(水) 01:13:10ここでの「言語:C++」は信用してはいけない
0938デフォルトの名無しさん
2010/10/13(水) 01:25:39期限が今日じゃねーかw
途中まで作ったコードとかないのか?
0939デフォルトの名無しさん
2010/10/13(水) 01:48:58それよりも変数を後から定義していいとか、for文中でも変数定義できるとか
そういうコードをCとして書いている場合が多くて困るよな
>>935 の指摘にしたって、C++ 風に書きました。
http://codepad.org/KLbGWgL6
これと C 風味の >>934 のいずれがお好みのほうをお使いください。
0941デフォルトの名無しさん
2010/10/13(水) 05:40:14http://codepad.org/iJbNOYOM
問題文のサンプルにあった構造体丸ごとコピーの手法はアホ過ぎるのでできなかった。
代わりにundoオペレーションで実装している。
mainとかデータのパースは超適当なので問題あったら修正汁。
0942デフォルトの名無しさん
2010/10/13(水) 06:06:25御早い回答ありがとうございます。とても助かりました。
私は実数の表し方などまだ見直すところがたくさん発見できて勉強なりました!
0943デフォルトの名無しさん
2010/10/13(水) 07:52:23>ハッシュでおおざっぱに分類できるので。
これ、どういう意味ですか?
0944デフォルトの名無しさん
2010/10/13(水) 08:48:49[2] 問題文(含コード&リンク)
下記の様に、料理名の入力や材料名をキーボードより入力して、人数分の料理のレシピを計算して表示するプログラムを作成しなさい.
今日の料理名は何ですか:(料理名)
材料名は何ですか:( 材料)
( 材料) は一人当たり何グラム必要ですか:(分量)
何人分の料理を作りますか:(人数)
==レシピ==
今日は、(料理名)を作りましょう。
「(料理名)を(人数)人分作るには,(改行)
( 材料) が ( 分量×人数 ) グラム必要です」
*()内の料理名や材料には自分の好きな名前を考えてください。 * 人数、分量はキーボードから入力した値を使用してください。
printf 関数内で%sや%dを使用して、文字列(料理名・材料名)や整数値(人数・分量)を表示すること。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:10月14日
[5] その他の制限: なし
よろしくお願いします。
0945デフォルトの名無しさん
2010/10/13(水) 09:59:57ありがとうございました
0946デフォルトの名無しさん
2010/10/13(水) 11:16:29[2] 問題文(含コード&リンク)
C言語では文字列をchar型配列で扱おうとすると、コンパイル時に文字列の長さを
決めなければならなくて不便である。そこで、mallocを用いた動的メモリ確保により、
この問題を解決したい。文字列の長さを入力させた後に、任意の長さの文字列を
標準入力から受け付け、読み取るプログラムを作成せよ。また、読み込んだ
文字列を大文字にしたうえで、順序を逆にして出力するプログラムを作成せよ。
------実行例-------
文字列最大長を入力してください:26
文字列を入力してください:abcdefghijklmnopqrstuvwxyz
ZYXWVUTSRQPONMLKJIHGFEDCBA
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:10月15日
[5] その他の制限: なし
何卒よろしくお願いします。
0947デフォルトの名無しさん
2010/10/13(水) 12:52:38[2] 問題文(含コード&リンク):入力された実数の平方根を"二分法"で求めて表示するプログラムを作成すること。
精度は小数点第六位まで。ただし、入力された値が1未満の場合は何もしないこと。
[3] 環境
[3.1] OS:Windows Vista Basic 32bit
[3.2] コンパイラ名とバージョン:Visual Studio 2010
[3.3] 言語:C言語
[4] 期限:2010年10月18日正午まで
[5] その他の制限:特にありません
0948デフォルトの名無しさん
2010/10/13(水) 13:46:49[2] 問題文(含コード&リンク):
ビット演算子
データ出力用変数dを用いてループさせ、
int型整数において、キーボードから数値を入力して下位からi番目のビットを1にセットする。
条件は、
値が0→break
値が正→対応するビットをON(1〜8)
値が負→対応するビットをOFF
(値が大きすぎたらエラーにする)
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2010年10月14日まで
[5] その他の制限: 特になし
0949デフォルトの名無しさん
2010/10/13(水) 13:56:540950デフォルトの名無しさん
2010/10/13(水) 13:58:510951デフォルトの名無しさん
2010/10/13(水) 14:05:140952デフォルトの名無しさん
2010/10/13(水) 14:26:51int main(void)
{
int i, d = 0;
while(1) {
scanf("%d", &i);
if(i == 0) break;
if(i > 8 || i < -8) printf("error\n");
else if(i > 0) d |= 1 << i - 1;
else d &= ~(1 << -i - 1);
printf("%d%d%d%d%d%d%d%d\n",d>> 7&1,d>> 6&1,d>> 5&1,d>> 4&1,d>> 3&1,d>> 2&1,d>> 1&1,d&1);
}
return 0;
}
0953デフォルトの名無しさん
2010/10/13(水) 15:56:39できません。どうすれば実行形式まで作成できますか。
0954デフォルトの名無しさん
2010/10/13(水) 16:01:04スレチ
0955デフォルトの名無しさん
2010/10/13(水) 16:50:39最初のプロジェクトで「実行可能」を選択しないからだろ
0956デフォルトの名無しさん
2010/10/13(水) 16:56:32スレチ&マルチに答えんな、ボケが
0957デフォルトの名無しさん
2010/10/13(水) 17:10:14うるさい勝手なお世話だ氏ね
0958デフォルトの名無しさん
2010/10/13(水) 17:23:080960デフォルトの名無しさん
2010/10/13(水) 20:26:03問題文しっかり読んでね。何かが足りないよ。
0961デフォルトの名無しさん
2010/10/13(水) 20:41:25代わりにお願いします
0962デフォルトの名無しさん
2010/10/13(水) 20:45:25return 0; でも書いておけばいいんじゃね
0963デフォルトの名無しさん
2010/10/13(水) 20:46:150964デフォルトの名無しさん
2010/10/13(水) 20:47:280965デフォルトの名無しさん
2010/10/13(水) 20:47:360966デフォルトの名無しさん
2010/10/13(水) 20:49:570967デフォルトの名無しさん
2010/10/13(水) 20:51:58正解。
不完全ながらソースコードがあって、直すところもわかってて、
それでも自分で直せないなら、>>925に単位を取らせるべきじゃない気がするな。
0968デフォルトの名無しさん
2010/10/13(水) 20:54:10ご指摘ありがとうございます。
>>925
平均を求めるのを忘れておりましたので、追加いたします。
http://codepad.org/nHQiV7Qm
0971デフォルトの名無しさん
2010/10/13(水) 22:47:21ありがとうございます。助かりました。
0972デフォルトの名無しさん
2010/10/13(水) 22:57:35[2] 問題文(含コード&リンク):ある整数 a をその数自身を除く約数をすべて足したときに
その合計の値がaと同じになるとき、その数を和の完全数といいます。
512以下の和の完全数を見つけて表示するプログラムを作成しなさい。
出力は以下のようにする事。
6=1+2+3
28=1+2+4+7+14
・
・
・
[3] 環境
[3.1] OS:Windows Vista Basic 32bit
[3.2] コンパイラ名とバージョン:Visual Studio 2010
[3.3] 言語:C言語
[4] 期限:2010年10月18日正午まで
[5] その他の制限:特にありません
0973デフォルトの名無しさん
2010/10/13(水) 23:02:400974デフォルトの名無しさん
2010/10/13(水) 23:03:34C/C++の宿題片付けます 141代目
http://hibari.2ch.net/test/read.cgi/tech/1286978599/
0976デフォルトの名無しさん
2010/10/13(水) 23:56:54出力してるところのコードがひどすぎるね。
0977デフォルトの名無しさん
2010/10/14(木) 00:01:41文句あんなら自分で書いて晒せカス
0978デフォルトの名無しさん
2010/10/14(木) 00:08:400979デフォルトの名無しさん
2010/10/14(木) 00:15:10まぁ、口だけのみで手を全く動かさないのも、どうかと思う
つまり、似たり寄ったりってことだな
0980デフォルトの名無しさん
2010/10/14(木) 00:16:19>>975 よりもきれいに書き直しました。
これならば、仮に奇数の完全数が存在しても対応しています。(>>975 は偶数の完全数を仮定していました。)
http://codepad.org/zhU9B2Lj
0983デフォルトの名無しさん
2010/10/14(木) 00:37:17最初にdivsumで求めるときに配列に入れといたらダメなんですかね
0984デフォルトの名無しさん
2010/10/14(木) 00:42:12無論ありですし、ずっと効率が良くなると思います。
0985デフォルトの名無しさん
2010/10/14(木) 00:42:17http://codepad.org/eEh9PR1g
0986デフォルトの名無しさん
2010/10/14(木) 00:46:16おお、そうですか
なんかまずいのかと思いました
あとここの次スレっていつ誰が立てるんですかね
なくなるとすごく困るんですけど
0987デフォルトの名無しさん
2010/10/14(木) 01:03:03[2] 問題文(含コード&リンク):組み合わせ数を答えがオーバーフローするギリギリまで求めよ。C[n, n / 2]をnを1から1づつ増やしてその答えを一行ごとに出力せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2010
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:標準的なコードでお願いします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10945.txt
ここ前でかけたんですがn = 34の時オーバーフローしてしまいます。
でもc[34, 17] < 2 ^ 32 なので計算の途中でオーバーフローしているようです。
どう直せばいいのでしょうか
0988デフォルトの名無しさん
2010/10/14(木) 01:03:44配列のサイズはかなり適当だけど、全約数を2回求めるようなことは不要。
http://codepad.org/CwfSn3Nr
0989デフォルトの名無しさん
2010/10/14(木) 01:09:46ここが終わるまでには立てるよ、誰かが
0990デフォルトの名無しさん
2010/10/14(木) 01:11:53C/C++の宿題片付けます 141代目
http://hibari.2ch.net/test/read.cgi/tech/1286978599/
0991デフォルトの名無しさん
2010/10/14(木) 01:12:24妄想だが、オーバーフローしているのはスタックメモリじゃないか
VCでそれをどう変更設定するかは忘れた><
0992デフォルトの名無しさん
2010/10/14(木) 01:15:31ありがとうございます
もうたってましたか、またお世話になります
0993デフォルトの名無しさん
2010/10/14(木) 01:25:10とりあえずコード読んだけど再帰で書きたいの?ループで書きたいの?
意味わかって書いてる?
0994デフォルトの名無しさん
2010/10/14(木) 01:36:50%d を %u に
0995デフォルトの名無しさん
2010/10/14(木) 01:38:59別にどっちでもいい
関数の中のfor文だけだとn = 30の時にオーバーフローしちゃうし
偶数と奇数の場合分けだけだと数が小さい時は割り算で余りが出ちゃって答えずれちゃうしで
再帰とループを使ってる
頭が足りない初心者の苦肉の策です
0996デフォルトの名無しさん
2010/10/14(木) 01:40:49そうか、再帰の部分機能してないぞ。
まあ、こだわりが無いなら、再帰の部分をなくしてanswerをlong long型にすると治ると思う
0998デフォルトの名無しさん
2010/10/14(木) 01:44:44プロパティシートで設定するんじゃないの、VS2010なら
0999デフォルトの名無しさん
2010/10/14(木) 01:45:03%uもlong longも習ってないので出来れば使わない方がいいかと思います
型はint型のみで出力も%dのみでお願いします
1000デフォルトの名無しさん
2010/10/14(木) 01:45:1610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。