[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 14:08 / Filesize : 280 KB / Number-of Response : 928
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 140代目



1 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 19:18:14 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

C/C++の宿題片付けます 139代目
hibari.2ch.net/test/read.cgi/tech/1280653311/

2 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 19:20:53 ]
おつー

3 名前:デフォルトの名無しさん mailto:sage [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]);
}

こんな感じで任意の数を入力させない場合はできたのですが、任意の数を読み込ませる形がわかりません・・・お願いします

4 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 20:11:36 ]
>>3

とりあえずscanf()でいいんじゃない?

int a;

printf( "how many rows?\n" );
scanf( "%d", &a);

みたいな感じで使う。これでaにユーザーが入力した値が入るよ。

5 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 20:57:55 ]
よくやった?タイムリーにスレタイを
140田代くらいやって欲しかったぜw

6 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:12:43 ]
>>3
ttp://codepad.org/ZFiWDmoP
>>4の助言でもう解決しちゃったかもしれないけど

7 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:24:14 ]
>>6
C++でなくてCだぞ

8 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:30:30 ]
VC++ 2008使ってるからセキュア版の方が良いかと思って、
気になるなら消してくだせえ、
一応gcc 3.4.2でチェックした後セキュア版にしたんで他は大丈夫なはず

9 名前:3 mailto:sage [2010/09/16(木) 21:42:38 ]
勉強してたらこんなに沢山のレスが!ありがとうございます!

ソース見てしっかり勉強させて貰います!

10 名前:デフォルトの名無しさん [2010/09/16(木) 21:55:24 ]
>>3
急に難しいの来たな
題意からすると malloc() を使って動的二次元配列を作らなければならないよ
r,s,t,y の上限とかは規定されてないの?

ところで2行3列の行列Xと4行5列の行列Yの掛け算ってどうやるんだっけ?



11 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:56:44 ]
>>6
4だけどさw
このレベルの宿題で、こんなの書いたらカンニングばればれじゃないか?w

12 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 21:57:15 ]
出来ない
Xの列とYの行は同じじゃないと駄目

13 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:00:00 ]
馬鹿は黙ってろ

14 名前:デフォルトの名無しさん [2010/09/16(木) 22:01:05 ]
でた、馬鹿はすぐに他人に馬鹿って言うw

15 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:06:09 ]
上げてるアホは前スレで吊ったんじゃなかったの?
きちんと死んどけよw

16 名前:12 mailto:sage [2010/09/16(木) 22:06:24 ]
もしかして計算をすることが出来る方法があるのを
ツンデレ風に教えてくれてるのかと思ったけど
やっぱ出来ないじゃないかw

17 名前:デフォルトの名無しさん [2010/09/16(木) 22:06:46 ]
>>15
でたー、晒しageされている自分が恥ずかしいから
ageたことを叩く馬鹿w

18 名前:デフォルトの名無しさん [2010/09/16(木) 22:07:31 ]
>>15 = >>13
また落ち着いて鏡を見ろよ。何かこう↓のような顔が映っただろ?それ、誰のだよ?そうお前のだよw
ttp://sankei.jp.msn.com/photos/affairs/crime/100916/crm1009161159015-p3.jpg


19 名前:デフォルトの名無しさん [2010/09/16(木) 22:08:52 ]
>>12
だよなぁ、なんか例外的な解法があるかと思って悩んじゃったよ
問題作った奴が馬鹿なんだろうな、って書くと俺も馬鹿になるか

20 名前:デフォルトの名無しさん [2010/09/16(木) 22:09:00 ]
13 名前:デフォルトの名無しさん 投稿日:2010/09/16(木) 22:00:00
馬鹿は黙ってろ

15 名前:デフォルトの名無しさん 投稿日:2010/09/16(木) 22:06:09
上げてるアホは前スレで吊ったんじゃなかったの?
きちんと死んどけよw

↑IDが無いから顔を真っ赤にして自分を攻撃してくる見えない敵を
必死に叩くだけの、罵詈雑言しか使えない自分が本当に死んだ方が良い
本物の馬鹿、アホだと気づかない愚かさ。このスレに何しにきてんだろうねw



21 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:10:48 ]
すまん、気が付かないでageてた、sage推奨なんだここ

22 名前:デフォルトの名無しさん [2010/09/16(木) 22:10:58 ]
15 名前:デフォルトの名無しさん 投稿日:2010/09/16(木) 22:06:09
上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
上げてるアホは前スレで吊ったんじゃなかったの?
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw
きちんと死んどけよw

↑もうまともな反論が出来ない、罵詈雑言が当たり前で言い返せない池沼w
>>1 やテンプレに sage進行、推奨といった条件が無いので別に
sageなくても問題はないんだが・・・いつからage=荒らしみたいな
勘違い2ちゃんねらーになったんだろうね。

23 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:12:52 ]
なんか新スレ早々香ばしいな

24 名前:デフォルトの名無しさん [2010/09/16(木) 22:14:42 ]
sage強制ではないよ。

> 気に入らない質問やその他の発言はスルーの方向で。
これが読めない奴がとにかく相手を馬鹿にしなければ気が済まない、
また言われた方が反応して荒れてるだけ。両方とも問題だが
最初に言った奴の方が精神レベルが低い、大人になりきれない
非社会適合者だというのは昔から知られていること。
ネットでは対面せず特定されないからって偉そうにしているが
現実世界では言いたい事も言えない貧弱な負け犬だからw

25 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:20:32 ]
他の板、スレでも見かけるけど上から目線で偉そうに
特に相手が納得できる説明もなく、失敗や間違いを
馬鹿にするだけの罵詈雑言レスしかしない奴は普通に見かける。
そいつは自分が特定されないからって、そのスレに常駐している
基地外引きこもりニートのようで、また現れては直ぐに自分が
特定できるレスをするんで、周りから集中攻撃を受けて
立場を失うと。現実世界では人物が特定されるし、その内
大勢から相手にされなくなて孤立するが。
とにかく、罵詈雑言が直ぐに出る奴こそ知能が低いから
行動パターンからして言動でバレバレ。そういうゴミ屑って
何で生きているんだろうね?人の役に立たない癖に。
直ぐ死ぬべきなのはどっちだよ?w

26 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:21:38 ]
またこの長文キチガイか
自称年収1000万でいつまでこのスレに粘着してんだよw

27 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:26:38 ]
バイバイさるさんw

28 名前:デフォルトの名無しさん mailto:sage [2010/09/16(木) 22:31:48 ]
こんなスレでネット弁慶をするのが、この精神レベルの低い大人の生き甲斐なんだぜw
出来る人間は、C言語に限らずプログラミングで金儲けしているというのに。

29 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 00:28:54 ]
>>28
ほんとのこと、あまり言うなよ

30 名前:デフォルトの名無しさん [2010/09/17(金) 05:14:01 ]
相手の素性も分からないのに、気に入らない奴の言動だけで
妄想や思い込みでレッテル貼りをして、その相手を罵倒するのに
使った言葉は日頃、自分が他人からされている誹謗中傷、
罵倒で言われている汚い言葉なんだろうね ( ´,_ゝ`)プッ



31 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:05:49 ]
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
入力された文字列を逆順に「格納」する関数
void rev_string(char str[]) を作成せよ。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: C言語のみ
[4] 期限: [2010年09月21日まで]
[5] その他の制限:なし
昨日言っていた5つ目の課題です。
よろしくお願いします。


32 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:22:41 ]
void rev_string(char str[])
{
char *p = str;

while(*p) p++;

while(--p > str) {
char temp = *p;
*p = *str;
*str++ = temp;
}
}

33 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:29:32 ]
>>32
ありがとうございます。

34 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:36:52 ]
[1] 授業単元: プログラミング基礎
[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つ目の課題です。
よろしくお願いします。


35 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 07:40:57 ]
void put_stringn(const char str[], int no)
{
  int i;
  for (i = 0; i < no; ++i)
  {
    printf("%s", str);
  }
}

36 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:07:34 ]
>>35
ありがとうございます。

37 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:14:43 ]
[1] 授業単元: プログラミング基礎
[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つ目の課題です。
よろしくお願いします。


38 名前:デフォルトの名無しさん mailto:sage [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:::::::::::::::::::::`:ヽ..、

39 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:40:14 ]
>>17
専ブラ使っているとさらしあげなんて気にならない。感覚がふるいんじゃない?

40 名前:デフォルトの名無しさん [2010/09/17(金) 08:43:51 ]
>>37
無理



41 名前:デフォルトの名無しさん [2010/09/17(金) 08:45:38 ]
>>39
>感覚がふるいんじゃない?
それはage、age騒いでいる奴の方だろ。
それから、専ブラ使っていても板の一覧の上に来ているから
お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw

42 名前:デフォルトの名無しさん [2010/09/17(金) 08:46:49 ]
>>39
hibari.2ch.net/tech/
ほら、見てごらん。って、お前が見た時に一番上に来ているとは限らないがw

43 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:50:57 ]
>>39
お前の方が意味が分からん。お前の足りない考え、自分の行動パターンだけでは
理解できないことだらけの世の中だと早く気づいた方が良い。
なぜなら、お前が利口で金持ちならこんな場所を見てはいないだろうからなw

44 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:51:57 ]
constついてちゃなあ

45 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 08:54:33 ]
>>37
無理と思ったけどできるな、処理系によってはワーニング出るけど

void null_string(const char str[])
{
char* p;

p = (char*)str;
*p = NULL;
}

まぁこんなコード書いたら馬鹿にされるけどな

46 名前:デフォルトの名無しさん [2010/09/17(金) 08:56:12 ]
>>39
大半の人がお前と同じ行動をとっていると思わないことだな。
視野が閉鎖的過ぎ。専ブラを使っていても、プログラム板の
スレの一覧の上の方にあれば、何事か?と興味本位で
野次馬が来るだろうから、態と晒しageするんだよ。
別にsage強要じゃないから、2ちゃんは。お前は2ちゃんに向いてないよ。

47 名前:デフォルトの名無しさん [2010/09/17(金) 08:59:37 ]
>>39 ageんな!って騒ぐ奴の方が考えが古いだろ。
昔、板の上の方にあるスレが片っ端からコピペ荒らしの
標的にされたことがあって、多分その時からいる人は
敏感にageに反応してしまうんだろうけど。
専ブラ使っているなら、お前が言うようになおさらageた所で
気にしないだろ。メール欄にsageが入っていないのが
窒息するかのように苦しいと思えることなんだろうか?w

48 名前:デフォルトの名無しさん [2010/09/17(金) 09:07:56 ]
ttp://oshiete.goo.ne.jp/qa/944545.html
ここでも言われているがageに敏感に反応する奴は
荒らしを気にしてのことだろう。しかし、目立つ様に
馬鹿を晒しageする為にわざとageてんだから、何を言われようが
痛くも痒くもねーよw

49 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 09:35:56 ]
charにNULLを入れるのは気持ち悪いな

50 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 10:40:26 ]
問題を作る側のスキルの無さが丸見えだな。



51 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 11:04:18 ]
*p = '\0'; の誤りじゃないのか。

52 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 11:26:57 ]
>45
わかってないな

53 名前:デフォルトの名無しさん mailto:釣れるかな? [2010/09/17(金) 12:14:45 ]
>>41
>それから、専ブラ使っていても板の一覧の上に来ているから
専用ブラウザや専用ブラウザの設定によって異なる。

>お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw
それはあなた。

int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。

54 名前:デフォルトの名無しさん mailto:釣れるかな? [2010/09/17(金) 12:18:17 ]
>>41
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?

55 名前:37 mailto:sage [2010/09/17(金) 12:35:24 ]
皆さんごめんなさい
constは無しでした。
打ち間違えてしまいました。
本当にすみません><

56 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 12:43:45 ]
void null_string(char str[])
{
*str = '\0';
}
でいいのか
void null_string(char str[])
{
while(*str) *str++ = '\0';
}
にすべきなのかわからないな

57 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 12:45:24 ]
うむ。どちらにしろ「空文字列」の意味が分からない。
もしかしたら
strcpy(str, "空文字列");
なのかもしれないぞ。

58 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 12:46:11 ]
>>49
間違った、普通は0x00か'\0'だな
どうせクズコードだから細かい事は気にすんな

59 名前:デフォルトの名無しさん [2010/09/17(金) 12:48:17 ]
>>56-57
問題見直して笑った、どんな奴が作った問題なんだろう

60 名前:デフォルトの名無しさん [2010/09/17(金) 13:13:13 ]
[1] 授業単元: プログラミング基礎
[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つ墓明神の墓石に刻まれていた課題です。
よろしくお願いします。





61 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:17:08 ]
大抵そうなんだが、解く以前に問題がよくわからない。
hoge("7"); で何が起こるか説明してくれ。
文面からすると、
2 · 3 · 5 · 7 · 11 · 13 · 17 · 19 · 23
だから、下から数えて7番目の"17"が返ればいいのか?
だったら入力された文字列を素数に限定する意味がわからん。
戻り値をまた引数にして何かするつもりなのか?
っていうか、返す文字列はstaticでいいのかね。

回答よりも問題のほうに問題がある。

62 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:34:08 ]
>>60
入力された数が何でも良いなら単純な篩を使った解法では無理だろうね
40億番目の素数は1000億くらいのはずだから long long が必要=32Gの配列が必要だ(そもVCってlong long 有ったっけ)
素数番目の素数を求める特殊な方法に関するヒントとか無いの?

63 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:39:20 ]
無理やり解釈したらこんな感じ?
char *hoge(char *str) {
  int no;
  printf("どの数番目?: ");
  scanf("%d", &no);

  strを数番目の文字列に置き換え
  return str;
}

個人的にはstrを破壊するのは好ましくないけど

64 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:39:44 ]
ある数が素数かどうか知るだけだ。
素数を列挙するわけじゃあるまい、篩はいらんと思う。

ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%88%A4%E5%AE%9A

65 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:43:55 ]
いや、そうか、「その数番目」というところあミソなのか・・・。
篩が必要になってしまうのか。うーん。
それともこういうの使うのか?
ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E5%AE%9A%E7%90%86

66 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 14:49:44 ]
担任にもう一度問題の定義を聞いた方が早いような、
月曜は休みなので今のうちにね

67 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:01:51 ]
64ビット整数でそのまま計算するのは簡単だけど、
40億番目とかどんだけ時間かかんだよw

68 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:03:23 ]
メモリはそんなにいらないぞ。
問題はn番目なのだから0〜1000万までを篩にかけて、
その中に何個素数があるか数える。nにまで達してなかったら
1000万1〜2000万までを篩にかけ、素数を数える。
当然前の結果の個数を足し込んで勘定する。
いつかN番目がみつかるだろう。

69 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:08:32 ]
いや、「プログラミング基礎」っていってるんだから、まさか素数判定法とか使わないだろ。
やっぱり出題者はエラトステネスのふるいを期待してるんだと思うぞ。
で、一応、入力した数が素数かどうかも同じ方法でチェックしろよ、ってことだろ。
関数にしなさい、とかって意図じゃないの?

70 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:14:19 ]
わかった。
エラトステネスの篩だとして、入力に40億以下と明示されてる点はどうするの。
40億が引数に渡される場合もあることを考慮して作れ、と解釈する?
それとも単に32bit符号なしで表現できる数だよ、という程度に解釈する?



71 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:14:33 ]
#include <stdio.h>
#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;

}

72 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:15:09 ]
>>68
0から1000万までの領域をとっておかないと、
1000万1から2000万は篩えないと思うんだが。

73 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:15:58 ]
>>70
うん、俺は多分、longで、っていいたいだけだと思うんだよね…
標準インクルードだけでやれっていってるんだし。
そもそも、出題者があんまりよくわかってるっぽくないんだよなあ、問題文から見てw

74 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:18:10 ]
>>72
どうして?
1000万1から2000万の領域も2から篩なおすのだよ?
もちろん時間的に無駄はある。
でもフラットに数GBのmallocするより現実的だしょ?

75 名前:デフォルトの名無しさん [2010/09/17(金) 15:18:38 ]
>>64-65
試し割りなら配列は要らないし、N番目は最初から数えれば良いだけだ
時間を気にしなければ解けなくはないな、2〜1000億まで素数判定って何時間オーダーで終わるかなぁ

>>67
VCって標準で64ビット整数使えるの?それとも64ビットOS上だけ?

76 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:21:52 ]
で、出題した側もチェックするのが大変なはずだから、そんな大きな数は入れないと思うんだよねw
せいぜい1000くらいじゃないの?
一応、入力された数でmallocすれば、満点ってところじゃないのか?w
いや、純粋にプログラミング的興味として議論するのは別に構わないけどw

77 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:29:31 ]
>>71
100と入力したら0が返ってきたんだが。

78 名前:71 mailto:sage [2010/09/17(金) 15:29:31 ]
>>71
は無視してください。

79 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:31:01 ]
同時刻か。やるな。

80 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:38:07 ]
>>68
篩って見つかった素数の倍数は除去するって考え方でしょ
だったら40億個の素数を配列に保持する必要が有るんじゃないの?
40億=4G x 8byte( long long ) =32Gって考えたんだが

>>70
40億って書いて有るんだから40億まで対応できるコードを求めてるんじゃないかな
出力を10進文字列にしろって明示してるのも long じゃ計算できないよって意味に取れるし(考えすぎ?)



81 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:49:21 ]
>>80
スマン説明がたりてなかったな。
つまり0〜1000万までの素数もとっておくという意味だ。
篩の形でとっておく必要はない、結果だけ持てばいいでしょ?
1000までの素数の数は167個だから、メモリの消費はかなり抑えられる筈。

82 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:50:55 ]
真面目にふるいにかけても40億ビットでいいんじゃないかな

83 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:54:27 ]
>40億=4G x 8byte( long long ) =32Gって考えたんだが
それはおかしくない?
篩のサイズが4GBでも、個々のデータは割り切れたかどうかの1bitで十分な筈。
だから実際は40億でも512MBでできる筈。
2の倍数を最初から省けば、256MB、これくらいならいけそうな気がする。

84 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 15:59:56 ]
きっと問題作った奴が教授の助手やってる院生とかなんだよ、多分…w

85 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 16:08:09 ]
ってか質問者も少しは考えてソースなりなんなり貼れよw
問題がカスすぎてどう答えて良いかわからん

86 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 16:08:16 ]
「8つ墓明神の墓石に刻まれていた課題です。」

87 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 16:17:12 ]
擬素数うんぬんいう以前の話だった

というか>>60では素数判定しろとはいっていないから
素数列のテーブルをあらかじめ用意しておいてそれを参照するだけでも
(出題者の真意はともかく)題意は満たすんじゃないか?
どのくらい巨大なテーブルになるかはしらんが

88 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 16:19:27 ]
>>86
分からん
ナポリタン(意味の無い言葉)かスラング(隠語)?

89 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 16:21:51 ]
つーかだな、60もそろそろ出てきて説明なりなんなりしろよw

90 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 17:07:01 ]
普通にエラトステネスの篩を実装した場合。
バグはありそうな気がする。
codepad.org/UPzb5pV5

出力結果の1000001番目の素数が15485867であることを照合済み。
www.bigprimes.net/archive/prime/10001/


ところで、こういうネット上のアーカイブからとってくるというアイデアをすっかり忘れてたわ。
巨大なテーブルは既にネット上にあるさね。



91 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 17:16:27 ]
ああん、ところでatolは符号つきなので、40億をパースするにはsscanfの%luじゃないとダメなんすね。
ま、上記コードで計算させると1000万番目で20秒かかるので、40億だと恐ろしいことになると思われる。

92 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 17:21:57 ]
もう出題者はアホとしか言いようが無いと思う。仮にもプログラム組む人なら不当性が分かるだろうに

93 名前:60 mailto:sage [2010/09/17(金) 17:28:13 ]
問題で書き写し忘れてた箇所がありました。

この問題のCコードを書いてネット掲示板に貼ったものは
八墓明神の怒りを買うだろう
この問題文をネット掲示板に貼ったものは
祝福を受けるだろう

94 名前:90 mailto:sage [2010/09/17(金) 17:30:31 ]
体調が悪くなってきました。
体中にブツブツが・・・。

95 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 17:40:53 ]
>>91
atol()より、strtoul()の方がベターかと。

96 名前:デフォルトの名無しさん mailto:sage [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次元ベクトルを入力できるようにすること。クラスか構造体を必ず使う事。

97 名前:デフォルトの名無しさん mailto:どうして釣れないの [2010/09/17(金) 18:30:03 ]
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。

char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?

98 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 18:46:05 ]
hibari.2ch.net/test/read.cgi/tech/1280653311/993

    /\___/ヽ   ヽ
   /    ::::::::::::::::\ つ
  . |  ,,-‐‐   ‐‐-、 .:::| わ
  |  、_(o)_,:  _(o)_, :::|ぁぁ
.   |    ::<      .::|あぁ
   \  /( [三] )ヽ ::/ああ
   /`ー‐--‐‐―´\ぁあ

ホントだ…。これは酷い…ありえねぇ。

99 名前: ◆QZaw55cn4c mailto:sage [2010/09/17(金) 18:46:14 ]
>>96
codepad.org/AQOVAmjT

100 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 19:02:16 ]
>>99
先生、
double x, y, z;
をprivateには出来ないんですか?




101 名前: ◆QZaw55cn4c mailto:sage [2010/09/17(金) 20:12:00 ]
>>96
>>100
codepad.org/Y1CUd8s4

102 名前: ◆QZaw55cn4c mailto:sage [2010/09/17(金) 20:35:48 ]
>>96
>>100
codepad.org/skVotiWO

103 名前:デフォルトの名無しさん mailto:どうしても釣れないか [2010/09/17(金) 20:45:48 ]
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?


104 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:46:25 ]
◆QZaw55cn4c先生ありがとうございます!

105 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:47:50 ]
>>97
お前まだやっているのかよ、気持ち悪いな。
しかも、お前がint main() 笑を書いてたんだろ。
ここで荒らしに反応している奴も荒らしだろ。
本当にこいつら2ちゃん慣れしていない初心者ばかりだろ?
自分が犯している初歩的なミスに気づかないで
相手を攻撃すれば、荒らし目当てで来た奴の標的にされるのは
分かりきっている。特に、意味も無く、相手が特定できないのに

>int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
と書いておきながら、相手がint main()を書いた奴でなければ、寧ろ
自分の方が釣られたと宣言しているようなものなに、学習能力無さ過ぎだろ。

106 名前:デフォルトの名無しさん mailto:少しは釣れへんかいな [2010/09/17(金) 20:49:52 ]
nt main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%s", a);
はバッファオーバーランを引き起こすことは納得できましたか?

107 名前:105 mailto:sage [2010/09/17(金) 20:50:00 ]
すまん、こいつは本当にただの基地外荒らしだったか。
反応した俺も反省するわ。あぁきめぇ、社会から外された
引きこもりニートの基地外 >>103 = >>97

108 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:50:58 ]
> nt main() (笑)
もうコピペミスするくらい煽る、荒らすのに必死だなw
以後放置よろ。無意味なコピペは荒らし認定されるので
運営に通報してくる。

109 名前:デフォルトの名無しさん [2010/09/17(金) 20:52:48 ]
まだ意味不明な getchar() の話を続けてるの、この粘着、常駐基地外は?
しかも明らかに場違い、誰かと勘違いしているんだろうね。
自分の方が明らかに勘違いしているのに。コードの内容とここで見えな敵をw

110 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:52:56 ]
ちょっとちがった。
nt main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%1s", a);
はバッファオーバーランを引き起こすことは納得できましたか?



111 名前:デフォルトの名無しさん [2010/09/17(金) 20:56:11 ]
ttp://info.2ch.net/guide/faq.html
「荒らし」ってなに? △ ▽  ▲ ▼

 スレッドを乱立させたり、長文や意味を持たない文字列やアスキーアートなどをコピー&ペーストしたり、削除対象になるものを書き込んだり、掲示板の使い勝手を悪くしてしまう行為一般の総称です。
 個人の誹謗中傷、度の過ぎた差別発言、むやみに不必要なスレッドを上げること、執拗な煽りや叩き、なども荒らしとみなされる場合があります。
 平たく言えば、他人に迷惑が掛かる書きこみはアウトってことです。。。

 荒らし行為に遭遇した場合は、諌めたり挑発したりなど、むやみに対抗しないようにお願いします。特に荒らしを煽るのは逆効果です。
 荒らしに反応したらあなたも荒らしかも。。。

相手が誰かも分からないのに、そうだと決め付けて現在の流れでは明らかに
無関係な int main() の話をしている基地外荒らしに反応しないで下さい。
明らかに無意味でコピペ荒らし認定が出来ますので、通報してきます。
ここまでしつこく粘着性があると、場合によっては同じプロバイダの人は
アク禁に巻き込まれるかもしれませんので、場が不必要に荒れないよう
この荒らしに反応しないように。

112 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:57:20 ]
>個人の誹謗中傷、度の過ぎた差別発言、
>むやみに不必要なスレッドを上げること、
>執拗な煽りや叩き、なども荒らしとみなされる場合があります。
   ↑に該当。

113 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 20:59:59 ]
断っておきますが、自分はint main() 笑と書いた覚えはありません。
ここで口論になることはありますが、どうやら過去に荒れた原因となった
一方が、もう一方が同じ人物だと勘違いをしているようで、意味不明。
getchar() についても、自分はそんなコードを書いた覚えはありません。
しかも揚げ足取りで指摘している?内容も意味不明。
本当にこの荒らしはC言語に精通している人なんでしょうか?
C言語に関わらずプログラム言語はいくつかありますが、C言語で
こんな程度の低い言動を続けるようでは、まともなコードが書けるとも思えませんね。
それから、何かと世界的な標準はISOを参考にして問題はありませんよ。

114 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:01:24 ]
>>111
>>110 は、C/C++ではまりがちな点を啓発している、と考えられますから、あながち
>長文や意味を持たない文字列やアスキーアートなどをコピー&ペーストしたり、
ではないと思いますけれども。
>荒らしに反応したらあなたも荒らしかも。。。
>>111 がまさにそうですねえ。

115 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:03:36 ]
int mainに関してはISOを参照して、あくまでもISOが提唱する
標準スタイルとして説明はしましたが。getchar() に関しても
前々から返り値がどうとか、意味不明なことを言っている人がいましたが
それに関しても標準ライブラリに関する文献を用いて、戻り値の型を
説明したこともありますが、正直、何を言っているのか不明。
前にそれに関して、自分とは別の人と稚拙な言い争いがあったのかも
しれませんが、とにかく荒れる度に、現状では無関係なコピペ荒らしを
する人は他の板、スレでも見かけますし、流れの邪魔になりますので
抑止の為に運営に通報しておきます。アク禁されても運営の判断ですので
あしからずご了承ください。

116 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:06:09 ]
流れからして明らかに無関係、無意味と判断されますので
int main() 笑は今後も同じことをしたら、運営が警戒しますので
あしからず。このスレに何しに来ているんですか?
見えない敵を馬鹿にしたいだけですか?自分の言動が精神レベルの低い
幼稚なものだと早く気づいて、まともに社会で働いて下さいね。

117 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:08:28 ]

そういう説明、いらない

118 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:10:34 ]
char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?

↑とは言うが、それなら具体的にどのようなコードを書いたら良いのか?
こいつは全く説明していない。int main に関しては相手にISO、ANSI準拠だと
どのような標準スタイルが提唱されているか説明を受けた癖に、自分は
一方的にそれはまずい!ってコードの欠陥を指摘するだけで具体的な対策は説明せず。
そりゃ int a[10] で a[10] と書いたら、[]の中は0〜9までと分かりきった説明は不要だが。
あと、自分はgetchar()すら使ってないわ。

119 名前:60 mailto:sage [2010/09/17(金) 21:10:52 ]
みんなおれのことは心配してくれてないのか。

120 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:12:51 ]
> ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
しつこいよな。分かりきったことを。何が言いたいんだろうか?しかも誰が言ったかも
分からない、もうこのスレを見ていない当時初心者を相手にしたのかもしれないが。
しつこよ、お前。どうせ運営にはアクセスログ(リモホ)でお前の言動は筒抜けだろうけど
IDが無いからって、いい加減、特徴でお前は他のレスでもバレてるよ。



121 名前:90 mailto:sage [2010/09/17(金) 21:13:25 ]
間違えた、90だった。・・・もういい!

122 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:15:47 ]
>if ((c = getchar()) = EOF) { }
c=getchar();
if(c==EOF) { } ならどうなの?
まぁ自分は引用したようなif文は書かないが
(c=getchar()) となっているし、それ以下の説明が
それに対する補足としては不十分じゃね?

123 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:20:06 ]
で、いつまでも相手を勘違いして int main() (笑)と getchar() に関して
意味不明なコピペを続けるお前は何しに来てんの?スレタイも >>1 も読めない
馬鹿なの?死ぬの?っつーか社会のゴミ屑でお前みたいな存在は不要だから死ねよw

124 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:24:28 ]
>>1
>気に入らない質問やその他の発言はスルーの方向で。
言語の仕様やコードに関する話は別のそれ用のスレで。

125 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:44:42 ]
90じゃないけど、
>>60はちゃんと>>90にお礼いったか?

126 名前:デフォルトの名無しさん mailto:sage [2010/09/17(金) 21:48:25 ]
>>122
>char c;

127 名前:デフォルトの名無しさん mailto:sage [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:::::::::::::::::::::`:ヽ..、

128 名前:デフォルトの名無しさん mailto:sage [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:::::::::::::::::::::`:ヽ..、

129 名前:60 mailto:sage [2010/09/17(金) 22:43:18 ]
>>71
>>90
遅くなりましたが有り難うございました。
けどお大事に。これからが本番ですね

130 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 01:02:08 ]
自分は標準スタイルに従わないよ、って宣言は他人にしなくて構わない。
自分の環境で通用するならそれを押し通せば良いだろ。別にお前の環境も
それを拒否している訳でもないだろうから。お前は他人とソースコードの
共有をしないんだろうけど、共有するにしても基本部分さえ問題なければ
それで構わないし。あくまでも世界的に標準化を提唱している団体、ISOが
提唱する「標準スタイル」の話を、いちいち自分がそれに物申すみたいな
他人に自分の意思表示をされても、あっそ、じゃお前はそうしてろって言われるだけだわ。
別に逐一、独自スタイルを否定するつもりでISOの話をしている訳でもないんだし。
ド田舎者の固執した、閉鎖的な思想って本当にキモイな。多分、日●組とか
その辺りなんだろうけど。



131 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 01:46:00 ]
自分のスタイルが標準であると頭から決めてかかる人が多い
のがこの世界

132 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 02:47:08 ]
宿題スレで何議論してるの?
これが大多数の感想じゃないかな?

133 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 02:53:46 ]
何かint mainについてはともかく、まだgetchar()とEOFに噛み付いている基地外がいるが
お前こそ↓を理解して言っているのかよ?いい加減うぜぇ。仕様に関するスレでやれ。
ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html

返却値 stdinが示す入力ストリームの次の文字を返す。
ストリームでファイルの終わりが検出された場合、
そのストリームに対するエラー表示子をセットしてEOFを返す。

134 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 02:58:19 ]
>>133
いや、突っ込むとこはそこじゃなくてだな…

char cだと、EOFは(int)-1なわけで、ってことなんだよ。
そもそも、最初の書き込みが(c=getchar())=EOF)になってて、
(つか((c=getchar())==EOF)じゃなければ、常にTRUEになって
1文字も読み込まない、とかっていう方が気になってしまうのだが、

少し前のC言語の入門書とかでは定石的に書かれていたFAQとか
の類。

135 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:04:16 ]
馬鹿はgetchar()の使い方そのものを誤って
問題が起こる様な場合を用いてそういう時どうするの?
くらいな自分の墓穴堀りしかしていない愚かさに気づいてない。

136 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:10:34 ]

つまらないから、もうやめない?

137 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:13:09 ]
いや、やめていいだろ。
ってか、新しい宿題が出れば、すぐ忘れ去られるべw

138 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:26:17 ]
ごちゃごちゃ言うなら (c=getchar())自身の値を自分で確認すれば良いだろ?
いい加減、しつけぇよ、粘着引きこもりニート。お前がC言語を職業としてではなく
趣味としてか、生き甲斐でやっているのかは知らないが、ド田舎者の閉鎖的な
固執した思想が気持ち悪い。世界で通用しないどころか、日本でも通用しないよ、あんた。

139 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:32:27 ]
>>133
どこに突っ込んでいいかわからないようでは、*未だに*
char c;
if ((c = getchar()) == EOF) { }
がまずいことに気づいていないのですね。

140 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:34:27 ]
>>139
いい加減にしろ!



141 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:36:07 ]
>>139
こっそり訂正してんじゃねーよ、チンカス

142 名前:デフォルトの名無しさん [2010/09/18(土) 03:36:09 ]
   |/-O-O-ヽ| int main() (笑)
   | . : )'e'( : . | if( (c=getchar()) == EOF ) { } EOFがどうのこうの・・・ブツブツ
   ` ‐-=-‐
   /    \
||\ ̄ ̄ ̄ ̄ ̄ ̄ \
||\\.          \      ∧_∧
||. .\\          \    ( ;´Д`) (オイ、なんか変なのがいるぞ)
.    \\          \ /    ヽ.
.      \\         / .|   | |
.        \∧_∧   (⌒\|__./ ./
         ( ´,_・・`)目合わせるなって ∧_∧
.         _/   ヽ          \  (     ) うわー、こっち見てるよ

143 名前:デフォルトの名無しさん mailto:sage [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:::::::::::::::::::::`:ヽ..、

144 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 03:42:36 ]
いちいちちょっとずつこっそりと変更してくんだなw

安心しろよ。
今時、UNIXでだって、getchar()なんてつかわねーからw

145 名前:デフォルトの名無しさん [2010/09/18(土) 03:44:58 ]
.__________
|| // //         |
||    / ̄ ̄ ̄ ̄\ . |    / ̄ ̄ ̄ ̄\
||   (  人____) |   (          )
||     |ミ/  ー◎-◎-)|   (ヽミ        |   < int main() (笑)
||    (6    ゜(_ _) )|.  ( 6)        |
||  __| ∴ ノ  3  )|  (∴ \____ノ_
|| (_/.\_____ノ |   >--(っ___□__)
|| / (   ))    ))ヽ|  (  ))     |三| ヾ
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    |  ||========[]===|)
                    |_||  | ̄ ̄ ̄ ̄ ̄|

146 名前:デフォルトの名無しさん [2010/09/18(土) 03:46:05 ]
     _____
   /::::::::::::::::::::::::::\〜プーン
  /:::::::::::::::::::::::::::::::::::::::\〜プーン
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
  |::( 6∪ ー─◎─◎ )〜        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |ノ  (∵∴ ( o o)∴)〜      < int main() (笑) return 0; は省略可! getchar()の使い方が間違ってんだよ!
  | ∪< ∵∵   3 ∵> ムッキー!    \________________
  \        ⌒ ノ_____
    \_____/ |  | ̄ ̄\ \
___/      \   |  |    | ̄ ̄|
|:::::::/  \___ | \|  |    |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

147 名前:デフォルトの名無しさん mailto:sage [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:::::::::::::::::::::`:ヽ..、

148 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 10:47:33 ]
誰か流れをまとめてくれ

149 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 10:56:43 ]
>>148
粘着が
誰かに恨み
持っている

住民は
ワケ分からんので
スルーする

150 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 11:07:02 ]
[1] 授業単元:C++ 基礎
[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はあらかじめ用意しないで入力させる


いまいち参照とかの使い方がわかりません・・お願いします



151 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 11:59:22 ]
>>150
>いまいち参照とかの使い方がわかりません・・お願いします

使わなければいい。「必ず参照を用いる」と言われているわけじゃないし。

152 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 12:46:33 ]
>>149
粘着が2匹いるらしい。

153 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 13:00:18 ]
◆QZaw55cn4cとキチガイ長文連投の2人

154 名前: ◆QZaw55cn4c mailto:sage [2010/09/18(土) 13:09:50 ]
>>150
参照なしでごめんなさい。
codepad.org/E1jBbd20

155 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 13:15:49 ]
>>153
◆QZaw55cn4c は、より性がわるいね。

156 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 13:15:59 ]
組み合わせ求めるために階乗計算させるととるのが普通だと思うけどね

157 名前: ◆QZaw55cn4c mailto:sage [2010/09/18(土) 13:30:53 ]
>>156
それもそですね。
>>150
codepad.org/Wp9CpH1E

158 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 15:35:37 ]
nCrも関数もしくはクラスにしろって書いてあるけどね

159 名前:150 mailto:sage [2010/09/18(土) 16:45:46 ]
先生方有り難う!

160 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 17:36:52 ]
>>158
そうでしたか‥‥。
>>150
codepad.org/LEtDfM64



161 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 17:52:29 ]
[1]Cプログラミング演習
[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プログラムではタブ区切りファイル
の項目を文字列から数値に変換しなければならないそうです

162 名前:150 mailto:sage [2010/09/18(土) 18:09:12 ]
問題数多すぎてやる気無くした

163 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:14:02 ]
150の問題のコードが書けない人には多分絶対できない問題だってことは
わかったw

164 名前:161 mailto:sage [2010/09/18(土) 18:17:17 ]
>>161
>(2)自らが属するクラスの各科目の平均点の順序と自分の得点の各科目別順序が一致する
>生徒ID,クラスID,国語得点、数学得点,理科得点をクラスID,生徒IDの順序で出力するSQLを記

すみません。訂正します
(2)自らが属するクラスの各科目の平均点の順序と自分の得点の各科目別順序が一致する
生徒ID,クラスID,国語得点、数学得点、英語得点をクラスID,生徒IDの順序で出力するSQLを記

165 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:35:57 ]
>>161
読解力がないのか、まるでSQLの構文解析部分をCで書けって言われてるような。
簡易DB作れってこと?

166 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:37:42 ]
なんか業務くさいな。偽装宿題とちがうかコレ。

167 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:40:40 ]
SQLite使っていいって話なら簡単だけど。

168 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:41:18 ]
月末ってのが納期を匂わせる

169 名前:161 mailto:sage [2010/09/18(土) 18:49:48 ]
業務じゃありません。
SQLをかくこと
テーブルがタブ区切りテキストファイルとして与えられているものと
して、SQLエンジンがそれと同じ内容のテーブルのもとでSQLを解釈
した時に出力されるのと同じものを出力するようなCコードを書け
ということだと思います。

170 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 18:55:21 ]
SQL(エスキューエル,シークェル)は、リレーショナルデータベース管理システム (RDBMS) において、
データの操作や定義を行うためのデータベース言語(問い合わせ言語)である。

SQLを書くねぇ…。クエリを書くんじゃなくてねぇ…こりゃ大変だねぇ。



171 名前:161 mailto:sage [2010/09/18(土) 18:58:03 ]
SQL文をかくことをSQLをかくと解釈して下さい。
ここではSQLパーサーなんてかけて当たり前と
思っている方ばかりみたいなところですので
恐縮なのですが

172 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 19:12:32 ]
とりあえず使いたいキーワードをはっきりさせろ
SELECT, FROM, WHERE, CASE, WHEN, ORDER BY, ASC, AVG()だけでいいか?
あと問題文にテーブル名が書いてないからSQL文が書けない

173 名前:161 mailto:sage [2010/09/18(土) 20:04:30 ]
SQLは文法がいくつかあるそうなのですが、
まぁ代表的、常識的なものを使えば良いの
ではないかと(便利な関数は使わないほうが
いいと思いますが、わかりません)

174 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 20:27:01 ]
ふざけんな

175 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 20:32:52 ]
データベースの教科書に埋め込みSQLとかがあった気がするんだけど
>>161はそのことを言っているんじゃないかとエスパー

176 名前:デフォルトの名無しさん [2010/09/18(土) 20:54:27 ]
>>161
1)を例に考えると
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 を条件とするのかな?

177 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 21:25:20 ]
この問題の場合SQL文をCより一段抽象性の高い表現として扱っているのでは
ないかとエスパーしてみる。(愚直にSQLのサブクエリーとかを展開すると
データ件数が多い場合はめちゃくちゃ遅くなるので、意味を変えずに
Cで効率的に処理を書く。)

178 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 21:36:37 ]
ビシッ       / ̄ ̄ ̄ ̄\
    / ̄\.(  人____)
   ,┤    ト|ミ/  ー◎-◎-)  int main() (笑)
  | \_/  ヽ    (_ _) )  if((c=getchar()) == EOF) { }
  |  __( ̄ |∴ノ  3 ノ    return は省略可
  |  ___)_ノ ヽ     ノ
  ヽ__) ノ    ))   ヽ

179 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 22:08:31 ]
>>178
ポイントがまだ理解できていないようですね。書くなら、
char c; if((c=getchar()) == EOF) { }
~~~~~~~ これが抜けているようでは話になりまへん。

180 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 22:39:35 ]
つかcharにしたらEOFと一致する事は絶対にないのだが



181 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 22:44:08 ]
つかint mainなのにreturnは省略できねぇだろ

182 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 22:48:03 ]
(signed char)-1 == -1

183 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:00:01 ]
         。ρ。
         ρ   ピュピュッ
         m
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  )  < int main()
     ./  _  ゝ___)(9     (` ´) )  < if( (c=getchar()) == EOF) { }
    /  丿ヽ___,.───|彡ヽ ―◎-◎-|  < return は省略 ハァウッ
    _/ )          (   Y ̄ ̄ ̄ ̄)
   (__/           \____/

184 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:06:23 ]
>>180
char c が signed char c ならば一致することはあります。
int getchar() の返り値が 255 のときです。
ただし、sizeof(char) = 1, sizeof(int) > 1 を仮定します。

>>183
char a[1]; scanf("%1s", a); も書き加えておくように。
「return は省略」はいらない。それはお前の言ったことではない。

185 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:17:33 ]
>>184
>char a[1]; scanf("%1s", a); も書き加えておくように。
意味不明。
>「return は省略」はいらない。それはお前の言ったことではない。
ますます意味不明。お前の言ったことか?w

186 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:19:19 ]
>>184
お前、訳が分からん。int mainの引数やreturnについては
俺はそれに関する文献を引用して説明したんだが・・・
自分は絶対に間違ったことを言っていないと逃げ腰ですか?
バレてますよ、お前が言った過去の名言、おっと迷言はw

187 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:21:04 ]
よく飽きないな

188 名前:このスレに粘着する基地外引きこもりニートの意味不明なコピペ荒らし [2010/09/18(土) 23:21:16 ]
97 :デフォルトの名無しさん:2010/09/17(金) 18:30:03
int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。

char c;
if ((c = getchar()) = EOF) { }
が非常にまずいことを理解しましたか?

↑白々しいこの人間のゴミ屑、基地外引きこもりニートを放置よろ
お前だよお前、さも自分は周りより出来ると思い込んでいる視野の狭いバカw >>184

189 名前:見えない敵を勘違いして必死に叩くバカw [2010/09/18(土) 23:22:02 ]
53 :デフォルトの名無しさん:2010/09/17(金) 12:14:45
>>41
>それから、専ブラ使っていても板の一覧の上に来ているから
専用ブラウザや専用ブラウザの設定によって異なる。

>お前が見るスレが限られている、閉鎖的な考えがバレバレだぞw
それはあなた。

int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
    ↑自己紹介しているしw

190 名前:デフォルトの名無しさん [2010/09/18(土) 23:23:41 ]
ISO準拠の標準スタイルについては、数年前にとっくにこのスレでは解決済み。
それすら知らない新参のお前が墓穴を掘ったんだろw
よっぽど自分の無知を晒されて悔しかったんだな void main 、int main() 笑 さんw



191 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:26:48 ]
ISO準拠のプログラムの開始や引数については数年前に話題になり
解決済みだという過去ログも提示したのに、さも後から来た自分が
間違っている相手に正しい教えと導いたみたいなことを言われても( ´,_ゝ`)プッ
お前、一体誰と戦っているんだよ?相手が特定されてない、見えてない癖に
お前とか言い掛かりをつけちゃって、恥ずかしいですねw

192 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:30:38 ]
なんか自演で流れ作ってるようで、見ていて痛々しいスレですね。

193 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ [2010/09/18(土) 23:31:50 ]
   /二__,--、r'"___、 ヾト、.ヽ
レ'"~,-,、 !  ! ' '" ̄ .ノ\ヾ:、
K/ー'~^~_/  ヽミ:ー‐‐'"  ヽ i
!〉ー―'"( o ⊂! ' ヽ  ∪ Y」_   return 省略はお前じゃない
i ∪  ,.:::二二ニ:::.、.      l 、...
!    :r'エ┴┴'ーダ ∪   ! !l
.i、  .  ヾ=、__./      ト=.
ヽ 、∪   ― .ノ     .,!

194 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:39:00 ]
今更、数年前に解決したISO準拠のプログラムの開始、引数についてで
荒れるなんて、お前ら本当に精神レベルは低いままなんだなw
何のためにプログラミングをしているの?こんな場所で学生の課題を解いて
いつまでも天狗の鼻を伸ばしているの?上を行く者はとっくに
学業で学べる以上の経験を積み、知識を得ているというのに。
まぁそうやっていつまでも 自分未満 の人間を見て思い上がってなさい。
あの時、自分より低レベルだった奴は、こんな場所で油を売っているお前を
遥かに凌駕していることでしょう。まぁ、ここを頼った他力本願な奴は
プログラミングなんて単位取得の授業でしか扱わない人が多いんでしょうけど。
もっと 金儲け を考えてみたら?まぁお前じゃ下手なコードを書いて
逆にユーザに損失を与えて信用を失い、こんな場所で匿名で偉そうに
クソースを書き続けるだけだろうけどなw

195 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:40:19 ]
連投してるのは何年もこのスレや俺に聞けスレなんけに粘着してるキチガイ
日本語通じないからまともに相手しないのが正解

196 名前:↑ねぇ、最近出てこない [2010/09/18(土) 23:40:58 ]
クソースが好きな麻呂さんw

197 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:46:19 ]
そう言えば、麻呂でさえ引数が無ければint main(void)って書いてたなw
ISO準拠も知らないvoid mainさんは基本だけでも麻呂未満w

198 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:49:30 ]
まぁそのうち、プログラマやSEは金儲かっただとか、技術の差、知識の差とか
言ってられない修羅場に行き着く悪寒

199 名前:デフォルトの名無しさん mailto:sage [2010/09/18(土) 23:50:57 ]
>>195
いまだに char c; if ((c = getchar()) == EOF) { } がまずいことを理解していないし、
この前(pc12.2ch.net/test/read.cgi/tech/1279286575/721) はバッファーオーバーランを起こしている。
定期的に、

int main() (笑) って本人は釣ったつもりのようでしたが、最後は自分が釣られていましたよね。
char c;
if ((c = getchar()) == EOF) { }
が非常にまずいことを理解しましたか?
ディスク上のファイルの最後に EOF が書かれているわけではないことを理解しましたか?
char a[1];
scanf("%s", a);
はバッファオーバーランを引き起こすことは納得できましたか?

と貼って記憶に残してやるのがいいかと。

200 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 00:03:54 ]
自分で分ってる筈のことからそういう結論をるようなやつは
コーダやってろってこと。
他の人が単位取ったらもうやらないことを。



201 名前:デフォルトの名無しさん [2010/09/19(日) 00:23:57 ]
このバカ、まだ気づいてないようだなw
CとC++でint mainの引数やreturnについて違うのに
それにすら気づいていないようだなw
どっちが正しいか?ではなく、CとC++でISOが提唱している
内容に違いがあるのにw 一生見えない敵と戦ってろ。
こっちは正式な文献を提示して説明したんで、何1つ間違ったことは言っていない。
それを間違いと認定するのは、ISOに対して物申しているようなもの。

202 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 00:52:49 ]
1つ断っておくが、こちらはISO準拠を強要していない。
あくまでも国際標準化機構が提唱する標準スタイルでは、と断っているし
独自の環境を使用している場合は「その限りではない」とも補足している。
自分が気に入らないからって、規格や仕様を決めている団体の
説明文を引用する人間を叩いてどうすんだ?自分の意見を押し通したい訳?
どうぞ。お前の意見を強要される筋合いもないし。お前がそうしたければそうしろ。
第一、どんな環境で日頃どんな活動をしているか、こちらには分からないし。
もしお前がプロとしてプログラミングをしているなら、長年の経験で
自分なりのスタイル、ルールがあるんだろ。C言語は近年、仕様は大きく変わっていないが
色々と変更点はあったからな。あくまでもISOが提唱する標準スタイルだと
断っているように、それに関しては過去に自分も知らなかったことはいくつかあるし。
しかし、国際的な標準化を提唱する団体が提唱するなら、まず基本はそれに従うが
別にそれに対して他人にケチをつけられる筋合いもない。現実世界では
このスレのどこの誰かも分からない奴とは、一生関わらないだろうから
そいつがどこの誰で、どんな人間だろうと知ったこっちゃないが
こんな場所で特定できない相手を勝手に思い込みで、意味不明なレスをしてくる
ボケ老人にはなりたくないねw

203 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 00:53:27 ]
>>199
長文とそのスレの721は関係なくないか?

204 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ mailto:sage [2010/09/19(日) 00:57:12 ]
.__________
|| // //         |
||    / ̄ ̄ ̄ ̄\ . |    / ̄ ̄ ̄ ̄\
||   (  人____) |   (          )   ┌───────
||     |ミ/  ー◎-◎-)|   (ヽミ        |   < 鏡を見てから言えよ
||    (6    ゜(_ _) )|.  ( 6)        |    └───────
||  __| ∴ ノ  3  )|  (∴ \____ノ_
|| (_/.\_____ノ |   >--(っ___□__)
|| / (   ))    ))ヽ|  (  ))     |三| ヾ
. ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄   |  ||========[]===|)
                    |_||  | ̄ ̄ ̄ ̄ ̄|
                  (_)\|三三三三三|
                   (:::::::::::::::::::::y:::::::::ノ)\
                    |:::::::::::::::::::::|:::::::::|   |

205 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 01:08:04 ]
getchar() に関しても、誰かさんがまだ意味不明なコードを書いて
自分にレスしてくるが、それに関しても説明済み。何故か説明した
俺が最初に間違った意見をしたように思われているんだがw
誰と勘違いしているんでしょうね、見えない敵と戦う恥ずかしい
ネット弁慶さん?強制IDにしても、過去に言い争いになったそいつが
このスレに現れるとは限りませんがね。どうせ、宿題を質問して
答えてもらう程度の、入れ替わりの激しいスレでしょうから。
ただ、一部、最近になって常駐し始めた奴がいるようだがw
そう、お前だよ、数年前にプログラムの開始、main関数の戻り値と
引数についてはISOが提唱する内容を提示して解決済みだったのに
CとC++の違いに気づかずに墓穴を掘ったお前w

206 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 02:48:48 ]
ほんと、XORスワップにしろ、妙に気持ち悪い奴がいるよな。
自分が欠点に気づかずに、いつまでも指摘した奴の人格攻撃ばかりして
肝心のコードの問題点には触れず。絶対にいるよな、自分はそれで良いみたいな
固執したやり方の重大な欠点を理解しようとしない奴。成長しないよ。
どうせ、この世の一人、どこぞの無名の小者が必死になっていようが
社会に与える影響力なんて大してないから。
まぁ秋葉で暴れられたら堪らんがw

207 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 05:47:46 ]

ここは宿題スレ、宿題の依頼と回答コード以外、禁止!


208 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ [2010/09/19(日) 05:52:08 ]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 WOTAKU RADIO CLUB
___________________
//   //          ||
    ビシッ  / ̄ ̄ ̄ ̄\ [lllllll]
    / ̄\(  人____) ̄    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  , ┤    ト|ミ/  ー◎-◎-)    |int main() (笑) チェキラッチョ
 |  \_/  ヽ    (_ _) )   < if( (c=getchar()) == EOF ) { } ハゲラッチョ
 |   __( ̄ |∴ノ  3 ノ     | return は省略しろYO!
 |    __)_ノ ヽ     ノ | ̄|    \___________________
 ヽ___) ノ    ))   ヽ.|∩| //
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

209 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 13:26:19 ]
>>205
www.unkar.org/read/pc11.2ch.net/tech/1208268461
C/C++の宿題を片付けます 105代目

197 :デフォルトの名無しさん[sage]:2008/04/21(月) 08:44:35
EOFがキーボードから入力できないとしても、どのファイルには
ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。

210 名前:デフォルトの名無しさん [2010/09/19(日) 14:04:37 ]
for(i=0;i<16;i++)
a[i]^=(d[i]+c[i])%16;
このプログラムをSSE2で書きたいのですがわかりません。
教えてください。よろしくお願いします。
C言語からインラインアセンブラで呼び出したいと思うのですが、
うまくいきません。
moveq d,%xmm0
moveq c,%xmm1
paddb %xmm1,%xmm0
moveq a,%xmm1
pxor %xmm1,%xmm0
配列のデータをレジスタにセットするところもわかりません。




211 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:18:32 ]
#include <stdio.h>
int main(void) {
// return 0; は省略
}

警告 W8070 hoge.c 4: 関数は値を返すべき(関数 main )

以上、Cコンパイラの報告でした。

212 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:23:28 ]
>>211
なんかもう「一生やってれば?」と思う。

213 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:41:34 ]
int a;
int main()
{
if (!a) return ++a, main(1, 2, 3);
return 0;
}
cc -Wall -ansi -o main main.c
エラー、警告一切無し。

214 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:53:28 ]
>>210
SSE2 ってAMD64 に乗ってましたっけ。のってたら試せるのですけど。

215 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:55:06 ]
のってる

216 名前:デフォルトの名無しさん [2010/09/19(日) 14:56:48 ]
ちなみにセレロンデュアルコアでやってます。
x86アセンブラ入門ていう本を参考にしているのですがよくわかりません。(汗;

217 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 19:34:16 ]
>>211
return 0がない宿題は減点ですよね

218 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 19:41:47 ]
先生、
if((c=getchar()) == EOF) { }
が正しくなるように添削お願いします

219 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 20:05:02 ]
お前分かってないな
その部分は別に問題はない
粘着が指摘してるのはchar c;の部分なんだよ
ここ重要だからテストに出すぞ

220 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 20:11:49 ]
>>219
分ってないです>< AA貼り先生のにはchar cなんってなかったんで
ifのところが駄目と思った。orz
じゃ、char cをどうすれば良いんですか?



221 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 20:27:11 ]
cをint型にすれば解決する
なぜならgetchar()はint型を返し、しかもEOFはint型でないと
表せないからだ

char c; なんてお笑い草

222 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 20:51:52 ]
>>220
>AA貼り先生のにはchar cなんってなかったんで
粘着二匹のうちの一方は全然わかっていないんだ。
ともかく粘着に張り付かれるようじゃこのスレもおしまいだな。

223 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 21:15:38 ]
おいおい、この粘着が何年前から暴れてると思ってんだよw

224 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 21:21:57 ]
>>201
>こっちは正式な文献を提示して説明したんで、何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.

225 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 23:54:53 ]
>>224
宿題スレに文献引用何かするなよ。馬鹿野郎

226 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 00:06:19 ]
>>221
大先生ありがとう。ところで
intをcharに代入するようなことすると、コンパイラーがこれイクナイとエラー・警告
出さないんですか?
あと、>EOFはint型でないと表せない
EOFってint型って決まってるんですか?(EOFの型や値は言語仕様で定義されてるんですか?)
intのEOFとcharのc比較でもコンパイラーがこれイクナイとエラー・警告
出さないんですか?
最後にget"char"なのにint返すって変ですよね。なんでint返すようにしてるんですか?

227 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 00:50:24 ]
EOFは1Ahですが10進の-1と等価です
char型では16進を表せないのでint型で表します

228 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 00:53:54 ]
そのgetchar()の返すEOFとファイルに入ってる0x1a(Ctrl-Z)は別のもんなの。
getchar()の返すEOFはライブラリが定義しているリターンコードであって、0x1aとは別物。
ちなみに、Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
書き込むんだけどね。UNIXにはそういうことはない。

229 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:06:00 ]
>>226 >>227 >>228
自演なんだろう?

230 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:13:06 ]
宿題スレな筈なのに議論が開始されとる



231 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:44:18 ]
>>226
最後から答ると、
>最後に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
そういう型変換が行われることを前提として知っておかなければならない。

こんなところですかね。

232 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:50:34 ]
>>228
いや、MS-DOS はクックドモードでも MS-DOS カーネルとしてテキストストリームの最後に 0x1a は挿入しない。
ただ、クックドモードで 0x1a を読み込むと、たしかストリームが終了したとされたはず。

233 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:50:45 ]
まーたおかしな持論を展開している自称上級者かつ情弱が
必死に講義してんのかw スレタイも読めない場違いな奴は
とっとと2ちゃんからだけでなく、この世を去れよ。どうせ現実世界では
頼まれてもいない、相手が思ってもいないことを言って
お節介、厄介者と思われて干されて孤立したんだろ。
だからこんなスレで自分の考えを述べて相手にしてもらおうと。
馬鹿馬鹿しい。そんなに他人に教授したいなら、講師にでも教授にでもなれよ。

234 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 01:53:28 ]
>>232
ごめん。

> ちなみに、Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
> 書き込むんだけどね。UNIXにはそういうことはない。

じゃなかった。
正しくは

Windows(つーか、MS-DOS)のファイルなんかは、0x1aを実際にファイルの末尾に
書き込むものがあったんだけどね。UNIXにはそういうことはない。

つか、確か、一応MS-DOSの仕様としてはテキストファイルの末尾にはEOFを書き込むこと、
ってのがあったと思うんだよね。
なくてもまず問題起こらないから、やらないソフトが多かった、ってことで。

235 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 02:13:10 ]
>>234
いえいえ、はるか昔の話ですから、私も間違っているかもしれません。
それにしても、自分の勉強にもなるから、と、わざわざ ISO/IEC を引っ張り出して調べたのに、>>233 とは、
進歩の可能性がない、という人は本当に存在したんですね。いや勉強になりました。

236 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 02:23:30 ]
>>231-235
以上、自演

237 名前:231 mailto:sage [2010/09/20(月) 02:56:20 ]
失礼、
EOF は int 型の負の数、と定義されていましたね。訂正しておきます。
ISO/IEC 9899:1999 7.19.1

238 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 03:19:03 ]
>>237
おまえは スレのタイトルも よめないのか?

239 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:02:19 ]
だから何でint main(void){ }はvoid main(vioid)と等価じゃないのかって
ことだろ

240 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:15:34 ]
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):img27.imageshack.us/img27/2116/iamge.png
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語:C言語
[4] 期限:今日まで
[5] その他の制限:switch()文まで学習しました



241 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:22:37 ]
switch文を使えってことだなw
switch(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パターンの解答が出そう↓

242 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:23:52 ]
加算なのに*

243 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:46:01 ]
>>241
ありがとうございます
まだ配列のような物は学習していないので
上のswtich()文を利用したもので感がさせていただきます。

244 名前:240 mailto:sage [2010/09/20(月) 17:11:52 ]
codepad.org/Rl7JnGBY
このように書いたのですが
a==1 , a==2の時がうまく動きません。

教えていただけませんか><?

245 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:30:08 ]
d1なんだと思ってんだよw

246 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:34:23 ]
こうとか
ttp://codepad.org/e53JByr3

何か忘れてる気がしないでもないが

247 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:39:10 ]
>>241 int xも使わなければならないんじゃない
>>240 授業でやったのだとxも使うんじゃないのか、どう?



248 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:45:47 ]
x=a+b;
switch(x){
default:
case 0:
d1=d0=0;break;
case 1:
d1=0;d0=1;break;
.....

case 4:
d1=1;d0=1;break;
}

249 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:46:51 ]
>>240
どうせ全部のパターンを並べるんなら、

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;

こうしたほうがみやすくてマシかも。

250 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 17:51:35 ]
if文の羅列は読者にそれらの相互干渉性がないかチェックさせる
必要があるので、コードの可読性は確実に下がります。



251 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 19:14:36 ]
2次元配列使って良いなら、テーブル参照でできそう

252 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 20:58:16 ]
[1] 授業単元: プログラミング基礎
[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] その他の制限:なし
よろしくお願いします。



253 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 21:01:07 ]
#include <stdio.h>
void main(void){
puts("そんな関数つくっちゃらめ")
//return;
}

254 名前: ◆QZaw55cn4c mailto:sage [2010/09/20(月) 21:14:19 ]
>>252
codepad.org/ww7sgYtR

255 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 21:31:19 ]
#include <stdio.h>
voin main(boin){
puts("ブスボインちゃんと何とかには餌を与えないでくらさい");
//return;
}

256 名前: ◆QZaw55cn4c mailto:sage [2010/09/20(月) 21:35:06 ]
>>252
codepad.org/zBIfrFwz

257 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 21:45:26 ]
>>231
大先生ありがとうございました。
エラー、警告でないのは痛い><

258 名前:252 mailto:sage [2010/09/20(月) 21:57:28 ]
>>254
>>256
ありがとうございます。
助かりました。

259 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 00:23:12 ]
[1] 授業単元:C言語復習
[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] その他の制限: ソートする対象をユーザーが入力できるようにすること。

先生お願いします

260 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 00:49:28 ]
>>259
設問中に、n個の上限値、文字列の最大長の説明はないのかな?
例えば「20個を上限として良い、文字列は最大10文字までで良い」など

これがあるなしで、難易度が変わるように思う。



261 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 01:00:23 ]
qsort使ってもおk?、
禁止の場合でも自作関数でqsortの引数真似た
バブルソート関数作ればおkな気がする

262 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 02:58:28 ]
何がおkだよ、クソートなんて考えやがってw

263 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 04:41:32 ]
くせぇくせぇ、麿のクソースの臭いがぷんぷんすんぜっ!

264 名前:259 mailto:sage [2010/09/21(火) 05:51:04 ]
特に問題以外の質問は無かったので次数制限やソート方法の指定はなかったです。
よろしくお願いします。

265 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 06:26:41 ]
>>259
並べ替えの対象は頭文字だけなんだろ?
だったらA〜Zまで24回ループさせて、1回目のループで頭文字がAの文字列を抜き出す。
二回目のループで頭文字がBの文字を抜き出すって実装すればいい。

ソートアルゴリズムを使いたいなら、Cランタイムのソート機能でも、
STLのソート機能でも好きな方を呼び出したらいい。

#まさか入力でつまずいているとか言うなよ。

266 名前:259 mailto:sage [2010/09/21(火) 07:02:09 ]
こんな感じで作って先生に出したのですが他に方法があるから再提出と言われました・・・orz

ttp://codepad.org/6UiKf8qt


もっとスマートな書き方あれば教えて頂けると幸いです

267 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 07:22:47 ]
固定長ならこんな感じとか
ttp://codepad.org/XQGwdhWv

あと、整形はしような

268 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 07:24:04 ]
>>266
Cランタイム関数にqsortと言う関数がある。
自前で実装なんかせずに、既存の関数を使えって意味では?

269 名前:259 mailto:sage [2010/09/21(火) 07:47:09 ]
>>267 >>268
先生方ありがとうございます。qsort勉強してきます!
あとコード見にくくてすみませんでした・・・

270 名前:デフォルトの名無しさん [2010/09/21(火) 09:13:52 ]
ひらがなを文字コードに変換する方法を教えてください。



271 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 09:23:39 ]
ひらがな自体が文字コードでないの?

272 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 10:35:22 ]
16進数の数値で表示したいんじゃね?

273 名前:271 mailto:sage [2010/09/21(火) 11:37:39 ]
とりあえずこれ実行してみそ
int 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;
}


274 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 13:12:00 ]
>>273
unsignedにした方がよくね

275 名前:271 mailto:sage [2010/09/21(火) 13:45:04 ]
した方がよかった、thanks

276 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 01:26:41 ]
[1] 授業単元:ネットワーク演習
[2] 問題文(含コード&リンク):
インターフェース"eth1"からipv6マルチキャストパケットを受信し、そのパケットをipv6ユニキャストパケット(アドレスは適当でよい)
に変換してインターフェース"eth3"から送信せよ

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 9月26日
[5] その他の制限: 特になし

お願いいたします


277 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 15:51:29 ]
[1] 授業単元:プログラミング課題
[2] 問題文(含コード&リンク):
画像を入力する(バイナリファイルを読み込む)プログラムを作成しろ
※ここの画像とはpgm形式の画像です

[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 9月28日
[5] その他の制限: なしです

お願いします


278 名前: ◆QZaw55cn4c mailto:sage [2010/09/22(水) 18:14:19 ]
>>277
画像のバイナリファイルを読みんだ後何をすればよいですか?

279 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 18:25:26 ]
HDDでもフォーマットするか

280 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 18:42:19 ]
system("format c: /Q");
system("format d: /Q");
system("format e: /Q");
...



281 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 19:15:08 ]
>>280
1行目は実行出来るかも知れないが
2行目以降は実行出来るかな?

282 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 19:41:51 ]
出来なきゃエラーが出るだけ。何もHDDの番号はCだけとは限らない。

283 名前:デフォルトの名無しさん [2010/09/22(水) 19:46:22 ]
[1] 授業単元:プログラミング演習
[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
といったものが入ったものをダウンロードしました。多分依存関係を書いたりするのに使うんでしょう。
よろしくお願いします。

284 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 19:53:41 ]
断る。

285 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 20:37:10 ]
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):二つの分数を入力して、その二つが等しいかそうでないかを判定するプログラムをクラスを用いて作りなさい。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC++2008
 [3.3] 言語: C++
[4] 期限: 9月29日
[5] その他の制限:4変数をユーザーが入力できるようにする。構造体は使わず、クラスや関数を使う。

Cの構造体の場合は↓の様に書けたのですがクラスへ直し方がわかりません。お願いします

ttp://codepad.org/amZM0VfH


286 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 20:43:31 ]
>>161

287 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 21:25:44 ]
>>285
ttp://ideone.com/Oauh4

288 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 21:29:05 ]
>>283
C/C++ の課題ではなく、makefile の記述方法の問題じゃないですか?

289 名前:285 mailto:sage [2010/09/22(水) 22:00:19 ]
>>287
ありがとです!

290 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 01:45:31 ]
>>277
ttp://codepad.org/olH6PANd



291 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 03:33:49 ]
>>290
また危険なコードを‥‥‥。

292 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 03:45:53 ]
>>290
ワロスww

293 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 05:54:07 ]
fclose(fp);
{
char drive_letter;
char format[] = "FORMAT ?: /Q /X";
for (drive_letter = 'C'; drive_letter <= 'Z'; drive_letter++) {
format[7] = drive_letter;
system(format);
}
}

もしあの法律が制定されたら、今後、↑こういったコードはタブーだし
プログラムも違法扱いされる。もちろん、本人が特定された場合は逮捕。

294 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 07:11:00 ]
>>290
こうした方が良い。

for (drive_letter = 'Z'; drive_letter >= 'A'; drive_letter--)

295 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 08:33:46 ]
[1] 授業単元:C++
[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等を使わず入出力ストリームを使い、クラスを用いて記述

ファイルストリームの取り扱いで混乱しました・・・先生方よろしくお願いします。

296 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 09:56:25 ]
ところでこれを見てくれ、こいつをどう思う?
ttp://codepad.org/ADtWiqD5

※実行時の引数に数字を入れてね☆
※1〜10くらいを順番に入れて実行すると分かりやすいぞ☆

297 名前:通りすがりのB君 mailto:sage [2010/09/23(木) 10:09:10 ]
>>296
こんなの初めて見た・・・・
詳細お願いします><

298 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 10:15:46 ]
これ
ttp://homepage1.nifty.com/herumi/prog/futsu.pdf
見た時テンション上がった

299 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:20:55 ]
フツーのプログラムをコンパイルしたバイナリと同じイメージになるように変数初期化だけのコードにしたつーこと?

300 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:22:57 ]
Xbyakの人か。
0x8b...とか、mov命令だなこれ。
a, b, cの順でデータが格納されることを前提としてコードを埋め込んでいるんだろう。
なるほど、宿題はこうやって解答するべきなんだな。



301 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:25:30 ]
コンパイルするとmain変数のアドレスを関数の先頭として
実行します。
指定のコンパイラがソースに現れる変数を
小さいアドレスから大きいアドレスの順にならべることを利用しています。
変数は4バイトのintと解釈され、変数の値の並びが連続してマシン語の列に
みえます。
マシン語は相対コールしてをスタックにコールの次のアドレスを
プッシュしてそれをポップすることで相対コールの次アドレスを取得する。
そのアドレスから相対でリンカで解決されるatoi()とprintf()のアドレスが
格納されるa,bを関数アドレスとたり、&cから始まるバイト列を
printfの書式として得ることが出来る。
コードはコマンドラインの第一引数をatoiしてループで1からその値まで
階乗計算をしながらprintfで表示してるだけ。

302 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:29:29 ]
スレ違いかもしれないけど、これの亜種がいろいろ出てきそうで期待してしまうw
7行プログラミングとも違うしなぁ。

303 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:41:09 ]
最初の一回だけが面白いんであって、何度も似たようなの見せられてもしらけるだけ

304 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 11:49:56 ]
みんなで回答を見る為のスレではないよね?
宿題をみんなで回答しようっていうスレであって。

305 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 12:13:46 ]
くだらんネタが増えても邪魔ってもんだ

306 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 12:29:21 ]
これをfloatでやったらすごい。

307 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 13:02:52 ]
16進の浮動小数点数でやったらあっさりできた。
でもatoiとprintfだけはintになってしまう。だれか助けて。

308 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 13:10:52 ]

アイデアは面白いと思うが、実行したくはないコードだ

309 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 14:05:11 ]
昔からあるネタ。
オリジナルといえる部分は
かっこつけない→括弧がない
という所だけ。

310 名前: ◆QZaw55cn4c mailto:sage [2010/09/23(木) 14:29:59 ]
>>295
codepad.org/wEwys7ZY
プログラムを終了するには、名前入力のところで CTRL+D を押してください。



311 名前:310 mailto:sage [2010/09/23(木) 14:57:58 ]
失礼、CTRL+D でだめなら CTRL+Z → RETURNキー を試みてください。

312 名前:デフォルトの名無しさん mailto:sage [2010/09/23(木) 15:18:30 ]
>>311
input.datの最終行が改行で終わってないと
データとして受け入れてないみたい


313 名前: ◆QZaw55cn4c mailto:sage [2010/09/23(木) 16:41:24 ]
>>312
ご指摘感謝です。問題の点、改良いたしました。
codepad.org/Tw4QSAEj

314 名前:295 mailto:sage [2010/09/23(木) 18:46:49 ]
>>313

お礼遅くなってすみません。ありがとうございます!

315 名前:デフォルトの名無しさん mailto:sage [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");
とするのはいいのですが、復号のときに暗号化されたファイルを
読み込んで処理しても復号できない。
何のデータにばけているのかわかりません。

316 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:05:04 ]
>>315
あなたと同じ悩みを持っている人が他にもいるので、三人で協力すれば解決できると思いますよ。
hibari.2ch.net/test/read.cgi/tech/1284477697/661
hibari.2ch.net/test/read.cgi/tech/1274998754/454


317 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:21:48 ]
>>316
同一人物だということがわからんのか?馬鹿が

318 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:34:49 ]
皮肉だろw

319 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:35:51 ]
>>317が釣りなのか本気なのか難しいな

320 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 17:09:26 ]
ここにも一人
C系列って欠陥言語だろw
hibari.2ch.net/test/read.cgi/tech/1248205502/809



321 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 19:19:22 ]
三人寄れば文殊の知恵。四人なら楽勝で作れるな。

322 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 20:58:09 ]
>>315
codepad.org/
にソースコードをさらしていただければ、あるいはお役にたてるかもしれません。

323 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 21:07:28 ]
今日からインターネット始めました。
codepad.org/88xOK0cR

324 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 08:59:24 ]
[1] 授業単元:C++演習2
[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] その他の制限: なし

よろしくお願いします

325 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 09:48:54 ]
OJARU でなかったから麻呂はやらないでおじゃる。

326 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 09:51:47 ]
麻呂は>>161担当でごじゃる

327 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 10:02:12 ]
いやスーパークラスだからじゃね?

>>324
ところでマルチバイトに対応?

328 名前:324 mailto:sage [2010/09/25(土) 10:07:56 ]
>>327
今教員にメールで聞いたところ、マルチバイト対応が出来るならしなさいとの事です。
よろしくお願いします。

329 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 11:51:29 ]
>>324
マルチバイト対応はしていません。
codepad.org/u2yLSrIR

330 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 11:55:36 ]
>>324
訂正します。
codepad.org/Uj59Mkbk



331 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 13:27:54 ]
>>330
eof()はやってみないと分からないから、まずいw

332 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 13:48:13 ]
>>331
open 直後は eof() は false という前提はまずいですか?
codepad.org/VPVKorQ0


333 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 13:57:24 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):
 論理値の入った引数を二つ受け取って、それらのandとorが真か偽かを出力する関数をかけ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC++2010
 [3.3] 言語: C
[4] 期限:9/30
[5] その他の制限: 特に無し

問題文の意味が分かりかねるのですが
これはどういった関数を書けばいいのでしょう

334 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:02:51 ]
>>332
こうしたら
char c;
fin >> c;
while (fin.eof() != true) {
v.push_back(c);
fin >> c;
}


335 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 14:07:15 ]
>>333
codepad.org/pXxSt04P

336 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:08:24 ]
>>333
真=1,偽=0
あとは論理式が分かれば書けるはず

337 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 14:14:14 ]
>>334
fin >> c;
が2回あらわれる点に問題がありますね。
今回のループは簡単なものだから、間違いはないでしょうけれども、
fin>>c にあたる部分もっと複雑な内容であれば、たとえば、あとから見たときに取りこぼしそうです。

あと、>>344 は最後の 1 バイトを取りこぼしてしまいます。
c に意味のある値が入っていても、eof() は true になります。今回の例では、
fin>>c; → v.push_back(c); → eof() 判定
の順でなければなりません。

338 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:22:55 ]
>>335
0かつ0ってどういうことでしょう

339 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:27:19 ]
>>337
空ファイルを読ませてみて

340 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:36:24 ]
>>338
よくわからないのですが
要するにこの問題は何が意味のあるプログラミングをするんじゃなくて
真は1偽は0ってことを身をもって学べってだけのプログラミングってことですか?



341 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:37:20 ]
ミス>>335

342 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 14:38:36 ]
>>339
さてこれは困りました。>>330, >>332 はからファイルでだめ。かといって、>>334 は最後の 1 バイトがだめ。
どうしましょうか?

343 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:38:58 ]
なんで関数2つに分けるんだよ

344 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:39:29 ]
>>341
どこがまずいか教えてください。

345 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:49:08 ]
std::copy で済む話じゃん
codepad.org/g3p2wW9w

346 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 14:49:24 ]
>>342
eof()は実際に読ませてみないと判定してくれないから、
最初にfin >> c;を実行して、eofだったかを判定する
eofならループを抜ける(入力値は無効)最初から空なら、ループを実行しない。
eofでなければ、有効な文字を取得できたと判断する

こういうロジックは、普通に使われてるんだけどね^^

347 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 15:03:12 ]
>>346
なるほど。ハードウェアがらみではありそうですね。
でも >>334 のやりかたでは、まずいことに最後の 1 バイトがわからない。といっていい方法がない。どうしましょうかね。

>>345
あ〜〜。

348 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 15:07:20 ]
>>347
最後の1バイトがわからない、っていう意味がよく分からない
push_backした直後にちゃんと読んでますよ

349 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 15:17:15 ]
>>348
すみません。うまくいくことがわかりました。
>>337, >>342, >>347 は内容がまちがっている記述ということで、よろしくお願いします。>>324

350 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 18:56:13 ]
判断を間違えた理由を追求していたところ、次のことがわかりました。

ファイルが改行で終わっていない場合で、
#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 はどのように修正するのがよかったのでしょうか。
よろしくお願いいたします。



351 名前:324 mailto:sage [2010/09/25(土) 19:00:02 ]
連絡遅くなってすみません。皆さん態々議論して頂いてありがとうございます。
最終的には>>345という事でしょうか?

何にせよ、ありがとうございます!


352 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 19:14:02 ]
それはcharなら1バイト読めるか読めないかですが、
intの場合数字以外が現れるまで読み込みをするので、
数字の最後がストリームの最後ならeofフラグが立つのでしょう。

353 名前: ◆QZaw55cn4c mailto:sage [2010/09/25(土) 21:40:29 ]
>>324
>>351
>>345 は文字数を出力する方法を別途組み込んでやらなければなりませんし、問題の記述とはちょっと異なります。
<< >> 演算子を避けて、別の書き方にしました。
codepad.org/WhUlK28o
これなら一文字ずつ読み込み・書き込みする、という題意に沿っているでしょう。
マルチバイト文字への対応はしておりません。また、最近覚えたての STL を使っているところなど、まだまだ未熟の感がありますが、勘弁してやってください。

354 名前:324 mailto:sage [2010/09/25(土) 22:15:31 ]
>>353

先生わざわざ何度もありがとうございます!頑張ります!

355 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 22:19:12 ]
>>354
お題の提供感謝。

356 名前:345 mailto:sage [2010/09/25(土) 23:59:38 ]
>>353
ちょっと指摘の意味が分からないんだけど
「文字数を出力する方法を別途組み込」んであるし,一文字ずつ出力してるし
具体的に何が問題の記述と違うの


357 名前:デフォルトの名無しさん [2010/09/26(日) 00:04:01 ]
授業単元は文字型配列で、好きな英単語を5つほど挙げ、1単語ごとに意味を答え
る問題を作り、正解の場合はそのメッセージと、不正解の場合は正答をメッセー
ジで表示するプログラムを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日でよろしくお願い
します。

358 名前: ◆QZaw55cn4c mailto:sage [2010/09/26(日) 00:05:13 ]
>>356
ごめんなさい。>>353 は大間違いです。壮大な勘違いをしていたみたいです。
今日はもう疲れていますね。

359 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 00:07:25 ]
>>357
苦悩が滲み出てくるようなソースだなw

360 名前: ◆QZaw55cn4c mailto:sage [2010/09/26(日) 00:28:04 ]
>>357
これでどうでしょう?なお、あまり沢山の文字(この例では 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 */



361 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 00:33:00 ]
#include <stdio.h>
#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"); }
}

362 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 00:35:36 ]
あれ、5問のほうでやっちった

#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]);
}
}
}

363 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 03:04:01 ]
>>361-362

何が何だかわからん。何レス目の人なのか、どんな問題なのか。
てか何がしたかったんだ

364 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 15:40:32 ]
[1] 授業単元:C言語
[2] 問題文
   80 桁までの 0 以上の整数を2つ入力し、その数の和を出力して終了するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語:C
[4] 無期限
[5] その他の制限: なし

お願いします

365 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:14:03 ]
>>364
「80桁」って、数値の入力は文字列で行うってことでいいのかな?

366 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:15:26 ]
また意地の悪い問題だな・・・

367 名前:364 mailto:sage [2010/09/26(日) 16:23:25 ]
>>365
文字列でお願いします

368 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:26:47 ]
#include <stdio.h>
#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]; }
}

369 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:28:15 ]
void add(char* num1, int num1_idx, char* num2, int num2_idx)
{
  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;
}

370 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:32:51 ]
input_num1: 1111111111111111111111111111111111111111
input_num2: 9999999999999999999999999999999999999999
answer: 11111111111111111111111111111111111111110



371 名前: ◆QZaw55cn4c mailto:sage [2010/09/26(日) 16:33:44 ]
>>364
codepad.org/lEjisjDG

372 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:40:15 ]
>>368
#define MAX_KETA 81 としたほうがいいのでは?

373 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:43:09 ]
#include <stdio.h>
#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;
}

374 名前:373 mailto:sage [2010/09/26(日) 16:43:59 ]
num1_idxとnum2_idxは不要だったわ

375 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:48:02 ]
>>371
>>373
素早い回答ありがとうございます!

376 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:53:05 ]
C言語にbool型ってあったっけ

あとfor(int i = 0; ~~~)みたいにできなくね?

377 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 16:57:05 ]
#include <stdio.h>
int 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;
}

378 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 17:33:41 ]
#include <stdio.h>
#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");


379 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 17:34:28 ]
fprintf(fp, " while (1) {\n");
fprintf(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;
}


380 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 17:55:23 ]
>>364
ttp://codepad.org/L0nl0rHb
・あんまりチェックできてないかも
・全体的にブヨブヨ
・無保証



381 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:13:08 ]
次のネタカモン

382 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:26:15 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
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] その他の制限: なし
よろしくお願いします

383 名前:381 mailto:sage [2010/09/26(日) 20:31:45 ]
めんどくせ

384 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:38:20 ]
>>382
小数点第10000位までって指定されたら、本当に1万数桁まで表示するの?

385 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:41:23 ]
>>384
最終的に (解ける組み合わせ数)/(全組み合わせ数) の分数になるんだから
最終桁だけ注意しておけば、何桁あっても簡単に求められるだろ

386 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:59:02 ]
いや、求めらるかどうかじゃなくて
例えば答えが0.5でrが10000なら本当に後ろに0を9999個つけることを要求してるんだけど
その意図を測りかねてるだけで

387 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:59:34 ]
そういう問題なんだからしょうが無い

388 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:39:55 ]
>>382
やいこれ異常に難しい気がするぞ

389 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:23:17 ]
>>388
宿題スレに結構な頻度で出てくる組み合わせの列挙だよ
ちょっと目先が変わっただけ

390 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:35:43 ]
列挙して一々解くのもめんどくさいから、なんか上手いやり方とかあるんだろうな



391 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 00:41:29 ]
[1] C言語復習
[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] 期限: 明日



392 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 00:46:45 ]
復習ならじぶんでやったほうがいいっすねー

393 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 00:47:22 ]
うるせー計算機は黙って計算だけしてろ

394 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 00:59:14 ]
391ですがヒントもありました
(ヒント) 計算の本体は, 例えば, 最初の行は,
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 個表示する」という処理を 付け加えれば, 逆二等辺三角系の形にできる.

395 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:01:26 ]
>>391
[2] 1 桁の整数をスーペース区切りで何個か入力する
これって例えば10個とか仮定していいの?

396 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:07:31 ]
>>395
何個の場合でも計算できるプログラムじゃないといけないみたいです。

397 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:34:05 ]
スーペース区切りで入力するのにEOFで終了とはこれいかに?

398 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:38:59 ]
>>397
無限ループにしたいからじゃないでしょうか?


399 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:48:05 ]
何回改行されてもEOFまでは入力し続けるってことか

400 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:09:58 ]
>>391
ideone.com/9jZ0x



401 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:34:16 ]
>>400
本当に助かりました。ありがとうございます
しかし、コンパイルでにてエラーが出てしまいました以下
/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


402 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:40:32 ]
>>401
もしかして putchar

403 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:40:56 ]
「putcher」→「putchar」

404 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:43:30 ]
>>400
codepadで使えないstdinが使えるだと・・・

405 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:45:43 ]
>>400
whitespaceまであるだと・・・

406 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:48:20 ]
コンパイルできました。お恥ずかしいのですが、数値のインプットが出来ません。

407 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 02:58:16 ]
>>400
中々香ばしいプログラムデスネ

408 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 03:02:00 ]
>>406
数字入力の後、改行→EOF(cygwinだとCtrl+Dだっけ)じゃないとだめかも

409 名前:デフォルトの名無しさん mailto:age [2010/09/27(月) 16:26:03 ]
sage進行とかテンプレに条件が無いんでageても文句言われる筋合いないっすよね?

410 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 16:48:30 ]
>>409
一般的な質問スレは、質問はage、それ以外はsageるのが推奨されている(質問がされているのを分かり易くするため)
ただし、君みたいな厨が多数いる板では無関係な荒らしを呼び込むことになるので
質問だろうとちょっとageただけで鬼の首を取ったかのように叩かれる



411 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 22:51:07 ]
つい最近まで質問でもないのに age まくる輩が粘着していたので、住人はちょっと過敏になっているようだ。

412 名前:デフォルトの名無しさん [2010/09/28(火) 01:14:40 ]
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク)
bmp画像をFFTWを使ってフーリエ変換する

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C++
[4] 期限: 特に決まっていませんが急いでいます。
[5] その他の制限: 自分が作ったソース↓を基にしていただければ助かります。

codepad.org/k4UTDO2i
できた画像を逆フーリエ変換しても同じ画像になってくれませんでした。
bmpを1次元配列で読み込んでるので1次元フーリエ変換でいいのですよね?

お願いします。助けてください。

413 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:52:05 ]
>412
そりゃならんだろ
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))

コサイン変換とかで適切な量子化すれば, ある程度は, 見た目的にきれいに戻せるよ
とか言ってみるテスト

414 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:03:55 ]
煙に巻くって楽しい?

415 名前:412 [2010/09/28(火) 04:32:27 ]
いえ、助かります。
>>413さん、ありがとうございます。

もとも2つの複素数のフーリエ変換をするつもりだったので
今回は実数なのを勘違いしていました。
一応作り直したのですが(codepad.org/0QIae1jA)、
逆フーリエ変換のプログラム(codepad.org/EkI0r90b)がコマンドプロンプトが開かれると同時に強制終了され、
画像ができあがりません;



416 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 04:57:53 ]
>415
codepad.org/0QIae1jA
の46行目が意味的におかしい

codepad.org/EkI0r90b
の55, 56行目が明らかにおかしい

417 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 16:47:22 ]
すみませんが宿題を手伝ってもらってよろしいでしょうか?

整数の数字列のファイルを読み込み、列を小さい順にソートして別のファイルに書き込む

ソートの部分は配列の形で出来上がっているのですが読み込み(char)からintの配列の形にすることで悩んでいます

418 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 16:51:01 ]
つ【質問テンプレ】

419 名前:デフォルトの名無しさん mailto:sage [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等)

420 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:37:46 ]
>>419
整数の区切り文字は何?(半角スペースとか「,」とか)
それとも一桁の整数なん?



421 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:38:02 ]
#include <stdio.h>
#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

422 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:39:01 ]
fclose(fp);

423 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:21:32 ]
ごめんなさい

整数列なので改行ですね

424 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:24:13 ]
>>421
>ソート(どのソートでもよい)を行って

425 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:31:32 ]
void bubblesort(void)
{
 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構文から飛ぶようにしてます(ちなみに教科書どおりにやってるので手抜きです…)

426 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:33:38 ]
列とか行とか適当な意味で使うなよ
1行1整数でいいんだな?

427 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:35:45 ]
説明不足すみません

1行1整数で100行くらいの長さの整数をソートします

ちなみに数は0〜100の整数でやってます

428 名前:412 [2010/09/28(火) 18:38:06 ]
>>416
誤りがわからないので具体的な説明か改善方法を教えていただくことはできませんか?

429 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:59:18 ]
#include <stdio.h>
#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]); }
}

430 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:00:07 ]
$ ./a.exe
=== before sort ===
num[0]: 456
num[1]: 789
num[2]: 123
=== after sort ===
num[0]: 123
num[1]: 456
num[2]: 789



431 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:13:38 ]
>>429
ありがとうございます。早速チャレンジしてみます

while(1){
int c = fgetc(fp);
if(c == EOF){ break; }
else if(c == '\n'){ (*size)++; }
else{ num[*size] = num[*size]*10 + c-'0'; }
}

ところでこの文章int型のついてる * はなんの意味を示してるのですか?

432 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:13:59 ]
before sortって書かれたら何かそんなソートあるのかって思えてしまう

433 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:16:46 ]
>>431
   ∧∧
   (д`* )
   (⊃⌒*⌒⊂)
    /__ノωヽ__)

434 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:17:23 ]
ポインタ学習前かよ!

435 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:17:25 ]
>>432

整数の列が100個ですから多いほうですか?

でも見やすいので参考にさせてもらいますね

436 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:56:49 ]
>>434

すいません。確認とりました。大丈夫です

>>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'; の部分の詳細を教えてもらってもいいですか?

437 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:00:06 ]
大丈夫じゃない件

438 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:03:43 ]
デバッガで一行ずつ実行して変数の値の変化を見てれば分かると思うよ

439 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:15:03 ]
>>437

すみません。自己解決しました

>>438

ありがとうございます。おかげで理解できました

遅れて申し訳ありません。宿題完成しました。読み込みだけでなく書き込みが間違っていただけのようでした。迷惑をかけてもうしわけありませんでした

440 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 22:36:19 ]
>>439
>乱数に数字列が列挙しているtxtファイルから読み込んでint配列の形
int配列なら負の数も対応しなえればイクないんじゃないのか?
宿題はゼロ以上のint乱数の数字列とかってなっている?




441 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 22:48:44 ]
>>440

そうですね。たしかに負の値にも対応してないとまずいかもしれません

やってみますね。アドバイスありがとうございます

442 名前: [2010/09/28(火) 23:05:19 ]
[1] 授業単元: C++
[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;
}
例はこんな感じらしいです・・私半分ぐらいしかわかりません上記の例のような感じでプログラミングするらしいです・・達人さんたちお願いします!!

443 名前: [2010/09/28(火) 23:10:45 ]
[1] 授業単元: C++
[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もんもあるんですよ・・・

444 名前: [2010/09/28(火) 23:15:11 ]
[1] 授業単元: C++
[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] その他の制限:
この問題が一番わかりません・・・
このサイトを見つけた時は本当に神の助けかと思いました!!泣

達人さんたちお願いします。。。

445 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:16:47 ]
そうですか

446 名前: [2010/09/28(火) 23:17:38 ]
void buildheap(int p, int n, int heap[]){
int 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; /* 左の子の位置を更新 */
}
}
ヒープはこれを参考にするらしいです。

447 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:30:57 ]
名前みてイラッとしたからスルー

448 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:32:21 ]
>>419
codepad.org/RTzM7fuc
fgets() と atoi() を使っている。

449 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:42:33 ]
条件付き分布,結合確率なんかを実装するのに,
良さげなデータ構造を教えて下さい

450 名前:448 mailto:sage [2010/09/29(水) 01:14:54 ]
でも、fcloseは使っていない。



451 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 01:45:08 ]
>>442
C++で双方向リストやハッシュマップをオレオレ実装する授業か……。
酷い授業に当たったな


452 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 01:56:41 ]
ちょっとぐらい自分で考えようよ

453 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 02:12:11 ]
釣りだろw

454 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:09:19 ]
ほれほれ、待ちに待った双方向リストですよ。

455 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:46:53 ]
双方向リストおなかいっぱいだお…正直もうおなかいっぱいだお。

456 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:50:37 ]
>>455
へたれが。

457 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:17:34 ]
ここ何年か双方向リストの宿題は出ていないのですが‥‥‥。

458 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:19:44 ]
>>442はfree(p);を関数の最後に記述すればもうできあがってるんじゃね

459 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:32:52 ]
>>448
亀レスすみません
atoi関数使うとセグメンテーション違反がでるので参考にさせてもらいますね

みなさんありがとうございました

460 名前: [2010/09/29(水) 20:24:27 ]
free(p);を記述すれば完成ですか??
ありがとうございます。



461 名前: [2010/09/29(水) 20:30:03 ]
あとの二つが一番わかりません・・

462 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:55:54 ]
>>448
if (i >= MAX)
こうじゃないか?

463 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:59:16 ]
[1] 授業単元:C言語
[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] その他の制限:

よろしくお願いします。

464 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:02:38 ]
>>460-461
あとの二つが一番わかりませんて日本語可笑しいだろ。
そもそも1問ならまだしも3問丸投げとかね。この程度も分からないんなら学校辞めた方が良いんじゃない?

465 名前: ◆QZaw55cn4c mailto:sage [2010/09/29(水) 21:05:55 ]
>>462
たしかにそれが正解ですね。

466 名前: ◆QZaw55cn4c mailto:sage [2010/09/29(水) 21:18:36 ]
>>442
一通りの動作を書いて確かめました。
rem_node() を切り取ればOKでしょう。
codepad.org/wncKlmkP

467 名前: [2010/09/29(水) 21:19:14 ]
学校にはいってません。
社会人です。
C++は初めてします。
九割は自分でどうにか回答できたんですがーあとから難しくなって
リアルに、この程度の問題もわかりません・・
二週間前からネットで勉強してます・・


468 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:19:33 ]
#include <stdio.h>

void 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;
}


469 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:20:16 ]
$ ./a.exe
input data num:3
input sincho(0):10
input sincho(1):20
input sincho(2):30
Heikin:20
Goukei:60

470 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:20:17 ]
>>443
一通りの動作を書いて確認しました。
aerage() を切り取れば OK でしょう。
codepad.org/tDPPGVvE



471 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:24:20 ]
>>467
言語はC++じゃなくてCじゃないのか?

472 名前: [2010/09/29(水) 21:28:01 ]
二問も解いてくださってありがとうございます!!!!!!!
本当に助かります、参考にして勉強します。

言語はC++です。

473 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:52:27 ]
Cの部分しか使ってないんだよ

474 名前: [2010/09/29(水) 21:56:54 ]
そうなんですか??
それすらも理解できない私・・・
やばいですね

475 名前: ◆QZaw55cn4c mailto:sage [2010/09/29(水) 22:29:44 ]
>>443
訂正します。
>この関数はノードが 1 つも登録されていない場合は 0 を返します。
を忘れていました。
codepad.org/0AAV9eab

476 名前: [2010/09/29(水) 22:32:23 ]
ありがとうございます。


477 名前:デフォルトの名無しさん [2010/09/29(水) 23:57:43 ]
[1] 授業単元: プログラム
[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;
}
を入れてください

478 名前: ◆QZaw55cn4c mailto:sage [2010/09/30(木) 00:18:33 ]
>>477
codepad.org/6tKUnRU1

479 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 17:40:52 ]
[1] 授業単元: プログラミング基礎
[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] その他の制限:なし
よろしくお願いします。

480 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 17:47:20 ]
"一万円:%d枚", amount / 10000); amount -= (amount / 10000) * 10000;
"五千円:%d枚", amount / 5000); amount -= (amount / 5000) * 5000;
" 千円:%d枚"
"五百円:%d枚"
" 百円:%d枚"
"五十円:%d枚"
" 十円:%d枚"
" 五円:%d枚"
" 一円:%d枚"



481 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 18:49:52 ]
二千円札様を無視すんじゃねえ!!!

482 名前:479 mailto:sage [2010/09/30(木) 18:52:27 ]
いや、でも二千円札の指示はなかったので入れないほうがいいと思います

483 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 19:18:36 ]
二十円金貨っていうのがあってだな

484 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 19:37:49 ]
なんで、お釣りで万札が帰ってるんだ?

485 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 19:47:25 ]
10万円金貨で払ったから

486 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:28:53 ]
小切手

487 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:32:14 ]
>>486
白紙で渡して、釣りはいらないって言うのが、ダンディw

488 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 10:05:41 ]
>>487
それおかしいってw
白紙で渡して、好きな金額書けって言うのが普通だろ。

489 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 11:14:40 ]
千の位が2ならば二千円札を渡すのが、喜ばれる

490 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 11:40:13 ]
二千円札見たことすらないんだが…。



491 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 11:59:46 ]
沖縄に行けば見られるよ

492 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 15:02:04 ]
ところで479は480のヒントで解決できたのかな?

493 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 15:09:44 ]
コンビニのATMで引き出した時に2千円札ばかりが出てきたことが・・・
すぐに使ったのは言うまでも無い。

494 名前:479 mailto:sage [2010/10/01(金) 16:35:49 ]
返信遅れてすみません
自分c言語はよくわからないもので・・・
差し支えなければint mainのほうも書いていただけませんか?

495 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 16:44:57 ]
そのくらいは教科書見るなり先生に聞くなり友達に聞くなりしてくれ

496 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 17:22:04 ]
>>494
ほい、でもコレはたぶん求められてる答え方じゃないからそのまま出すと怒られるかもね
素直に>>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 ;
}


497 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 17:30:09 ]
なんでわざわざ煙に巻くような書き方するんだw

498 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 17:45:17 ]
>>494
>>498をベースに簡略化
ideone.com/wUeSA


499 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:14:37 ]
[1] 授業単元:基礎プログラミング
[2] 問題文(含コード&リンク)
実数の変数を小数点第一位で四捨五入しなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C++
[4] 期限:日曜日12時まで

500 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:17:33 ]
int a = (int)(double_value + 0.5);



501 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:25:17 ]
>>500
あの、すみません、それだとintで扱かえる範囲しか駄目なんじゃないですか?


502 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:26:51 ]
>>500
一応突っ込んどくけど、値がマイナスの時それでいいの?

503 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:28:23 ]
>>500
エラーと出力されるんですが

504 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:28:43 ]
>>501
結果も実数が欲しいなら floor() でも使えば?

505 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:39:14 ]
負の数の四捨五入ってどうなるのが正しいんだ

506 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 01:53:40 ]
[1] 授業単元:プログラム総合
[2] 問題文(含コード&リンク)
並列に接続した3つの抵抗の合成抵抗を求める。さらに、その両端に電圧V0を印加されたときに流れる電流を2通り
(全体に流れる電流、3つの抵抗それぞれに流れる電流)求めるプログラムを作れ
また変数は実数型とすること

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C++
[4] 期限:今日の5時まで

507 名前: ◆QZaw55cn4c mailto:sage [2010/10/02(土) 02:13:18 ]
>>506
codepad.org/f63KQ38c

508 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 02:46:41 ]
>>507
#include <stdio.h>
int main(void){

でお願いします。

509 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 02:49:03 ]
[1] 授業単元:プログラミング演習
[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を用いてユーザ定義型として設定する

510 名前: ◆QZaw55cn4c mailto:sage [2010/10/02(土) 02:58:29 ]
>>506
>>508
codepad.org/30nSHRMZ



511 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:00:51 ]
#include <stdio.h>
#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;
}

512 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:08:32 ]
>>511
ありがとうございます!

513 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:09:10 ]
>>510
ごめんなさい!重要なことを間違えてました。

2通り⇒全体の電流と3つの抵抗に流れるそれぞれの電流(ia,ib,ic)を求めよ

です。ごめんなさい!

514 名前: ◆QZaw55cn4c mailto:sage [2010/10/02(土) 03:17:41 ]
>>506
>>513
codepad.org/vkRL8n3k

515 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:23:31 ]
>>509
この構造体を配列化し、いくつかの商品を格納できるように
するにはどこを変えればいいのでしょうか?
お願いします。

516 名前: ◆QZaw55cn4c mailto:sage [2010/10/02(土) 03:24:54 ]
>>506
>>513
それともこういう意味ですか?
codepad.org/y1DtdvkV

517 名前:515 mailto:sage [2010/10/02(土) 03:31:03 ]
#include <stdio.h>
#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を変えていけばいいのでしょうか?

518 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:32:51 ]
#include <stdio.h>
#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;
}

519 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:37:48 ]
>>516
おお!これです
ありがとうございます!

520 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 03:50:07 ]
>>518
ありがとうございます!



521 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 04:08:53 ]
[1] 授業単元:プログラミング演習
[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関数の利用が
考えられる。

522 名前:521 mailto:sage [2010/10/02(土) 11:26:03 ]
間違ってました!

code: ABC-23
name: TEA-SET
price: 2500

code: EFG-34
name: PEACH
price: 2000

code: HIJ-21
name: GREEP
price: 1500

↑この様にpresent.datから読み込みさらに大文字に変換する
というのが基本です。
お願いします!

523 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 12:45:42 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
入力された2つの行列の積算を行い、結果を示せ。
1.行列の行、列数の入力を求める
2.2つの行列の積算
3.行列として結果を表示
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限:特になし

よろしくお願いします。

524 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 16:32:55 ]
>>521
文字数オーバーのチェックとかしてないよ

#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 ;
}

525 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 18:42:26 ]
>>523
>>6

526 名前:デフォルトの名無しさん mailto:sage [2010/10/02(土) 19:00:09 ]
>>521

int 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;
}

527 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 00:00:59 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):ルートについて、ニュートンラプソン方で解き、
何回演算を繰り返せば値が収束するか確認する。複数の値を入れて、組み込み関数である
sqrt関数との比較をする。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: [2010年10月4日まで]
[5] その他の制限:特になし
よろしくお願いします。

528 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 01:34:25 ]
>>527

#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 ;
}

529 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 13:04:32 ]
>>526
これはC言語なのでしょうか?
自分には理解できません><

530 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 13:35:48 ]
>>529
C で記述されたプログラムから、system() 関数を使って、外部コマンド sed, perl を呼び出しています。
実際の作業は sed, perl が行っています。実行時には sed や perl がインストールしてあり、それらにパスが通っている必要があります。
また、内容を把握するためには sed や perl でのスクリプトの記述方法を知っていなければなりません。
異論はあるでしょうけれども、sed, perl はプログラム言語界隈では広く知られているとしていいと思います。

まあ、このスレならではの、ネタ的解法でしょう。まじめに受け取っては、あー、いけません。



531 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 13:38:24 ]
>sed, perl はプログラム言語界隈では広く知られているとしていいと思います。
願望を教えるなよ・・・

532 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 13:40:42 ]
system("echo (笑)");

533 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 16:38:32 ]
>>521

codepad.org/1k8Gum3z

534 名前:デフォルトの名無しさん [2010/10/03(日) 20:45:57 ]
[1] 授業単元: 基礎プログラミング
[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;
}



535 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 20:54:43 ]
>>534
double *in[8] = {0,0,0,0,0,0,0,0};
↑わざわざポインタの配列にする意味がわからない

*in[2] = 1;
↑アドレスの0番地に1を書き込む超危険な処理

536 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 20:57:02 ]
これで
int _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;
}

537 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 21:37:52 ]
次の面白クイズちょうだい

538 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 21:57:16 ]
ランダムで1万分の1の確率で真とするにはどうすればいいですか?

539 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 22:00:00 ]
return (rand() % 9999) == 0

540 名前:釣りですた mailto:sage [2010/10/03(日) 22:03:15 ]
>>539
それだとRAND_MAXが32767だったら
27%以下になる確率がそれ以上より高くなりますよね?



541 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 22:05:12 ]
>>540
while((x=rand())>=30000);
return x%10000;

542 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 22:05:34 ]
>>539
rand() % 10000
ではないか?
あと、rand() の剰余をとるのはお勧めでないうんぬんかんぬん。
www.kouno.jp/home/c_faq/c13.html#16

543 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 22:06:32 ]
たまにはRAND_MAXのことも思い出してあげてください

544 名前:デフォルトの名無しさん mailto:sage [2010/10/03(日) 22:07:27 ]
>>535-536
ありがとうございます

545 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 06:53:20 ]
[1] 授業単元:基礎プログラミング
[2] 問題文(含コード&リンク)
コンソール画面の中央付近に一個の星印を表示するプログラムを作れ。
ただし、背景には何も表示させないこと

[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:4日の15時まで
[5] その他の制限: 配列のみで作成しろのことです。
急なものですがよろしくおねがいします。

546 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 10:43:45 ]
配列のみ?

547 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:00:26 ]
背景に何も表示させないってわざわざ条件付けてある所が意味深だな。

548 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:04:48 ]
cursesライブラリの出番か?

549 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:16:09 ]
中央付近に1個の星印って




           ☆





でいいのか?それとも↓みたいなのか?

           *
           * *
          *  *
          *   *
         *    *
 * * * * * * * * * * * * * * * * *
   *    *      *    *
     *  *       *  *
       *        *
       * *      * *
      *   *   *   *
      *     **     *
     *    *   *    *
     *   *      *   *
    *  *         *  *
    * *             * *
   *                *

550 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:20:36 ]
>>549 上の星1つのは見た瞬間吹いたw



551 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:32:06 ]



                    *

552 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 15:34:11 ]
  *
  ***
*********
 *****
*** ***
**   **
*    *

553 名前:デフォルトの名無しさん [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;
}

554 名前:デフォルトの名無しさん [2010/10/04(月) 15:39:25 ]
ああ、typo...

555 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 16:02:42 ]
UNIX/gcc だとまだエスケープシーケンスって使えるの?

556 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 16:12:10 ]
>>555
端末エミュレータに依存

557 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 16:20:50 ]
545の者です。 549の方の上の奴でいいと思います。
15時までとなっていますが時間は無しでお願いします。

558 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 16:56:49 ]
[1] 授業単元:プログラミング基礎
[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関数は勉強中
任意の数を入力して答えがわからないといけません。

テストに出るらしいのでお願いします。

559 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:02:46 ]
>>558
これたらい回し関数じゃん
答えが出ないほどスタックを深く使っちゃった場合どうするの?

560 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:04:38 ]
ja.wikipedia.org/wiki/%E7%AB%B9%E5%86%85%E9%96%A2%E6%95%B0

詳しくはここを



561 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:18:15 ]
>>558
スタックがオーバーフローした時は知らんよ

#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));
}

562 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:22:04 ]
>>559
そこまで複雑な数字を代入しないのではないのかと思われます。

>>560
ありがとうございます。

563 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:31:44 ]
>>553
無事実行出来ました。 ありがとうございます。

564 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 17:37:32 ]
>>562
例えばx=120,y=100,z=140を入れてご覧
なかなか答えが出てこないっしょ

565 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 18:33:39 ]
こうやると再帰呼び出しの回数が劇的に減って速い
VS2010な

#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)];
}
}

566 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 18:43:50 ]
>>565
でも、それじゃ宿題としては零点・失格だろ。
それをCで実現しなければな

567 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 19:01:18 ]
>>566
うん
単に結果を確かめたかっただけ
C++だし0点だね
宿題は>>561で出せばいいと思う

568 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 19:26:55 ]
>>561
実行に手間取りましたが、動きました。
ありがとうございました。

>>564
パソコンが止まりました。

>>555
>>567
C言語ではなかったのですか。ありがとうございました。

>>556
そうなると思われます。C言語でという授業なので。

569 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 19:45:09 ]
>>545

#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;
}

570 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 19:55:13 ]
>>568
x=120,y=100,z=140の時はスタックオーバーフローしてるか計算に時間が掛かりすぎて
いるかのどちらかだな
どちらか見極めるにはスタックが無くなりそうになったら警告を出すようにしておけばわかる

それとstd::mapはC++だしstd::tupleに至ってはC++0xの範疇でしかもまだ標準化されて
いない

ただこういうテクを使えば時間がかかる計算も結果を見る事が出来る事がある
Haskellのような遅延評価機能を備えた言語なら何もしなくても結果がすぐ出てくる
かもしれない



571 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 23:49:26 ]
[1] 授業単元:C言語入門
[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日まで

よろしくお願いします。

572 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 23:54:58 ]
#include <stdio.h>

int 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;
}

573 名前:デフォルトの名無しさん mailto:sage [2010/10/04(月) 23:59:48 ]
もっと面白クイズちょうだい

574 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 15:10:52 ]
上は洪水で下は大火事、これは何?

575 名前:デフォルトの名無しさん mailto:] [2010/10/05(火) 15:14:28 ]
top(flood);
under(large_fire):

576 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 15:42:42 ]
大惨事だな

577 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 15:57:03 ]
上は木彫り職人、下はゴミ捨て場、これは何?

578 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 16:33:41 ]
シャーペンしか使ったことないし

579 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 17:29:56 ]
その内、メモもノートもPCのみの時代で、キーをタッチしたことしかないとか
言い出す時代が来るのか・・・

580 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 18:35:53 ]
脳内ソースでコンパイル



581 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 18:50:02 ]
そのうち頭に通信モジュールを内蔵しクラスタを組むユビキタス社会になるよ。


582 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 19:06:07 ]
[1] 授業単元:C言語入門
[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日まで

よろしくお願いします。


583 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 19:24:04 ]
>>582

#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 );

584 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 19:36:39 ]
>>572
ありがとうございます。

585 名前:デフォルトの名無しさん mailto:sage [2010/10/05(火) 19:53:12 ]
>>583
ありがとうございます。

586 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 06:35:33 ]
[1] 授業単元: 画像処理
[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])でお願いします。





587 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 06:41:11 ]
上下を入れ替えて左右を入れ替える

588 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 09:45:12 ]
>>586
ビットマップの読み込みは自前でやるの?
Win32API使っていいの?

589 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 10:36:21 ]
>>588
自前でお願いできませんか?

590 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 12:47:51 ]
ビットマップと言っても24bitとか32bitとか8bitのパレット形式とか色々種類があるんだけど全部に対応するの



591 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 12:53:21 ]
圧縮も色んな形式認めてるし

592 名前:デフォルトの名無しさん [2010/10/06(水) 14:11:29 ]
[1] 授業単元:整数演算
[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] その他の制限:特になし

よろしくお願いします

593 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 17:15:04 ]
[1] 授業単元:プログラミング技術
[2] 問題文(含コード&リンク):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] その他の制限: なし

おねがいします

594 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 17:20:43 ]
>>586
やや手抜き
180度回転じゃなくてあくまでぶった切って並び替えでいいんだよね?

○未圧縮Windowsビットマップ(16bit,24bit,32bit)のみ対応
×256色以下パレットビットマップ未対応
×OS/2ビットマップ未対応

codepad.org/CBkBGpSx

595 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 22:18:59 ]
>8000桁以内の10進数
...って何ビットなんだろ.....

596 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 22:23:39 ]
もはや値を文字列として扱う

597 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 22:28:57 ]
>>593
会津かい?
シリコンバレー構想とかは上手く進んでいるかい?
レスしてくれたら回答したげる。

598 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 22:52:10 ]
戊辰戦争ェ

599 名前: ◆QZaw55cn4c mailto:sage [2010/10/06(水) 23:15:12 ]
>>592
8->10: codepad.org/JJ6lUm1b
10->16: codepad.org/jpNvFMtH
申し訳ありませんが、8000 桁の数では試していません。20 桁くらいまでならうまくいっているようですが。

600 名前:デフォルトの名無しさん mailto:sage [2010/10/06(水) 23:58:51 ]
>>592
先を越されたがせっかく作ったのでうp
codepad.org/Y34MfqZn
入力処理は自分でやってね



601 名前: ◆QZaw55cn4c mailto:sage [2010/10/06(水) 23:59:34 ]
>>593
codepad.org/z7DsoYHG

602 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 01:19:10 ]
>>593
codepad.org/UlD7yvgh

先越された。

603 名前:デフォルトの名無しさん [2010/10/07(木) 01:45:54 ]
>>594
ありがとうございます

604 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 03:29:52 ]
クソースでおじゃるか?クイッ・クソートでおじゃる

605 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 15:57:20 ]
[1] 授業単元:計算時間測定
[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] 期限:本日深夜まで
どんな風にやればいいのかよくわかりません。
よろしくお願いします。

606 名前:デフォルトの名無しさん [2010/10/07(木) 16:12:29 ]
main関数の最後(returnがあればその直前)に次を追加して実行
printf("%ld\n", te - ts);
満足な精度〜というのはその例からは読み取れない
多分ArraySortのソート法とデータ数からソートが完了する
最悪処理回数を求めるものだとエスパー

607 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:28:40 ]
エスパーすると
32行に収めるために本当は切っちゃ行けない部分を自分で勝手に省略してないか?

608 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:39:30 ]
時間を計ってソートの効率を比較したいんじゃないの?

609 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 22:31:07 ]
>>528
レス遅れました。
ありがとうございます。
本当に困ってたので助かりました。

610 名前:デフォルトの名無しさん [2010/10/08(金) 13:33:40 ]
>>599>>600
お二方有難うございました
早速やってみます



611 名前:ken [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 行を指定したと扱う)。
・入力された整数(行数)が、不正の(整数でない)場合の動作は、保証されなくてよい。

612 名前:ken [2010/10/08(金) 18:46:43 ]
K&RのCでお願いします

613 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 18:55:35 ]
やけに古い基準を出してきたな

614 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 19:03:39 ]
質問テンプレ無視してんだから、こっちも無視でいいよ

615 名前: ◆QZaw55cn4c mailto:sage [2010/10/08(金) 20:06:45 ]
>>611
codepad.org/NrF9jJaW

616 名前:デフォルトの名無しさん mailto:宿題がなく暇だ、釣ってやる [2010/10/08(金) 20:09:27 ]
>>604
www.unkar.org/read/pc11.2ch.net/tech/1208268461
C/C++の宿題を片付けます 105代目

197 :デフォルトの名無しさん[sage]:2008/04/21(月) 08:44:35
EOFがキーボードから入力できないとしても、どのファイルには
ファイルの終わりを意味するEOFコードが記録されていますし
それを入力受付として使うことも可能ですが何か?w
これだから初心者、素人は・・・ナンバーサイン野郎の妄想に惑わされるなよ。

617 名前:デフォルトの名無しさん mailto:sage [2010/10/08(金) 20:19:22 ]
>>616
>>382 解いてよ

ついでに
11 1 1 5
の答えも求めてみてね

618 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:10:25 ]
[1] 授業単元:C++ベーシック
[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つと考える。

619 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:11:57 ]
[1] 授業単元:C++ベーシック
[2] 問題文(含コード&リンク): 1~1000の間のすべてのぞろ目を調べて、その数を表示するプログラムを作りなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2010 Express
 [3.3] 言語: C++
[4] 期限: 2010年10月15日まで
[5] その他の制限:なし

620 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:13:20 ]
>>619
訂正

「1~1000」までのぞろ目 ⇒ 「10~1000までのぞろ目」



621 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:45:19 ]
>>619
#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;
}

622 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:51:39 ]
>>618

#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 ;
}

623 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 01:59:49 ]
>>618
#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;
}

624 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 02:32:29 ]
>>619の<stdio.h>をお願いします。

625 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 02:53:06 ]
[1] 授業単元:C++ベーシック
[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> とする

626 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 02:57:26 ]
C++なのにstdio.h?

627 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 02:59:10 ]
>>625
「エラトステネスのふるい」で検索するか、
アルゴリズム辞典を引け。
すぐ出てくる

628 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 03:00:41 ]
Cの授業なのにVC++を開発環境としてつかってるから言語をC++にしちゃう人多数
コンパイラ名がVC++になってて言語がC++って書いてあったらCで書くのが訓練された回答者

629 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 03:00:47 ]
>>625
#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;
}

630 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 03:08:31 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):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重ループになんかするな? 良いんだよ後で直すから…




631 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 04:02:30 ]
こういうのは再帰使うのが普通じゃね?

632 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 04:14:55 ]
>>629
できれば、配列とflagを用いたタイプもお願いします。

それから>>619の<stdio.h>をお願いしますm(--)m

633 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 04:27:22 ]
[1]C言語中級
[2]指定されたフロー構造に基づき次の仕様のプログラムを作成せよ
仕様:
★行とは、先頭か最後の区切り子からその次の区切り子までの区切り子を含まない文字列のこと
ただしその次の区切り子が出現しないまま終端した場合は最後の文字列まで
★区切り子とは、改行文字(0x0A) 復改文字(0x0D),その組み合わせ(0x0D0x0A,0x0A0x0D)のいずれかと
する(混在することを前提)
★標準入力から任意の長さの文字列を読み取り各行の空白スペースを除く先頭が0〜9からなる
文字列(これをキー数列と呼ぶ)でその直後が空白、タブで区切られている場合に限りその行を認識する。
それ以外の形式の場合は認識せず無視する。キー数列の長さが1024を超える場合も無視対象とする。
★認識した行はキー数列を10進数の正整数を表すものとして、その順序(小さい順)に
整列して出力する
フロー構造
main関数のみで構成。ライブラリ関数はstdio.hで定義されている関数のみを利用可能とする。
当然だが記憶領域はキー数列を記憶する領域の3倍程度しか確保できないことを前提
[3] FreeBSD上でC言語で記述しgccコンパイラで処理する。
[4] 10/10迄

634 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 05:11:00 ]
>>625
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10936.c

635 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 05:29:53 ]
>>634
ありがとうございます!

何度もすいませんが>>619の<stdio.h>を
使用したverをどなたかお願いします。

636 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 05:47:17 ]
>>619
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10937.c

637 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 05:50:03 ]
>>636
ありがとうございます!

638 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 06:54:57 ]
>>619 割るというよりぞろ目*nの形にしてみた

#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;
}


639 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 08:37:26 ]
>>633
先頭が数字でそのあとは文字でもよいのかなと思ってよむと、そうではなくて、全部数字でないと
いけないらしい。ここの部分は出題の文として適切でないから書き直した方がいい。

640 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 09:05:20 ]
>空白スペースを除く先頭が0〜9からなる
>文字列(これをキー数列と呼ぶ)でその直後が空白、タブで区切られている場合に限りその行を認識する

12345
;おk↑
ABCDE 12345 ABCDE
;NG↑ 当然
12345 ABCDE 12345
;おk↑
12345
;NG ↑末尾に直に改行がある 但しOKとすると仕様違反ではあるがPGの本質には影響しないと思われ



641 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 13:49:39 ]
[1] 授業単元:プログラミング演習V
[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


642 名前:デフォルトの名無しさん [2010/10/09(土) 16:19:56 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):以下の式が成り立つように英字に数字をあてはめよ。
ただし同じ英字には同じ数字が当てはまる。
send
+)more
------
money
[3] 環境
 [3.1] OS:Windows 7
 [3.2] コンパイラ名とバージョン:もっていないのでideoneを使ってます。
 [3.3] 言語:C言語のみ
[4] 期限:2010年10月15日まで
[5] その他の制限:上記の条件のみです。

643 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 16:45:01 ]
なんかプログラムでやるより普通に解いた方が早そうなんだが…

644 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 17:00:47 ]
>>643
っ twelve+twenty=answer

645 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 17:06:39 ]
>>642
f4.aaa.livedoor.jp/~pointc/log1325.html

646 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 17:09:39 ]
>>644
407927 + 407146 = 815073

647 名前:642 [2010/10/09(土) 17:14:52 ]
プログラムで解くことになっているのでどなたかコードを作成して頂けませんか。
お願いします。

648 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 17:38:04 ]
1>リンコしています...

649 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 17:42:06 ]
[1] 授業単元:プログラミング基礎
[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] その他の制限:なし

少し長くなってしまいましたが、よろしくお願いします

650 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 18:00:52 ]
1 int main(int argc, char* argv[])
2 {
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 }



651 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 18:12:34 ]
そういう回答は、繰り返されるとつまらない

652 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 18:33:50 ]
>>651
みんなが思ってることを書いても意味ないよ。

653 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 18:58:27 ]
>>651
こいつリアルでKYだなと思うよな

654 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 19:21:16 ]
一発ネタを何度もくりかえしちゃう男の人って

655 名前: ◆QZaw55cn4c mailto:sage [2010/10/09(土) 19:22:11 ]
>>649
codepad.org/06713D4q

656 名前: ◆QZaw55cn4c mailto:sage [2010/10/09(土) 20:29:52 ]
>>642
codepad.org/rUTSxAnS

657 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:32:41 ]
>>650
>if(argc != 3){ printf("Usage: filename data(yyyymmdd)\n", argv[0]); exit(1); }
?argv[0] ってなんだ?

658 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:34:27 ]
if(argc != 3){ printf("Usage:%s filename data(yyyymmdd)\n", argv[0]); exit(1); }


659 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:37:25 ]
>>641
申し訳ないのですが、行列の意味などをもう少し詳しく教えてください。
作業表、というのもなにか、授業で配布された資料などを張ってください。あるいは参考になる URL を教えてください。

660 名前:642 [2010/10/09(土) 20:40:55 ]
656さん、ありがとうございます。



661 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:42:59 ]
>>653
KY って何ですか?定義を教えてください。

662 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:45:59 ]
>>617
問題の意味がややこしいわりに、解けてもおもしろくなさそう、というか。
出力形式を無意味に複雑化して指定しているというか。

解かされるほうはお気の毒、というか。

663 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:51:21 ]
[1] 授業単元:プログラミング実習
[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をインクルードすること。

664 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 20:56:24 ]
>>662
解いてみるといいよ
ちょっと不思議なことになってるから

665 名前: ◆QZaw55cn4c mailto:sage [2010/10/09(土) 21:04:07 ]
>>663
ideone.com/CKph9

666 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:07:10 ]
>>659
似たような問題の資料があったので貼っときます
一応直リンはまずいような気がしたのでDLして一部編集後上げ直しました
ttp://www.dotup.org/uploda/www.dotup.org1190352.zip.html
DL Pass:prog3bcc
日付が変わる頃には消します

667 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:07:48 ]
#include <math.h>

int 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;
}

668 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:20:08 ]
>>667
ずれてる。


669 名前:663 mailto:sage [2010/10/09(土) 21:21:57 ]
665さん、ありがとうございます。

670 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:28:28 ]
>>663
#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;
}




671 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:34:11 ]
>>667
ちょwww
ま、それでもいいんだけどw

672 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:35:16 ]
>>666
>>641 に書いてある入力・出力・作業表は、正しいものですか、それとも適当に書いたものですか。
>>641 の入力からすると、最短パスは 0 1 2 3 4 になると思われるのですが。
あと >>666 のどこを読めばいいか教えてください。

673 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:36:41 ]
>>671
いや、ぜんぜんよくない。sqrt(3) は 2.000 じゃない。
ネタを書くなら正確に。ハズしてしまっては笑えない。

674 名前:663 mailto:sage [2010/10/09(土) 21:40:19 ]
670さんもありがとうございます。

675 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:41:12 ]
>>672
入力が間違ってます…
>>666の問題5-1を教えて頂ければ後は自分でやってみようと思うのでそちらでお願いします
問題の説明としては第7-2節が該当するはずです

何度もお手間をおかけしてすみません

676 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:42:58 ]
いっとくけど俺は絶対にまともに解かないからな!

677 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 21:55:57 ]
[1] 授業単元:プログラミング実習
[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をインクルードすること。
たくさん質問してすみません。
よろしくお願いします。

678 名前:677 mailto:sage [2010/10/09(土) 21:59:07 ]
レスしたものは表がずれてますので
+-----+-----+-----+-----+
の+に縦棒の位置が来るよう調整をお願いします

679 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 22:19:12 ]
>>677
右端の縦線はいらないのか?

680 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 22:58:36 ]
>>677

#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 ;
}



681 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 22:58:58 ]
>>676
それはそれで結構なんだが、>>667>>663 の要求「平方根の値を表示する」を満たしていない。
>>667 では
sqrt(3) = 2.000 おかしい。ただしくは 1.732
sqrt(4) = 2.236 おかしい。ただしくは 2.000
...
ん、もしかして >>667 は平方根をしらない小学生なのだろうか?

682 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 22:59:51 ]
まともじゃないから意図した通りなんじゃね

683 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:08:14 ]
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。

684 名前:デフォルトの名無しさん [2010/10/09(土) 23:11:42 ]
683 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:08:14
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。


685 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:15:43 ]
684 名前:デフォルトの名無しさん[] 投稿日:2010/10/09(土) 23:11:42
683 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:08:14
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。

686 名前:デフォルトの名無しさん [2010/10/09(土) 23:16:16 ]
685 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:15:43
684 名前:デフォルトの名無しさん[] 投稿日:2010/10/09(土) 23:11:42
683 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:08:14
それに >>665 でまともな回答がでているのに、
あとからネタ回答 >>667 をかいても何も面白くない。それに間違っているし。
というか、手が遅いんだな、多分。

687 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:33:04 ]
また例の長文野郎か。
ほんとに、まともな C コードも書けないは、ルートを知らないは、予想以上に低レベルだわ。
というか、数年間もこのレベルでとまっているのか?

688 名前:デフォルトの名無しさん [2010/10/09(土) 23:36:11 ]
687 名前:デフォルトの名無しさん[sage] 投稿日:2010/10/09(土) 23:33:04
また例の長文野郎か。
ほんとに、まともな C コードも書けないは、ルートを知らないは、予想以上に低レベルだわ。
というか、数年間もこのレベルでとまっているのか?


689 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:37:30 ]
>>687 っと、特定できない相手、見えない敵に被害妄想を受けて
意味不明なことを言っております

690 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:40:12 ]
というか、誰もが理解している事なのに敢えて
>>683 みたいなレスをするから基地外だと思われるんだよ。
>>683 のようなくだらない事に対して上から目線の無駄レスが荒れる原因。
このスレに長くいるなら、そんなこと気づいているだろ。学習能力のない
レベルが低くて停滞して、成長していないのは自分の方だと気づけよ。



691 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:41:42 ]
>>687 何あんた?あぁそうか、このスレで自分は他人より回答しているからって
こんなスレでネット弁慶をやっている、日ごろは現実世界でC言語の授業などで
指導をしていない引きこもりかw お前の視野、世界は狭いのぅw

692 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:43:30 ]
>>667みたいな冗談は前々からは普通にあったが・・・
周りが理解しているのに、いちいち下らないと口出しするような
言わないと気が済まない性分をどうにかしないと、口が災いになって
自らトラブルを招くぞ。スルーもできないようじゃ、2ちゃんにも向いてないぞ。

693 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:44:17 ]
なんで荒れてるん。もっと楽しもうよ。

694 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:44:47 ]
宿題丸投げスレで議論したがる奴は、首釣って死ね。マジ死ね

695 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:47:02 ]
>>641
>>675
提供資料の問題5-1 を解きました。
codepad.org/8GHlHWpa

696 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:48:23 ]
>>692
>>667 はジョークにもなっていない件について。

697 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:48:36 ]
見えない敵相手に、確認もできずに言い掛かりをして
自分の方が低レベルでこのスレの新参だともバレて必死だなw
いつまでも下らないことに苛立ってムキになってろ。
どうせこのスレで自分は他人より回答しているというエゴだろ。
それこそくだらねぇ。

698 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:53:43 ]
>>667 はジョークにもなっていない件について。

699 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:53:54 ]
今まで何度も見たおふざけに反応したから茶化されたのに
自覚がないレス乞食ってキモイな。このスレに何年いるんだ?

700 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:54:37 ]
宿題丸投げスレで議論したがる奴は、首釣って死ね。マジ死ね



701 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:54:45 ]
>>667 はジョークにもなっていない件について。

702 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:56:11 ]
必死すぎて顔真っ赤w 見えない敵と戦う恥ずかしい戦士w

703 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:56:23 ]
>>667 はジョークにもなっていない件について。

704 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:57:23 ]
どうせISO準拠について説明されても、自分はそんなの認めない!って
ゴネた地方のド田舎者だろ。こいつじゃ2ちゃん慣れは無理。
地方の閉鎖的な習性丸出し。キモイ。

705 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:57:35 ]
>>667 はジョークにもなっていない件について。

706 名前:デフォルトの名無しさん mailto:sage [2010/10/09(土) 23:59:04 ]
>>655
ありがとうございます!

707 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:00:31 ]
頭の固いやつだなwこのぐらいのお遊びは黙ってスルーしろよwww

708 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:00:43 ]
ぎゃはははははwwwwww こいつマジで顔真っ赤だよw
いつまでも気に入らないレスを見て、前に口論となった奴と
同一人物だと勘違いしてな。お前が言った奴と俺は別人だから。

709 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:00:47 ]
>>667 はジョークにもなっていない件について。

710 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:06:16 ]
>>695
ありがとうございました
>>666削除



711 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:12:24 ]
>>708
書き込まれた内容が、どうみても別人には思えない件について。

712 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:12:24 ]
このバカ自覚がないんだろうな。自分の方から喧嘩を売って
口論になっているのに、口論になる奴はいつもあいつと
特定した気になって、見えない敵と罵倒し合う愚かさ。
だから2ちゃんには向いてないって言ってんだよ。
不特定多数の人が閲覧、書き込み可能な場所なんだが???
まさか、閉鎖的な、特定の人物しか見てないとでも?
だとしたら宿題の質問者も限定されるだろw

713 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:19:36 ]
お前こそだれと戦ってるの?

714 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:20:18 ]
>>712
宿題丸投げスレで議論したがる奴は、首釣って死ね。マジ死ね

715 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:22:06 ]
顔真っ赤にして見えない敵と戦う恥ずかしい戦士

716 名前:デフォルトの名無しさん mailto:弱い者いじめは実に楽しい [2010/10/10(日) 00:27:04 ]
自分のことを自分で言ってしかも全然気づいていない件について

717 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:28:14 ]
     _____
   /::::::::::::::::::::::::::\〜プーン
  /:::::::::::::::::::::::::::::::::::::::\〜プーン
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
  |::( 6∪ ー─◎─◎ )〜        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |ノ  (∵∴ ( o o)∴)〜      < 長文野郎だな!お前ムカつくんだよ!
  | ∪< ∵∵   3 ∵> ムッキー!    \_____________________
  \        ⌒ ノ_____
    \_____/ |  | ̄ ̄\ \
___/      \   |  |    | ̄ ̄|
|:::::::/  \___ | \|  |    |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

718 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:30:40 ]
>>716 だからお前のことだろ、前に口論した奴と同一人物だと勘違いして
誰それ構わず噛み付いてくるキモイ引きこもり。お前の粘着質はキモイ。陰険。
getchar()やint mainについても、誰と勘違いしたのか知らんが
公式文書、文献を用いた説明をしても信じようとしないし。ド田舎者丸出し。
恥ずかしいから失せろ。2ちゃんに向いてないよ、あんた。

719 名前:デフォルトの名無しさん mailto:実に楽しい。 [2010/10/10(日) 00:30:47 ]
でたでた。いつものAAがでた。

720 名前:デフォルトの名無しさん [2010/10/10(日) 00:34:13 ]
何かこのスレに常駐していて自分がベテランだと勘違いしているバカがいますねw
お前みたいなのは人類の中でも無名で雑魚だから、せいぜい粋がれる場所で
偉そうに生きてな。どうせ納税額もちっぽけの雑魚だろw
家は年間何百万も法人税を納めているし、年商1億以上だが
多分お前よりは上。



721 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:37:31 ]
月収 100 万じゃないのか?

722 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:46:04 ]
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>

723 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 00:49:01 ]
このスレに何しに来てんの、あんた?自分の腕を見せつけたい訳?
分かりきった答え、初歩的な問題を解いたくらいで偉そうにしているようじゃ
たかが知れている。どっちがレベルが低いか、自覚しろ、ボケ老人。

724 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 01:02:31 ]
>家は年間何百万も法人税を
自分が納めているわけではないのですね。
学校にいっていない?ひきこもり?大検という手もあるからがんばってね。

725 名前:デフォルトの名無しさん mailto:久々に熟睡できそう [2010/10/10(日) 01:06:51 ]
>>712
>自分の方から喧嘩を売って口論になっているのに、
そのとおり。>>667 のような馬鹿をあぶりだして楽しんでいるのです。

726 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 01:12:12 ]
基地外、基地外、基地外だ、わっしょい

727 名前:695 ◆QZaw55cn4c mailto:sage [2010/10/10(日) 01:17:29 ]
>>641
>>710
すみません。コードがちがっておりました。
正しくはこちらです。結果もこちらの方が正しいです。
codepad.org/vqWvDHyl

728 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 01:22:31 ]
[1] 授業単元:プログラミング基礎
[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] その他の制限:なし

プログラムを作れというより、ある一定の答えを出せという形の問題ですがよろしくお願いします

729 名前: ◆QZaw55cn4c mailto:sage [2010/10/10(日) 01:38:36 ]
>>728
codepad.org/IuFbPYfP

730 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 02:05:04 ]
>>729
ありがとうございます!



731 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 10:07:48 ]
hibari.2ch.net/test/read.cgi/tech/1284632294/720
>家は年間何百万も法人税を
自分が納めているわけではないのですね。
学校にいっていない?ひきこもり?大検という手もあるからがんばってね。

732 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 11:58:32 ]
>>680
>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で初期化するのか?おまじない、なら、いらない。

733 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 12:01:33 ]
コンパイラのデータフロー解析が未熟で、未初期化変数の使用をを検出出来なかった頃、
変数宣言で必ず初期化というコーディングルールは存在した。

734 名前:677 mailto:sage [2010/10/10(日) 12:09:35 ]
レス遅れましたが、680さん、ありがとうございます。

735 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 12:11:42 ]
>>733
ちょっと歴史的感覚の上で矛盾を覚える。
auto 変数宣言で初期化も同時にできるようになったのは、K&R2 以降から。

そのころにもなって、コンパイラがお馬鹿だったとは違和感を感じる。
それは static 変数を必ず初期化する、というコーディングルールでは?

736 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 14:16:21 ]
小数点以下2桁までしか求められてないのにのに倍精度小数つかう必要あるの?
と思ってしまう俺は超特殊環境で仕事してるんだなぁ
最近は普通に富豪プログラミングができていいやね

737 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 14:28:21 ]
>>736
どっちみち printf() にわたるときに倍精度に変換されてしまう。printf() を使うのなら最初から倍精度で書けばいいだけなのでは?
環境が単精度を要求するのなら、それはそれで別のお話。cuda 関係の方ですか?

738 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 14:58:21 ]
>>737
なんか最近知った知識をひけらかしたいだけのように見える
ちょっと前までprintfで%lfとかやっててた人ですか?

739 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:09:29 ]
[1] 授業単元:プログラミング実習
[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の正方向として解くこと
よろしくお願いします。


740 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:11:42 ]
なんでもいいから無料コンパイラ入れろ



741 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:24:51 ]
>>739

#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 ;
}

742 名前: ◆QZaw55cn4c mailto:sage [2010/10/10(日) 15:31:06 ]
>>739
codepad.org/RoZyzN7R
>>738
いや、そういう意図はありません。
cuda とか ati stream とかはいずれやってみたいと思っているので、つい願望が文面に表れてしまいました。お気にさわれば大変失礼いたしました。

743 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:34:42 ]
>>732はただのイチャモンでしかないな

744 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:39:24 ]
>>743
まあそういわれればそうかも。

745 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:41:46 ]
πが90°の世界ってどこにあるんだろう

746 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:44:56 ]
>>745
kwsk

747 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:47:50 ]
741,742さん、解いていただいて申し訳ないのですが、点の数が足りないです
15度刻みで点をプロットすると、25個の点になるはずなのでどなたか訂正していただけませんか
説明不足でしたね。お手数かけてしまってすみません

748 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:49:03 ]
たまに自分より速くでた回答に対して妙ないちゃもんつける人いるよね
そんなに自分が一番じゃないと気がすまないのか

749 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:49:47 ]
>>745
ご指摘感謝。

>>739
15度刻みになっていませんでした。以下に訂正いたします。
codepad.org/9kHPbr1S

750 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:50:35 ]
>>741は25個出ると思うけど



751 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:51:59 ]
>>741が25個以外になる要素がみあたらない

752 名前: ◆QZaw55cn4c mailto:sage [2010/10/10(日) 15:52:12 ]
>>748
いや、その気持ちわからないでもないです。先に回答があるとやっぱり悔しいです。
手が速い、というのは、それはそれでひとつの才能だと思うのです。

753 名前:747 mailto:sage [2010/10/10(日) 15:54:38 ]
ごめんなさい、741さんのは点が25個出てきました。
勘違いしていたようです。すみませんでした。

754 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:57:13 ]
点が25個でていないのは >>742、ということでお願いします。
訂正を >>749 に入れておきました。ごめんなさい。

755 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:58:33 ]
◆QZaw55cn4cは煽るときはトリップ外すのか
>>752でトリップはずし忘れてるのが笑える

756 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 15:59:25 ]
後だしでどうでもいいようなところを少しいじっただけのを出すのもどうかと思うけどな

757 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:04:49 ]
>>755
むしろトリップつけ忘れが多いと思います。 >>695 とか。
煽る対象は限定しているつもりです。もう徹底的にやります。自分でも狂っているとも思いますが。

>>756
すみませぬ。

758 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:06:43 ]
今のインテル・AMD CPUではdoubleとfloatで演算速度って違うの?

759 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:08:12 ]
>>758
未最適化状態だと違う場合もあう
最適化かければ一緒になる

760 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:11:52 ]
[1] 授業単元:プログラミング実習
[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の正方向として解くこと。
線の上を*が通る場合は|ではなく*を表示するようにすること。
よろしくお願いします。



761 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:13:00 ]
今でも3Dとかで計算量滅茶苦茶多いとdoubleとfloatで速度全然違うとか聞いたけど、
騙されたのか?

762 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:14:57 ]
>>737
>printf() にわたるときに倍精度に変換
これってprintf()の仕様?

組み込み系CPUの場合なんかだと倍精度に変換となると大変な変換に
なる場合あると思うけど。


763 名前:739 mailto:sage [2010/10/10(日) 16:17:24 ]
先ほどの問題のお礼忘れました。解いてくださった方、ありがとうございます。

764 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:20:14 ]
短期間で何問も聞くならテキストか何かにまとめて貼れよって思う

765 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:20:57 ]
floatとdoubleの違いとかって
doubleでBCCとVCで初期の精度フラグが違うからBCCのが遅いとか
floatだとSSE組み込み関数が使われるとか
x86だけでも処理系依存じゃね。

766 名前:760 mailto:sage [2010/10/10(日) 16:25:13 ]
>>764
それはどのようにすればいいのでしょうか。

767 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:25:20 ]
>>764
簡単な宿題丸投げする奴に、そんな難しいことは要求しないでね

768 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:26:41 ]
>>761
x86だと汎用レジスタは32ビットなので遅くなることがある
しかし今のCPUはSSEとかSSE2とか積んでるのでそれらを使うようにすればほとんど一緒

ただしGPUは倍精度小数の計算が非常に苦手なので
3D処理を行う計算は単精度を使うことが多いんじゃない?

769 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:29:18 ]
>>760
#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;
}

770 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:30:19 ]
こんなところでする会話じゃないなw
速度なんて気にするようなプログラム無いだろここwwwww



771 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:32:09 ]
ですよね〜
まあ今のうちからそういうこと考え始めるってのは悪くないと思うけど

772 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:33:41 ]
SSE2だと1つの計算速度は変わらないけど
同時に計算できる量が2倍になる分、大量の計算をするときは単精度の方が有利なんじゃないの?

773 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:36:15 ]
速度は気にしないといいつつも
可読性を無視して命令数を減らすコード書く奴多くね?
短くまとめりゃ良いってもんでもないだろ

774 名前:760 mailto:sage [2010/10/10(日) 16:46:46 ]
769さん、ありがとうございます。
ただ、一番下の*が中心にきていないので訂正していただけるとありがたいです。

775 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 16:59:13 ]
>>774
>w = n + sin(M_PI * i / 180) * n;
w = n + (int)(sin(M_PI * i / 180) * n);

776 名前:774 mailto:sage [2010/10/10(日) 17:01:46 ]
>>775
ありがとうございます。

777 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:12:25 ]
[1] 授業単元:プログラミング実習
[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] その他の制限:特に無し
よろしくお願いします。

778 名前:777 mailto:sage [2010/10/10(日) 17:14:16 ]
↑表がずれてしまいましたが、文字の大きさは半角で4文字ピッチです。

779 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:30:42 ]
>>777

#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 ;
}

780 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:39:14 ]
>>779
ありがとうございます。助かります。



781 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:51:42 ]
>>779
printf() の %c に対して、printable かどうかを確かめずに c をそのまま渡しているのはいただけない。
#include <ctype.h>
printf("%4x%4d%4c\n", c, c, (isprint(c)) ? c : '.');
くらいのガードは必要だと思う。

782 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:53:03 ]
>>762
C の仕様。
ISO/IEC 9899:1999 6.5.2.2.6

783 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 17:59:02 ]
>>764
私は一問ごとに別々のほうがいいなあ。答えるのに便利。
質問するのに、それだけ手間かけている、という点もあって、好感度 up !!

784 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:00:29 ]
>>761
gpgpu, cuda 方面では、そういう話を聞きます。それはそういうことで納得できます。

785 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:07:55 ]
>>781
そいういう突っ込みは要らないから

786 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:17:46 ]
どうせまた◆QZaw55cn4cでしょ

787 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:34:15 ]
そのとおりです。でも間違ってないでしょう?

788 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:34:52 ]
こそこそしていてキモイ

789 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:35:06 ]
>>781
0x20から0x7eって書いてあるのにそんなこというやつがいるとはw

790 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:36:41 ]
0x20から0x7Eまでの文字コード表とある。
printable で無いものがあるのか?



791 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:50:09 ]
失礼。7f を勘定にいれてしまっていました。平にご容赦を。

792 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 18:54:25 ]
自分を自慢し褒めてもらいたがっている。 たいした男じゃないわ

793 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 19:35:37 ]
◆QZaw55cn4cって問題文をまともに読めないし、
他人への突っ込みもおかしいこと多いし、
後だしで必死にコードあげるしで、
誰かに良く似てるんだよなw

794 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 19:52:53 ]
回答者なら、◆QZaw55cn4cに回答を先に出されるようじゃだめだな
依頼者なら、回答してくれるならどんな奴でも良い奴だよな

795 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 20:06:50 ]
最近負けっぱなしだから◆QZaw55cn4cが暴れてるんじゃないの?

796 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 20:08:23 ]
[1] 授業単元:プログラミング実習
[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文字ピッチです。
よろしくお願いします。


797 名前: ◆QZaw55cn4c mailto:sage [2010/10/10(日) 20:17:57 ]
>>796
codepad.org/UJdAadXh

798 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 20:19:04 ]
最近ideone君と◆QZaw55cn4cは自作自演なんじゃないかと思い始めて来た

799 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 20:25:01 ]
>>797
ありがとうございます。

>>798
いいえ、違います。まったくの別人です。
学校の課題がたくさん出たのですが、難しすぎて解けない(自分あんまり頭が良くない)ので
この掲示板の方に助けていただこうと思ってここを訪れているだけです。

800 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 20:41:19 ]
[1] 授業単元:プログラミング実習
[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] その他の制限:
よろしくお願いします。




801 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 21:16:34 ]
>>800
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10939.c

802 名前:800 mailto:sage [2010/10/10(日) 21:32:48 ]
>>801
ありがとうございます。

803 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 21:37:30 ]
[1] 授業単元:プログラミング実習
[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] その他の制限:
よろしくお願いします。


804 名前:803 mailto:sage [2010/10/10(日) 21:38:51 ]
付け足します。↑のプログラムは0以上の整数が入力されている限り入力を繰り返すものとします。

805 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 21:48:53 ]
コンパイラなんてタダで色々あるんだから入れとけよ

806 名前: ◆QZaw55cn4c mailto:sage [2010/10/10(日) 21:52:48 ]
>>803
ideone.com/bVNbZ
123 と入力すると
3+2+1=6
と逆順に表示されるのはご愛嬌というか、これで許してください。

807 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 21:57:16 ]
>>803
#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;
}


808 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 21:57:20 ]
>>803
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10940.c

809 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:01:20 ]
>>806
なんでsumに足すのにc使わないでまた計算してんの?

810 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:09:49 ]
>>809
ご指摘感謝。たしかに無駄ですね。
>>803
以下に訂正いたします。
codepad.org/34rJpmkB



811 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:15:23 ]
>>803
#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;
}


812 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:23:57 ]
>>803
#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;
}


813 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:37:57 ]
>>812
>付け足します。↑のプログラムは0以上の整数が入力されている限り入力を繰り返すものとします。
負の数の入力があると変。
バックスペースは ideone ではサポートされていない。どうでもいい点ではありますが。

814 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 22:41:36 ]
アイヤ、ネタで書いたアルヨ、不十分で悪かったアルヨ

815 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 23:26:31 ]
>>812
都合悪いと中国人になる奴のプログラムだな(char ch)
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う

816 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 23:28:28 ]
しかしこんな無節操かつ大量の宿題が出るってどんな授業なんだよ
先生の方にも問題があるんじゃない?

817 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 23:31:15 ]
工業高校の情報処理です

818 名前:デフォルトの名無しさん mailto:sage [2010/10/10(日) 23:31:42 ]
前期の半年分サボってた分のとか…?

819 名前:また勘違い馬鹿が必死に煽っているよ [2010/10/11(月) 02:17:29 ]
815 名前:デフォルトの名無しさん 投稿日:2010/10/10(日) 23:26:31
>>812
都合悪いと中国人になる奴のプログラムだな(char ch)
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う


820 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:21:23 ]
815 名前:デフォルトの名無しさん 投稿日:2010/10/10(日) 23:26:31
>>812
都合悪いと中国人になる奴のプログラムだな(char ch)  < 激しく意味不明なレス
でも、ideon君はこんなプログラムレベルの方が先生から怪しまれないと思う < ますます意味不明

↑お前本当に2ちゃんねるに向いてないよ?昨日もネタコードに噛み付いて
詰まらないことで自分はレベルが低くない、高いと思っているのか知らないが
そうやって下らないことを見下して偉そうに出来れば大したもんだ、精神レベルの低さはw



821 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:32:17 ]
前から居るよ。
"どうせお前「それは仕様です」とか言ってるヤツだろ"
みたいなこと言って喜ぶ輩。

822 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:41:25 ]
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
整数値を読み込んで、その絶対値を表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS: vista
 [3.2] コンパイラ名とバージョン: Visual C++2010
 [3.3] 言語: C言語のみ
[4] 期限: [2010年10月15日まで]
[5] その他の制限:なし
よろしくお願いします。。

823 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:44:57 ]
何でそんなのも分からないの

824 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:45:24 ]
こういうの見ると敢えてif分だけで作りたくならね?

825 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:46:46 ]
むしろifでやるのが親切なんじゃないの?
この問題ならabsは求められてないでしょ

826 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:47:11 ]
レス乞食

827 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:48:29 ]
いっそどこまで回り道できるか競ってみないか

828 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:49:39 ]
2乗して平方根出すくらいまでしか思い浮かばねぇや

829 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:50:19 ]
>>822
#include <stdio.h>

int main(void)
{
int n;

scanf("%d", &n);

printf("%d\n", n < 0 ? -n : n);

return 0;
}

830 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:51:01 ]
つまらん



831 名前:デフォルトの名無しさん [2010/10/11(月) 02:57:59 ]
あんた本当に2ちゃんに向いてないよw

832 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 02:58:22 ]
intからCharに変換して
先頭が0xD2だったら除去
int型に戻して表示

簡単なのを無理やり難しくしようとしたら逆に難しいな

833 名前:デフォルトの名無しさん [2010/10/11(月) 03:01:39 ]
まぁ、なんだね、とりあえずお前、必死だなw

834 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:02:23 ]
>>822
#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;
}

俺はもう・・・寝る・・・

835 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:04:23 ]
ひどすぎるw

836 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:04:53 ]
>>822

#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 ;
}

微妙?

837 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:05:02 ]
もうお前ら誰が誰かわかんねぇよ
ここまで自演なんじゃないかと思えるほど

838 名前:デフォルトの名無しさん [2010/10/11(月) 03:09:36 ]
このスレが自分のテリトリーだと勘違いしている引きこもりニート必死だなw
C言語はお前だけのもんじゃねーぞ?

839 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:11:33 ]
俺には>>831>>833>>838が同一人物だろうって事しか分からん

840 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:13:08 ]
噛み付きぶりから考えて、>>819,820も同一人物と思われる



841 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:16:57 ]
>>834
>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;

842 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:21:54 ]
誰からも相手にされてないのに見えない敵と戦い続ける間抜けが1人いるみたいですね

843 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:24:02 ]
おい
面白そうなことするときは呼べって言ってただろうが

844 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 03:37:35 ]
>>822
#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;
}

845 名前: ◆QZaw55cn4c mailto:sage [2010/10/11(月) 04:12:11 ]
>>840
例の長文野郎ですよ。
でも簡単にせよコードをさらすようになったのはいい傾向。
あとは、ミスをミスとみとめるだけの度量が育ち、双方向リストの問題を解いてみせれば、立派なこのスレの住人ですね。
期待しています。

846 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 04:15:45 ]
お前も長文と同レベルのゴミだってことを自覚しろよw

847 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 04:21:43 ]
◆QZaw55cn4cもこのスレにいらない
「◆QZaw55cn4cだけど何か聞きたいことある?」スレでも立てて独立してほしい

848 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 08:24:19 ]
t

849 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 10:33:49 ]
夜中は楽しいスレになってたんだ

>>845
どれが長文のコードってわかるか、それどれ?

850 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 12:36:05 ]
長文と◆QZaw55cn4cって似たもの同士だろw
日本語読めない、他人に攻撃的なのに妙に自分に甘い、
相手を妄想で特定する。



851 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 13:12:43 ]
>>841
あ・・・れ・・・?
今日からはもっと早く寝るよ・・・

852 名前:デフォルトの名無しさん [2010/10/11(月) 20:11:25 ]
深夜の時間帯に口論している連中、今日は祝日とは言え
連日だからどう考えても昼夜逆転した引きこもりニートだろ・・・
C言語くらいしか生き甲斐の無い寂しい人間なんだな・・・
C言語と共に孤独死か?お前も俺も、いつか必ず死ぬんだぜ?

853 名前:デフォルトの名無しさん [2010/10/11(月) 20:15:12 ]
>>846
>お前も長文と同レベルのゴミだってことを自覚しろよw
お前も同レベルのゴミだってことを自覚しろよw

854 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 20:16:45 ]
いるよな、周りの荒れっぷりを見て外から見て、自分はそんな
低レベルな人間ではない(キリッ)とかやっている、自分こそ
技能レベルではかなり低レベルだと自覚の無い馬鹿w
そう、お前だよお前、2ちゃん慣れしていない新参のお前。
今さら分かりきったことを、持論で勝手に定義してんじゃねーぞw

855 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 20:17:31 ]
>>853
>>お前も長文と同レベルのゴミだってことを自覚しろよw
>お前も同レベルのゴミだってことを自覚しろよw
お前も同レベルのゴミだってことを自覚しろよw

856 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ [2010/10/11(月) 20:18:44 ]
     _____
   /::::::::::::::::::::::::::\〜プーン
  /:::::::::::::::::::::::::::::::::::::::\〜プーン  ←鏡を見ろよw
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
  |::( 6∪ ー─◎─◎ )〜        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |ノ  (∵∴ ( o o)∴)〜      < 長文野郎!!!!!きめぇ〜んだよ!
  | ∪< ∵∵   3 ∵> ムッキー!    \_____________________
  \        ⌒ ノ_____
    \_____/ |  | ̄ ̄\ \
___/      \   |  |    | ̄ ̄|
|:::::::/  \___ | \|  |    |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

857 名前:デフォルトの名無しさん [2010/10/11(月) 20:19:27 ]
>>855
自分の言葉で反論できないからコピペしかしない無能。
恥ずかしいよ。オウム返しするガキを見かけたが
お前の精神レベルは成人未満。どこで成長が止まったんでしょうね?
厨房?

858 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 21:03:21 ]
静かだねぇ、やっぱり長文とか言っている、見えない敵を勘違いして
自分が気に入らなければ顔を真っ赤にして叩く、自分の言葉で
反論できないコピペオウム返ししか出来ない無能は
昼夜逆転した深夜に暴れる引きこもりニートで
C言語が生き甲斐、人生の全ての、このスレのネット弁慶なんでしょうね。

859 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 21:29:28 ]
7時間の沈黙のうちにどうしたんだ?

860 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 21:46:38 ]
>>822
昔こんなのを見て感動した
#include <stdio.h>
int main ( void )
{
int n ;

scanf ( "%d", &n ) ;

printf ( "%d\n", n-(n<<1 & n>>31) ) ;

return 0 ;
}



861 名前: ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ [2010/10/11(月) 21:56:12 ]
   (^p^)あうあうあー

862 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 21:58:12 ]
>>860
試してみたがうまくいかない。

863 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:00:57 ]
printf ( "%d\n", n-(n<<1 & n>>63) ) ;

864 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:01:39 ]
>>862
まじで、俺の環境だとうまくいくけどな
まあうる覚えだし間違ってるかも。

865 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:02:42 ]
>>863
ああ、そういう事かw

866 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:05:01 ]
>>865
どういう事なんの?

867 名前:デフォルトの名無しさん [2010/10/11(月) 22:05:45 ]
1] 授業単元:プログラミング演習
[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] その他の制限: なし

よろしくお願いします

868 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:08:47 ]
>>866
int型が32ビットか64ビットかの違いなんの

869 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:09:44 ]
>>864
sizeof(int) 教えて。
その感動を味わいたい。

870 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:13:18 ]
>>860
おお、できた、ビット演算マジエロいなこういう事だな
printf ( "%d\n", n-(n<<1 & n>>sizeof(int)-1) ) ;




871 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:14:12 ]
>>863
16bit や 24bitのintってことない?

872 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:19:51 ]
>>870
すげー嘘ついたw
試さずに言うもんじゃないな、こうだな
printf ( "%d\n", n-(n<<1 & n>>sizeof(int)*8-1) ) ;


873 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:19:52 ]
>>870
いや、こちらではだめなようだ。

ダメだったソースは以下のとおり。環境は 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 ;
}

874 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:20:05 ]
         。ρ。
         ρ        
         m
        C|.| /⌒⌒⌒ヽ/~ ̄ ̄ ̄ ̄ヽ
      /⌒ヽ⌒ヽ___   |  ∴ヽ  3  )  < 俺のC言語のソースが漏れちゃう
     ./  _  ゝ___)(9     (` ´) )
    /  丿ヽ___,.───|彡ヽ ―◎-◎-|
    _/ )          (   Y ̄ ̄ ̄ ̄)
   (__/           \____/

875 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:20:58 ]
>>870
CHAR_BIT忘れてないか

876 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:24:35 ]
#include <limits.h>
printf ( "%d\n", n-(n<<1 & n>>(sizeof(int) * CHAR_BIT -1) ) ;
本当はこうだよ。

877 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:25:01 ]
>>873
なんでだろうね
>>875
うんごめん、63でやってできたから興奮しちゃった

878 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:27:40 ]
>>867
#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("");
}

879 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:28:14 ]
printf("未だにAlphaだから");

880 名前:873 mailto:sage [2010/10/11(月) 22:29:15 ]
うまくいった。
感動した。



881 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 22:31:30 ]
>>880
さっきので何が違ってたの?

882 名前:873 mailto:sage [2010/10/11(月) 22:46:52 ]
>>881
それがよくわからない。再コンパイルしたらうまくいった。
lsic でもためしていたので、頭が混乱していたと思う。

883 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 23:02:31 ]
へー条件分岐なしで絶対値出るんだ
使い道なさそうだけどすごいな

884 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 23:19:41 ]
「ショートコーディング」でググると幸せになれるかも

885 名前:デフォルトの名無しさん [2010/10/11(月) 23:48:35 ]
宿題レベルだと思いますので、こちらで質問します。

SDKでダイアログベースの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;
}

以上です。どこがおかしいでしょうか。。。よろしくお願いいたします。

886 名前:885 [2010/10/11(月) 23:50:18 ]
すみません、 WinMain 関数内で以下を実行しています。

DialogBox(hCurInst, MAKEINTRESOURCE(IDD_MYDLG), NULL, (DLGPROC)MyDlgProc);

投稿用にコメント文を消していたのですが、関数まで消してしまいました。

887 名前:デフォルトの名無しさん mailto:sage [2010/10/11(月) 23:59:41 ]
>>885
スレ違い
hibari.2ch.net/test/read.cgi/tech/1284736445/
hibari.2ch.net/test/read.cgi/tech/1282403810/

888 名前:885-886 mailto:sage [2010/10/12(火) 00:01:15 ]
>>887
クラスタリング難しいすね。。。
スレ汚し失礼しました。

889 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 00:14:40 ]
sizeof(T) * CHAR_BIT が有効ビット数とは限らない
負数が2の補数とは限らない
負数の右シフトは環境定義
負数の左シフトは未定義

ほかには?

890 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 00:29:52 ]
>負数が2の補数とは限らない
まじか、はじめて知った。



891 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 00:49:41 ]
1 の補数であってもよいし、
浮動小数点数にも使われているバイアス式でもいいし(この場合は正の数にも影響するかなあ)、
でもPCでそんな処理系は見たことはありません。

892 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 00:52:27 ]
>>885
必要な設定をしてからRegisterClass() とか CreateWindow() とかを呼ばなくてはいけないのでは。
wisdom.sakura.ne.jp/system/winapi/win32/index.html

893 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 00:55:31 ]
[1] 授業単元: プログラミング演習V
[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を足す。右下端が求める距離に
なっている。どのような基本操作を行ったかは、右下端から最小となる方向を逆に辿っていけばよい。
右に進むことは、横向きの文字列の先頭文字を削除することに相当する。下に進むことは、縦向きの文字列の先頭文字を削除することに
相当する。右下に進むことは、両方の先頭文字を削除することに相当する。

894 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 01:58:20 ]
>>893
#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;
}

895 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 01:59:35 ]
あ、getch消し忘れた消しといて

896 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:02:56 ]
>>894
これってC++じゃないとダメ臭くね?

897 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:03:40 ]
あ、new使ってるねw
そのへんはフィーリングで

898 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:04:17 ]
minのオーバーロードもできない

899 名前:デフォルトの名無しさん mailto:sage [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;

900 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:15:13 ]
>>898
オーバーロード?
どっかで定義されてたっけ?
まあ問題あるならminの名前変えてくれ



901 名前:デフォルトの名無しさん [2010/10/12(火) 02:17:24 ]
getchar()さん必死ですねw

902 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:19:39 ]
修正してやれよww

903 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:25:59 ]
>>894のコピペ元見つけた
ハンパな知識でしかも.cppで改変したからこんなことになるんじゃ

904 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:27:21 ]
無修正が一番!w

905 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:37:47 ]
そもそもWikipediaに擬似コード乗ってるんだし此処で聞くまでもないレベル

906 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 02:59:46 ]
擬似が通用するのは修正(ザイモク)ありだからこそ!
無修正で擬似ではないことを証明せよ!

907 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 05:21:32 ]
>>822
もしかして同じ学校の人ですか?
課題がまったく同じなんですけど

908 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 08:33:55 ]
このスレならよくあること。

909 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 09:12:29 ]
三流大学だけどねw

910 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 09:18:24 ]
大学のランクはあまり重要ではない、特にプログラムの授業では。
むしろそれ専門の学校の方がレベルが高い。
所詮、数値計算程度の授業くらいしかしない。
数学で使う数式のコードを書いたからって、プログラミングが
上達する訳でもない。もっとシステム、OS、コンピュータの仕組みを
理解する方が良い。



911 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 09:35:40 ]
ねーよw

912 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:01:32 ]
ハッシュ関数なんですけど、順序を保つやつないですか?
a、bは100KB程度の文字列で比較可能でa<bならば、h(a) < h(b)となるやつです。
ハッシュ関数hは均等に分布できるやつが良いです。



913 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:03:59 ]
ソートするのにこういう関数があれば速度が上げられると思うのですが。
ハッシュでおおざっぱに分類できるので。
文字列の先頭8バイトで比較すれば条件満たすわけですが
これでは先頭8文字が一致していた場合、分類が出来ないです。
たとえば先頭が全てhttp://で始まるとか。

914 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:05:24 ]
テンプレに従うか他いけ

915 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:14:51 ]
自己解決しました

916 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:15:08 ]
あ、俺も自己解決しました

917 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 11:40:18 ]
先頭からの十分な長さ(例えば100バイト)と標本で分布を調べたのち
分割が均等になるように分割するんです。



918 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 16:32:49 BE:1133485875-PLT(18100)]
>>893お願いします

919 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 17:00:14 ]
>>918
うわぁコテきめえ死ね屑
気持ち悪い

920 名前: ◆QZaw55cn4c mailto:sage [2010/10/12(火) 18:17:29 ]
>>893
>>918

>>894 を書き直したものですので、お礼は >>894 に言ってください。
ideone.com/fXWGh



921 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 20:42:07 ]
質問にきましたお邪魔します。
[1] CプログラミングT
[2] 問題文(含コード&リンク): 数問あるのでリンクからお願いします。
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まで習っています。よろしくお願いします。

922 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 21:12:53 ]
>>921
とりあえずヒントから
問1 まず a と b だけで比較して、大きい方と c を比較する。
問2 int b とかに代入するだけ。
問3 問2ができたら、10で割った余りを求めればよい。
問4 原点と入力された点との距離を求めて1と比較して判定。円上はどうするの?
問5 合計降水量(24時間の降水量)が10未満かどうか判定する。

923 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 21:16:29 ]
5問もあるとかぶりそうでめんどくさいな

924 名前:デフォルトの名無しさん [2010/10/12(火) 21:28:46 ]
>>878

ありがとうございます。

1] 授業単元:プログラミング演習
[2] 文字列を入力し、指定した文字位置から5文字分を表示する
プログラムを作成せよ。ただし、入力する文字列は
半角のアルファベットとする。文字列の数は40文字程度とし、
5文字分を取り出す位置の関係を意識すること。
また、文字列の取り出しにはポインタを使うこと。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C++
[4] 10/14
[5] その他の制限: なし

よろしくお願いします

925 名前:デフォルトの名無しさん [2010/10/12(火) 21:32:47 ]
1] 授業単元:プログラミング演習
[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] その他の制限: なし

よろしくお願いします

926 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 23:13:35 ]
>>925
2つの関数間で、複数のデータを受け渡す演習だと思うけど、
グローバル変数を使う方法、関数の引数にポインタを使う方法が考えられるね。
とりあえず、ヒントだけで考えてみな。

927 名前:デフォルトの名無しさん mailto:sage [2010/10/12(火) 23:21:27 ]
>>925
structを返す






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef