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


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

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



1 名前:デフォルトの名無しさん [2008/12/31(水) 08:02:03 BE:378684285-PLT(43140)]
あなたが解けない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++の宿題を片付けます 120代目
pc11.2ch.net/test/read.cgi/tech/1229424329/

152 名前:デフォルトの名無しさん [2009/01/03(土) 17:17:39 ]
つべこべ言ってないで
>>52を正しく直してみろ!!

153 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:17:53 ]
最近は似非プログラマーがC言語を扱っているノカー、時代は変わったもんだな。
while文すらまともに使えないなんて、終わってますね。進路を変えな、今すぐ。
その程度じゃ人生を失敗するぞ。

154 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:22:06 ]
>>152
正しいから、これ以上、直らないだろ。

155 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:28:58 ]
>>153
さすが人生失敗してる人が言うと説得力が違うw

156 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:41:44 ]
>>120
labelsetの処理はなんとかならんもんかね。

>>149
多分、>>120の講義では指紋照合についてプログラムを書くということをやってるっぽい(ググった)。
  ・指紋の線の端点だと確定できる点を真マニューシャ
  ・指紋の線の端点だと確定できない点を偽マニューシャ
と定義してるくさい。

指紋認証だと、スキャナに指を押し付ける力加減により、スキャンする指の画像が変わってくる。
画像の境界線上にできる点を偽マニューシャと呼びたいたいのではないかと思う。

そこで、問題の意図としては、「その境界線をどうやって判断するのか?」を解かせようとしてるのかも
(処理思いつかんが)。

つーか、ほとんど推理ゲーだな。

157 名前:156 mailto:sage [2009/01/03(土) 17:56:33 ]
>>149
すまん。
境界線ではなく、同じラベル中で距離が近い点を全部消してるのかも。
どの程度の距離かは不明だけど。

158 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:57:05 ]
>>157
稜線上の距離が基準だとすると、以下の二つの扱いが納得できない。
up2.viploader.net/pic3/src/vl2_090483.jpg
up2.viploader.net/pic3/src/vl2_090484.jpg

下の点は、本当に消えるべき点なのだろうか?

159 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:08:03 ]
実用とほとんど関係の薄い問題を解かせて何が楽しいんだろ。教授の自己満足か。

160 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:10:21 ]
>>159
技術ありき
実用にするかどうかはアイディア次第



161 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:12:16 ]
>>159
パターン認識の実用がどんなか知らないが、これは指紋の照合では基礎なのでは?

162 名前:157 mailto:sage [2009/01/03(土) 23:39:52 ]
>>158
申し訳ありません。
距離を基準とすると下の点は消えるべきではないですね。
取り下げさせていただきます。

163 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 00:02:47 ]
>>162
依頼にも「同じ隆線上で近接して出現 したマニューシャは」云々と書いてあるし、なにかしてるはずだけど・・・
pdfに載ってる処理結果を見ると、他にも何か処理をしていなくては、辻褄が合わない。
それこそ境界線上の端点の除外とか。

工夫を考えろと言うことなのかな。

164 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 01:57:57 ]
>>143
詳説もとめます。

165 名前:120 mailto:sage [2009/01/04(日) 02:03:11 ]
山ほど説明不足でホントにすいませんでした。マニューシャの定義などは、すべて下のファイルに入っています。

ただ、課題でHilditch.cを使うかは分かりません。

www1.axfc.net/uploader/He/link.pl?dr=4660528869&file=He_177945.zip
(pass:1)

マニューシャについては11のpdf、Hilditch.cをつかって,細分化するコードについては10のpdfに書いてあります。
丸投げでごめんなさい。

166 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:05:11 ]
訂正:www1.axfc.net/uploader/He/の He_177945.zip です。(pass:1)

何度も迷惑かけてすいません・・・



167 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:12:06 ]
>>164

 >>143ではないが、assert(expr)は、NDEBUGが#defineされているときにはexprが評価されない。
 実装によるが、たいていマクロだから副作用がある式を評価させてはならない。

 とりあえず、自分の環境のassert() (多分assert.hにでも書いてある)を読んでみるといいよ。

168 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:48:09 ]
>>166
学校のサイトはもう見つけた。>>149


169 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:50:36 ]
>167
一応補足。
C言語規格 9899:1999 7.2/1 によれば #include <assert.h> 時に NDEBUG が定義されている場合、assert は以下のように定義される。
#define assert(ignore) ((void)0)
ということで、expr 部分(上だと ignore だが)全体が消滅する。
# ちなみに 7.2/2 では関数じゃなくてマクロで実装しろと規定されている。

そもそも assert とはプログラムのバグ(ロジックエラー)を引っかけるものであって、実稼働中に発生するようなエラーに対処するものではない。
ということで例えば VC++ だと Release ビルドでは既定で NDEBUG が定義されたりする。
結果、assert 内に副作用のある式を記述してしまうと、Debug ビルドと Release ビルドで挙動が異なるコードを生み出してしまう。

170 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 02:53:30 ]
>169 != >167 で >169 では >164 に対する返答補足のつもり。



171 名前:デフォルトの名無しさん [2009/01/04(日) 03:07:44 ]
HTMLテキストデータから数値(浮動小数点)のみを順に抽出して
いきたいのですが、どういう風にすればよろしいでしょうか?
ご教授ください。


172 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:10:41 ]
>>1

173 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:10:42 ]
>>171
HTMLテキストデータのサンプルくらい提示して欲しいもんだ

174 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:26:16 ]
>>171
後付で条件足すなよ!

#include<iostream>
#include<iterator>
#include<string>
#include<cstdlib>
#include<cctype>
int main(){
    std::string src;
    copy(std::istreambuf_iterator<char>(std::cin),std::istreambuf_iterator<char>(),back_inserter(src));
    for(const char*s=src.c_str();;){
        if(*s=='\0')break;
        if(std::isspace(*s))++s;
        char*next=const_cast<char*>(s);
        std::strtod(s,&next);
        if(s == next){++s;continue;}
        std::cout.write(s,next-s);
        std::cout << std::endl;
        s = next;
    }
}

175 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 03:29:27 ]
2箇所訂正
#include<algorithm>
が抜けているのでcctypeの下に追加

if(std::isspace(*s))++s;
が空白1つにしか対応できていないので
任意個数の空白に対応するためにcontinueするする
if(std::isspace(*s)){++s;continue;}


176 名前:デフォルトの名無しさん [2009/01/04(日) 04:54:08 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8516.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:特にはありません。よろしくお願いします。

177 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:25:09 ]
>>176
一応元のコードをベースにしたけどこんなんでおk?
#include <stdio.h>
#include <math.h>
int main(void)
{
    {   int i, n, Limit;
        n = 0x7FFFFFFF;
        for(;;--n){
            Limit=(int)sqrt(n);
            for (i=Limit;i>1;i--)
                if (n%i == 0)break;
            if (i==1)break;
        }
        printf("int型の最大の素数は%dです\n",n);
    }{  unsigned int i, n, Limit;
        n = 0xFFFFFFFF;
        for(;;--n){
            Limit=(unsigned int)sqrt(n);
            for (i=Limit;i>1;i--)
                if (n%i == 0)break;
            if (i==1)break;
        }
        printf("unsigned int型の最大の素数は%uです\n",n);
    }
    return 0;
}

178 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:32:48 ]
INT_MAXとかを使った方がいいと思う

179 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 05:42:11 ]
>>178
それを使うか悩んだんだけど、limits.hを授業でやったか分からない。
それとintのサイズが32bitであると問題文でわざわざ定義されている。

そんな感じで、今回はマジックナンバーを決めうちで実装した。

180 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 06:24:02 ]
麻呂のクソースではおじゃるね、まずそれぞれの変数に-1を入れてやんよ?
さすれば、何ビットだろうとその変数が扱える最大のFFFF・・・になるでおじゃるし。
え?邪道?それがクソースでおじゃっ!



181 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 06:32:22 ]
unsigned int uint=-1;
signed int sint=uint>>1;
printf("uint:%u \nsing:%d\n",uint,sint);

きんもぉ〜★なクソースでおじゃっ

182 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 07:06:07 ]
>>176
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8517.c

183 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 07:36:40 ]
[1] 授業単元:アルゴリズムの基礎および演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8518.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2009年1月10日12:00まで
[5] その他の制限:特にありません。
よろしくお願いします。

184 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 09:47:19 ]
丸投げキター!
1段1次のRunge-Kuttaと称してEuler法で解いてやりたい

185 名前:176 mailto:sage [2009/01/04(日) 10:19:18 ]
>>177
>>182
ありがとうございます。
助かりました。

186 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 11:52:08 ]
>>120
(2)だけ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8519.txt

(1)は、結局、求められているものが分からない。

ろだからファイル消してるくらいだから、もう此処見てないかも知れないけど・・・

187 名前:C初心者 [2009/01/04(日) 12:12:38 ]
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):ポインタを用いた二分探索木の作成
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:データはファイルから読み込むものとしています。
他のスレでも質問させてもらったのですがどうしてもわからないので、ここで質問させて頂きます。
宿題ではあったのですが、もう期限は過ぎています。
ただどうしても知りたいのでどなたかお願いします。あとオススメの参考書等教えていただけると嬉しいです。

188 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 12:31:13 ]
>>187
oku.edu.mie-u.ac.jp/~okumura/algo/
>『C言語による最新アルゴリズム事典』


189 名前:C初心者 [2009/01/04(日) 17:37:39 ]
>>188
ありがとうございます。 早速注文しました。
プログラムはわかりませんか??

190 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 17:40:01 ]
>>189
今すぐ買って来いバカ



191 名前:おねがいしますw [2009/01/04(日) 17:44:13 ]
[1] 授業単元: アルゴリズムデータ構造U
[2](コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8520.txt
問題文
[1]list3.cの演習の部分を埋め、完成させ動作を確認せよ
[2]逆順に整列入力するようにプログラムを作り変えよ
[3]環状リストの処理をダミーノードを設定せずに作ってみよ
[4]双方向リストの処理をダミーノードを設定せずに作ってみよ
問題は以上です お願いします
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C言語)
[4] 期限: ([1月6日9:00までに願いします] )


192 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 21:57:00 ]
>>191
元からバグってるとかねーだろ。

193 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:15:05 ]
そんなこと無いよ。deleteに小さい値渡すとsegfaultになるとか絶対ないよ

194 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:22:56 ]
そんなこと無いよ。insertに先頭と同じ値を渡してもリストは壊れるとか絶対ないよ

195 名前:デフォルトの名無しさん mailto:sage [2009/01/04(日) 22:32:06 ]
見辛いし、全部作り変えたほうがいいじゃんwww

196 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:10:56 ]
>>189
リンク先のtree.cってソースがそれだろ?

197 名前:デフォルトの名無しさん [2009/01/05(月) 00:20:19 ]
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
 文字データの入力と出力 Visual Studioを用いてConsoleApplicationを作成せよ。
 以下の条件を満たすものを作成する事。
 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
 登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C
[4] 期限: 1月5日6時まで
[5] その他の制限: 構造体習い始めた程度の能力


198 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 00:52:18 ]
[1]授業単元:C言語
[2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8522.txt
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年1月5日午前10時
[5]特になし。


199 名前:197 ◆brUNnJvSqY [2009/01/05(月) 01:10:31 ]
>>197
訂正

[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
 【文字データの入力と出力】
 Visual Studioを用いてConsoleApplicationを作成せよ。
 以下の条件を満たすものを作成する事。
 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
 登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: visualC++2005
 [3.3] 言語:C
[4] 期限: 2009年1月5日6時まで
[5] その他の制限: 構造体を習い始めた程度の能力


200 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:15:44 ]
>>198
#include <stdio.h>
int main()
{
printf("sum { 1, 3, ... , 99 } = %d\n", 50 * (1 + 99) / 2);
printf("sum { 2, 4, ... , 100 } = %d\n", 50 * (2 + 100) / 2);
return 0;
}



201 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 01:53:41 ]
>>199
/* ちょっと気持ち悪く書いてみたよ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ENTER_MAX 10
#define NAME_LEN 256
#define AGE_LEN 4
#define BUFF_SIZE (NAME_LEN + AGE_LEN + 1)
int main(void)
{
char table[ENTER_MAX][BUFF_SIZE];
char buff[BUFF_SIZE];
int n;
int i;
do {
printf("登録数 (1 から %d) >> ", ENTER_MAX);
} while ((n = atoi(fgets(buff, BUFF_SIZE, stdin))) > ENTER_MAX);

for (i = 0; i < n; ++i) {
int len;
printf("名前 >> "); fgets(table[i], NAME_LEN, stdin);
len = strlen(table[i]);
printf("年齢 >> "); fgets(&table[i][len + 1], AGE_LEN, stdin);
table[i][len - 1] = ','; table[i][len] = ' ';
}
for (i = 0; i < n; ++i) printf("%s", table[i]);

return 0;
}

202 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:09:03 ]
>>186

親切な解答、ありがとうございました。1はまた考えてみます。

失礼しました。


203 名前:197 ◆brUNnJvSqY mailto:sage [2009/01/05(月) 02:12:10 ]
>>201
ありがとうございます。

fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
という、エラーが出てしまいます。回避法はありますでしょうか?

出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。

204 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:13:16 ]
>>203
#include <stdafx.h> をソースの頭に書け
あと氏ね

205 名前:デフォルトの名無しさん [2009/01/05(月) 02:32:12 ]

[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8523.txt
[3] 環境
 [3.1] OS: win
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c
[4] 期限: 朝まで
[5] その他の制限: よろしくお願いします

206 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 02:47:14 ]
>>205
/* 意味が良くわからないけどこういうことかな */
#include <stdio.h>
#define N 1024
const char const *str
= "#include <stdio.h>\n\nint main() {\nint k, c, n, i;int l;int m = 0;\n\
\tfor (k = 0; k < 3; k ++) {\n\t\tfor (n = l = 0;\n\t\t\
(c = getchar()) != '\\n';l++) {\n\t\t\tif (l == 0 && c == '-') {\n\t\t\tprintf(\"Error!!負の数\\n\");\
\n\t\treturn 1;\n\t}\n\tif (l < 8) {\n\t\tif (c < '0' || c > '9') {\n\
\t\tprintf(\"Error!!数字文字以外の入力\\n\");\n\treturn 1;\n}\n\
\tn = n * 10 + c - '0';\n\t}\n}\n\tif (l == 0) {\n\tprintf\
(\"Error!!改行のみの入力\\n\");\nreturn 1;\n}\n\tm += n;\n\t}\n\
\tprintf(\"合計は%d\\n\", m);\nreturn 0;\n}\n";
int main(void)
{
int x[N], i;
for (i = 0; str[i]; ++i) x[i] = str[i];
return 0;
}

207 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:23:15 ]
ちょ、そのクワイン的発想は何w

208 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:36:17 ]
字義通りだと、こうだろ?
むしろ、他の解釈を聞かせて欲しい。

209 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 03:42:07 ]
ビルド済みのバイナリかソースのどちらかだろうとは考えた

210 名前:C初心者 [2009/01/05(月) 11:00:16 ]
>>196
すいません、リンク先に行けなくて見れてないです。



211 名前:デフォルトの名無しさん [2009/01/05(月) 12:52:12 ]
[1] 授業単元: c
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8524.txt
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c
[4] 期限:夕方
[5] その他の制限: よろしくです

212 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:00:26 ]
>>211
何周目だよ。死ねよ。


213 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:16:18 ]
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
も読めない基地外って何?別にお前個人を指定、特定して答えろなんて
誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。

214 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:21:06 ]
スレタイも読めないようだな。ここで丸投げの宿題が書き込まれるのは
分かりきっていることなのに、自分が気に入らないとファビョって
訳も分からないクレームをつける奴って何?そんなんだから
一生、成功しないままこの世を去るんだろ?w
そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ?
ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、
今何をしてる?少なくともお前以上の出世はしただろうねw
お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。
人生終わってら。

215 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:44:35 ]
>>211
/* たぶん大丈夫だと思う */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define L 3
#define N 8
#define M (N * sizeof(int))
int main(void)
{
int *x[L], total = 0, i;
for (i = 0; i < L; ++i) {
int n;
x[i] = (int *)malloc(M);
printf(" input number >> ");
if ((n = atoi(fgets((char *)(x[i]), M, stdin))) > (int)pow(10, N))
printf("%d\n", n %= (int)(pow(10, N)));
if (n < 0 || (n == 0 && x[i][0] != '0')) {
fprintf(stderr, "Error!\n"); return 1;
}
total += n;
}
printf("answer = %d\n", total);
return 0;
}

216 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:45:57 ]
下から9行目の
printf("%d\n", n %= (int)(pow(10, N)));

n %= (int)(pow(10, N));
に直して。

217 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:17:06 ]
>>211
#include <stdio.h>

int input() {
  char c;int a = 0;int cnt = 0;

  while(1) {
    c = getchar();
    if(c == '\n') break;
    if('0'<=c && c<='9') a = a*10 + c-'0'; else cnt=9;
    cnt++;
  }

  if(cnt==0 || cnt>=9) return -1; else return a;
}

//
int main(void) {
  int a[3],i;
  printf("8桁までの整数を3つ入力してね\n");
  for(i=0;i<3;i++) {
    a[i] = input();
    if(a[i]<0) {
      fprintf(stderr,"Error : 8桁までの整数を入力してくださいませ\n");
      return -1;
    }
  }

  printf("合計 %d + %d + %d = %d\n",a[0],a[1],a[2],a[0]+a[1]+a[2]);
  return 0;
}


218 名前:デフォルトの名無しさん [2009/01/05(月) 14:19:49 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8525.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Stdio 2005
 [3.3] 言語: C
[4] 期限: 1/5 21:00

よろしくお願いします。

219 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:29:53 ]
[1] 文字列の格納、比較
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8527.zip (設問もzipに入っています。)
   このプログラムをポインタとstrchr関数を使わない形に書き換えていただけないでしょうか。
   あと、コメントアウトでややこしいところ、ループの箇所等に説明をつけていただけるとありがたいです。
[3] 環境
 [3.1] WinXP
 [3.2] Borland C++ Compiler 5.5
 [3.3] 言語:C言語
[4] 期限:[2008年1月15日00:00まで]
[5] 原則的にgoto 文は使用しない。
do while ループに関してはできるかぎり使用せず、while に統一する。
※キーボードからの入力は、scanf 関数およびgets 関数を使用せず、getchar 関数または、
fgets 関数を使用すること。


220 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:33:13 ]
>>213




221 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:03:15 ]
>>219
しね

222 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 18:22:05 ]
>>218
こんな感じでいかが?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8528.txt

223 名前:デフォルトの名無しさん [2009/01/05(月) 19:26:03 ]
>>211
もう前スレで解答してあるはずだが

224 名前:218 [2009/01/05(月) 20:03:05 ]
>>222
自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です
ありがとうございました

225 名前:デフォルトの名無しさん [2009/01/05(月) 22:33:58 ]
[1] 授業単元: 計算機工学
[2] 問題文(含コード&リンク): 下記
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2009年01月15日19:00まで
[5] その他の制限: なし

■問題

指定した部品数で建てられる家の最大面積を求めるプログラムを作成して下さい。
窓、ドア、壁の3タイプの部品があり、部品の長さは2m。
次のルールを満たさなくてはいけません。
1)1面にはドアは1つまで
2)家には少なくとも1つのドアが必要
3)ドアの両脇は壁部品でなくてはならない
4)窓の両脇は壁部品でなくてはならない
5)家は四角型
6)部品はそれぞれ50個が上限

int MaxArea(int NumWall,int NumWin,int NumDoor)
このように各部品の数を指定し、面積を返す関数を作ってください。

例)
MaxArea(8,0,1) = 12
---
| |
-D-


226 名前:デフォルトの名無しさん [2009/01/05(月) 23:14:44 ]
文字型配列を、"OKINAWA"を初期値として宣言し、文字列を
反転させて、"AWANIKO"と出力するプログラムを作りなさい。

227 名前:デフォルトの名無しさん [2009/01/05(月) 23:25:18 ]
>>226
char str[]="OKINAWA"; reverse(str); printf("%s",str);

228 名前:226 mailto:sage [2009/01/05(月) 23:32:05 ]
自己解決しました。

229 名前:デフォルトの名無しさん [2009/01/05(月) 23:35:47 ]
>>226
for使っての解き方誰かわかりますか?

230 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:38:45 ]
>>225
Google Code Jam 2004のHousePartyってヤツだな。



231 名前:デフォルトの名無しさん [2009/01/05(月) 23:44:51 ]
>>229
reverse(char *str) {
  int i; for(i=0; i<len(str)/2; i++) { char c=str[i]; str[i]=str[len(str)-i-1]; str[len(str)-i-1]=c;}
}

232 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 23:48:51 ]
[1]授業単元:C言語
[2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8531.txt
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2009年1月6日午前8時
[5]特になし。

233 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:16:37 ]
>>232
for(int i=0; i <= 100 ; i++ )if( i * ( i + 1 ) / 2 >= N ) { printf("%d\n",i); break;}
while( i * ( i + 1 ) / 2 < N ) { i++; }

234 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:17:14 ]
whileの方の初期化忘れたw

235 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 00:18:23 ]
>>232
#include<stdio.h>
int main() {
int i=0, n;
scanf("%d", &n);
while ((n-=++i)>0) /* または for(;(n-=++i)>0;) */
if (i==100) {printf("100まで加算してもだめだった\n"); return 0;}
printf("%dまで加算すればおk\n", i);
return 0;
}

236 名前:デフォルトの名無しさん [2009/01/06(火) 00:19:31 ]
>>232
int func_for(int n) {
  int i;for(i=1;i<=100;i++) if(i*i+i >= 2*n) return i; return -1;
}
int func_while(int n) {
  int i=0; while(++i<=100) if(i*i+i >= 2*n) return i; return -1;
}
main() {
  int i,ans;scanf("%d",&i);ans = func_for(i);if(ans>=0) printf("answer = %d\n",ans); else printf("not found\n");
}

237 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:09:51 ]
>>225
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8532.txt
一応、例題の計算結果には合致するようだが、理屈は分からん。

238 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 01:11:59 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8533.txt
[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ名とバージョン:visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月9日
[5] その他の制限:特にありません。

よろしくお願いします。

239 名前:デフォルトの名無しさん [2009/01/06(火) 02:18:23 ]
[1]プログラミング
[2]int 型(符号つき32 ビット整数)および、unsigned int 型(符号なし32 ビット整数)のそれぞれの最大の素数を求めよ。
[3]環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名bcc
 [3.3] 言語:C言語
[4]特になしですが早めで。
[5]制限:エラトステネスを用いずに素数を求める。
どうか、よろしくお願いします。


240 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 03:38:59 ]
>>239
>>177あたりでどう?



241 名前:デフォルトの名無しさん [2009/01/06(火) 04:40:34 ]
>>240
みのがしてました。ありがとうございますです。

242 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:19:55 ]
スイマセン、どなたか>>200
(99+1)/2
の処理の意図を教えて頂けないでしょうか・・後から質問でスイマセン。

243 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:32:30 ]
>>242
等差数列の和=項数*(初項+末項)/2

244 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 08:44:07 ]
>>239 >>182 辺りが良いでおじゃるよ?

245 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 09:03:46 ]
>>238
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8534.txt

246 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 10:03:14 ]
>>242
ttp://www.kwansei.ac.jp/hs/z90010/sugakua/suuretu/tousasum/tousasum.htm

247 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:31:15 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):氏名と年齢を扱うプログラムを作りたい。これらのデータはリスト構造を用いて管理したいので、
1.リスト構造の要素となる構造体の型宣言を行え
2.上記構造体によって構築されたリスト構造の適切な箇所に新しい要素を追加する関数を作成せよ

なお、以下の点も守ること
・リスト構造は単方向リストとすること
・リスト構造のデータは年齢順に並ぶようにすること
・リスト構造はポインタ変数rootから始まるようにすること
・関数は新しい要素を受け取って、それをリスト構造に追加する形式にすること
・変数rootはグローバル変数とし、関数に渡さなくてもよい


[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ名とバージョン:visualC++2005
 [3.3] 言語:C/C++
[4] 期限:1月7日12:00まで
[5] その他の制限:特になし

よろしくお願いします。

248 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 12:38:29 ]
麻呂のクソースを改変するでおじゃるよ

249 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 15:05:44 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8535.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC2005
 [3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限:for,if等基本的なものを使う。strは禁止。

それではよろしくお願いします。

250 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 15:08:14 ]
>strは禁止。
str〜系関数のこと?
最初std::stringかと思ったが・・・



251 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 16:35:41 ]
[1] 授業単元:プログラミング
[2] 問題文
Step 1. float型配列の先頭アドレスを受け取り,その配列内から最大の値を探して,
それを関数値として戻す関数 float max(float data[], int n) を定義せよ.ここで,nは配列data[]に入っている有効なデータの数(有効な配列要素は,0〜n-1)である.
またデータに負の値はないものとする.

Step 2. main()関数内で,要素数100程度のfloat型配列を宣言し,課題11-2で作成したデータ入力関数のinput()関数を再利用してデータを配列に入力するようにプログラムする.
次に,Step1で作成した関数をmain()関数内呼び出して最大値を表示せよ.

[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限 特になし

よろしくお願いします



252 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 17:01:44 ]
>>251
問題文も読まずに丸投げとは・・・






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef