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


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

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



1 名前:デフォルトの名無しさん [2009/06/24(水) 23:28:21 BE:454421568-DIA(282072)]
あなたが解けない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++の宿題片付けます 127代目
pc12.2ch.net/test/read.cgi/tech/1244449887/

792 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 19:54:59 ]
>>791
通報しようかどうしようか悩むな。
アウアウなことはガチなんだけど。

793 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 19:59:01 ]
某著作権寄生団体に見つかるまえに削除しとけー

794 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:23:22 ]
>>786
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9710.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9711.c

795 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:24:16 ]
バイナリと問題文で違いがあるの?

796 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:42:12 ]
>>771
#include <stdio.h>
struct person {
int no;
char *name;
int age;
};
double average_age(struct person *persons) {
int n, sum = 0;
for (n = 0; persons[n].name != NULL; n++) {
sum += persons[n].age;
}
if (n == 0) {
return -1;
} else {
return (double)sum / n;
}
}
int main(void) {
struct person persons[] = {
{1, "ichiro", 30},
{2, "jiro", 27},
{3, "saburo", 23},
{4, "shiro", 19},
{5, NULL, 0}
};
printf("平均年齢は%g\n", average_age(persons));
return 0;
}

797 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:45:00 ]
[1] C言語を使って計算を簡略化する:
[2] XY平面上の3点P1(x1,y1)P2(x2,y2)P3(x3,y3)の座標を順に入力した時、3点が同一直線上にあるかどうかを調べて
  結果を表示するプログラムを作成せよ。:
[3] 環境
 [3.1] Windows
 [3.2] Borland
 [3.3] C:
[4] 2009年7月10日8:35まで:
[5] その他制限:
  入力される座標はすべて第一象限です。
  よろしくお願いします。


798 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:15:37 ]
>>797
#include <stdio.h>
int main()
{
int x1,y1,x2,y2,x3,y3;
printf("x1>"); scanf("%d", &x1);
printf("y1>"); scanf("%d", &y1);
printf("x2>"); scanf("%d", &x2);
printf("y2>"); scanf("%d", &y2);
printf("x3>"); scanf("%d", &x3);
printf("y3>"); scanf("%d", &y3);
if ((x3 - x1) * (y2 - y1) == (x2 - x1) * (y3 - y1))
printf("同一直線上にあります\n");
else
printf("同一直線上にありません\n");
return 0;
}

799 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:26:35 ]
[1]C言語中級
[2] int bitmap[640][480]はビットマップ画像の画素を表すものとする。
指定された点x,yを含む指定された境界色C2で囲まれた平面領域を
指定された色C1で塗りつぶす関数
paint(int x,int y,int c1,int c2)を作成
[3] linux/gcc/C言語
☆再帰(間接を含む)を使ってはならない。
☆十分な速度が必要( 基準PC(PCセンター端末 Cerelon 800MHz)で100回/秒以上)
☆三角形、四角形、円、楕円、放物線で囲まれた領域、それぞれ5つのケース
について実行前のbitmapと実行後の配列をバイナリファイルとして
triangle.pre.bitmap triangle.post.bitmap
rectangle.pre.bitmap rectangle.post.bitmap
circle.pre.bitmap circle.post.bitmap
ellipse.pre.bitmap ellipse.post.bitmap
parabora.pre.bitmap parabora.post.bitmap
という名称で保存したものとソースコード、これをコンパイルしたものを
work20090717.xxxxxx.zipという形式でzip圧縮したものをメール添付
(xxxxxxは学籍番号下6桁)
[4] 7/17 正午まで

800 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:26:48 ]
>>798
ありがとうございます!できました




801 名前:デフォルトの名無しさん [2009/07/09(木) 04:59:49 ]
[1] 授業単元: コンピュータネットワーク
[2] 問題文(含コード&リンク):(課題)
  Dijkstra法のプログラムを完成せよ。
(Dijkstraのアルゴリズムの擬似コード)
#include <stdio.h>
#define M 8 //ノードの数
#define Z 300 //無限大
int c[M][M] = { 0, Z, Z, Z, Z, Z, 7, 2},{ Z, 0, 8, 7, Z, Z, Z, 1},{ Z, 8, 0, Z, Z, Z, Z,10},{ Z, 7, Z, 0,10, 3, Z, Z},{ Z, Z, Z,10, 0, 8, Z, 5}, { Z, Z, Z, 3, 8, 0, 2, Z}, { 7, Z, Z, Z, Z, 2, 0, 9}, { 2, 1,10, Z, 5, Z, 9, 0}; //隣接行列
int main(void){
int start; //ソースのノード
int d[M]; //ノードまでのコスト
int v[M]; //確定フラグ
int p[M]; //前のノードへのポインタ
     printf("start\n");
scanf("%d",&a);//ソースノードstartを指定する
for (j=0; j<M; j++){
        //最小コストのノードを探す、最小コストのノードを確定する
         for(k=0; k<M; j++){
           //wを経由してkにいたるコストがそれまでの最短路のコストより小さければd(k)を更新
          }
     } //ソースノードから各ノードへの最小コストと最短路を表示する
}
[3] 環境
 [3.1] OS: Windows [3.3] 言語: C++
[4] 期限: 2009年7月9日16:00まで
[5] その他の制限:なし

488です。焦りすぎて規約を読まずに投稿してしまいました。すみません。
期限ギリギリなのですがお力を貸していただけると嬉しいです。よろしくお願いします。

802 名前:784 mailto:sage [2009/07/09(木) 09:35:23 ]
784です。

一晩やってみたのですが、結局まったく出来ずに朝を迎えてしまいました・・・orz

どなたか、どうかお願いします。

803 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 09:56:18 ]
>>802 少し簡単にしてみた
char* getword(FILE* f){
char buffer[MAXSIZE]={0}, firstchar[10]={0};

fscanf(f, "%*[^a-zA-Z]");
if(fscanf(f, "%1[a-zA-Z]%1022[0-9a-zA-Z]", firstchar, buffer+1)>=1){
buffer[0]=firstchar[0];
return strdup(buffer);
}
return NULL;
}

804 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 10:47:17 ]
[1] 授業単元:確率論
[2] 問題文(含コード&リンク):

・正規乱数の発生 (ボックスミュラー法)
ボックス・ミュラー法により,区間[0, 1) の一様乱数から標準正規分布N(0, 1) に従う
正規乱数を100,000 個発生し,そのデータから得られる以下の各項目を報告せよ。
なお、一様乱数の生成は合同式法を用い,また正規乱数の生成はBox-Muller 法
を用いて,いずれもC言語プログラムで実現すること.(既存のRAND関数などを用いてはならない)

1. 正規乱数の平均値.
2. 正規乱数の標準偏差.
3. 正規乱数のヒストグラム.区間[-5, 5] を100 分割したものとする.
(ヒストグラムはhistgram[100]の様に宣言し、100個それぞれの出現個数を足していったものです)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2009年7月10日12:00まで]
[5] その他の制限: 既存のRAND関数使用不可

先日>>251で教えていただいた中心極限定理を書き換えて作成していたのですが、
上手くできませんでした。

宜しくお願いします。

805 名前:デフォルトの名無しさん [2009/07/09(木) 11:53:21 ]
>>804
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9712.txt
RAND_MAXがダメだって話だったから、INT_MAXに書き換えておいた。

806 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:19:34 ]
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
  二つの複素数 α、βの実数部、虚数部の値(実数)をそれぞれ入力し、
   α/β
(αをβで割った商)を求めて表示せよ。(表示方法は複素数らしくなるよ
うに工夫せよ。)

 ただし、複素数を、実数部と虚数部に対応するメンバで構成される構造体
として表し、複素数の除算用関数c_div()を作成して、これを利用すること。
 この関数は、sとtを複素数を表す構造体としたとき、c_div(s,t)と呼び出
すと、戻り値としてsをtで除算した結果である複素数の構造体を返すものと
する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: c++Builder
 [3.3] 言語: C
[4] 期限: 2009年7月10日12:00まで
[5] その他の制限: なし

お願いします。


807 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:28:34 ]
>>806
あれ?デジャブ・・・

808 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:28:30 ]
>>802
こんなんでいいかい?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9713.zip

809 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:29:10 ]
>>801
もう見てないかも試練がクソース

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9714.c

810 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:46:45 ]
>>805
ありがとうございました。



811 名前:デフォルトの名無しさん [2009/07/09(木) 14:52:22 ]
>>809
ありがとうございました。
助かりました!

812 名前:デフォルトの名無しさん [2009/07/09(木) 14:58:07 ]
[1] 授業単元:C言語で簡単なゲーム
[2] 4目並べの勝ち負け判定
[3] 環境
 [3.1] OS: UNIX
 [3.2] gcc
 [3.3] cのみ
[4] 期限: 7/9 18:00
[5] その他の制限:できるだけ簡単な作りにしていただきたいです。中高生なみの。

お願いします。

813 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:08:12 ]
>>812
4目並べにもいろいろあるぞ。重力の有無、盤面サイズ、その他もろもろを教えれ

814 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:19:41 ]
>>806
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9716.txt

思いっきりデジャブだけど、その時に作ったソースがそのまま
残っているのでそのままうpした

815 名前:784 mailto:sage [2009/07/09(木) 15:23:16 ]
>808

すいません、今見に来ました。
何とか今日の夜まで猶予をもらったので、
もう一度zip落とさせてもらえないでしょうか。
落としてみたら、ファイルが無かったようなので・・・。

816 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:24:11 ]
>>815
今やってみたら普通に落とせたけど?

817 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:24:37 ]
>>815
まだ残ってるぞ

818 名前:784 mailto:sage [2009/07/09(木) 15:30:02 ]
すいません、今もう一度やってみたらできました!!

>>816 >>817
失礼しました。

>>784
本当にありがとうございました!大感謝です。
これで単位がもらえる・・・

皆様、ありがとうございました。

819 名前:784 mailto:sage [2009/07/09(木) 15:31:08 ]
興奮して間違えたorz

改めて
>>808
ありがとうございました!

820 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 16:18:20 ]
お願いします。

[1] 授業単元: 論理設計
[2] 問題文: 3入力のクワイン・マクラスキー法のプログラムを作成せよ
[3] 環境
特に無し(紙に書いて提出)
言語:C++
[4] 期限:07月13日(月)まで
[5] その他の制限:特にないです。



821 名前:812 [2009/07/09(木) 17:07:41 ]
812での追記
4目並べ
重力は無しです、盤面サイズは10×10。
駒黒1
駒白−1
っと設定しています。これで、作っていただきたいです。

822 名前:デフォルトの名無しさん [2009/07/09(木) 17:34:59 ]

何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理するプログラムを作る。

(1)科目別の最高点、最低点を表示する。
(2)各学生の3教科の平均点を表示する。
(3)各教科の平均点を表示する。

ただし Ctrl+zが押されるまで次々と整数値を読み込んでいくものとする。

以上の問題お願いします
m(__)m

823 名前:デフォルトの名無しさん [2009/07/09(木) 17:49:24 ]
>>812
>>449のプログラムを流用で
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9717.txt

824 名前:デフォルトの名無しさん [2009/07/09(木) 18:32:51 ]
>>822

質問テンプレ忘れてました。
[1] 単元:プログラミング工学1
[2] 問題文:下記にあります。
[3] 環境
:Windows
[3.3] 言語: C++
[4] 期限:あと40分位でお願いします。

何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理するプログラムを作る。

(1)科目別の最高点、最低点を表示する。
(2)各学生の3教科の平均点を表示する。
(3)各教科の平均点を表示する。

ただし Ctrl+zが押されるまで次々と整数値を読み込んでいくものとする。

以上の問題お願いします
m(__)m

825 名前:デフォルトの名無しさん [2009/07/09(木) 19:20:54 ]
〔1〕授業単元:C言語
〔2〕問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9718.txt
〔3〕環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
〔4〕期限:7月10日 18時
〔5〕コマンド引数、再帰呼び出しまで習いました
   よろしくお願いします


826 名前:デフォルトの名無しさん [2009/07/09(木) 20:13:56 ]
1] 授業単元: 宿題
[2] 問題文(含コード&リンク): 整数を入力し、奇数か偶数かを判断するプログラム(switch文で
[3] 環境
 [3.1] OS: (Windows/Linux/等々) XP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) borland
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 明日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)


827 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:41:18 ]
[1] 授業単元:オペレーティングシステムT
[2] 問題文(含コード&リンク):exp7.cのプログラムを応用し、コマンドの引数xxxxで指定したファイルが更新されたら直ちに
"Modified xxxxfile on Day Month date hh:mm:ss yyyy"
というメッセージを表示するプログラム(ファイル更新を監視する常駐プログラム)を作成せよ。常駐プログラム(バックグランドで起
動され一般に広義のデーモンと呼ばれる)は、kill pid コマンドが入力されるまで、動き続けるように作成すること。

exp7.cは
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9720.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 09年7月13日正午
[5] その他の制限: プログラミング能力を問う科目でないため、特に制限はありません。
ですが、添付したソースに適したレベルでお願いします。

<実行結果>
$ gcc -o exp8 exp8.c
$ exp8 exp8 &
$ ps
PID TTY TIME CMD
3028 pts/1 00:00:00 bash
3073pts/1 00:00:00 exp8
3074 pts/1 00:00:00 ps
$ touch exp8
$
Modified exp8 file on Sun May 25 14:20:26 2008
touch exp8
$
Modified exp8 file on Sun May 25 14:20:26 2008
kill 3073
$

828 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:19:28 ]
>>827
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>

int main(int argc, char **argv)
{
 char *file_name = argv[1];
 struct stat sb;
 time_t old_mtime;

 stat(file_name, &sb);
 old_mtime = sb.st_mtime;
 while (1) {
  usleep(500000);
  stat(file_name, &sb);
  if (old_mtime != sb.st_mtime) {
   printf("'%s'が書き換えられた!%s", file_name, ctime(&sb.st_mtime));
   old_mtime = sb.st_mtime;
  }
 }
}


829 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:46:36 ]
>>826
switch文で判定するとか問題がカス過ぎるだろ

#include <stdio.h>
int main(){
int n;
printf("input number > ");
scanf("%d",&n);

switch(n){
default: printf("%s",n&1 ? "odd" : "even");
}

return 0;
}

830 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:51:11 ]
#include <stdio.h>
int main(){
int n;
printf("input number > ");scanf("%d",&n);
switch(n%2){
case 0: printf("even¥n");break;
case 1: printf("odd¥n");break;
default: printf("Bug of processor??¥n");break;
}
return 0;
}
としたらBug of processorと表示されることは内と言える?




831 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:07:22 ]
>>829
ひどい奴だなwww もっとこう出題者の意向をくんでやれよ。いいよ俺が答えてやる

>>826
#include <stdio.h>
int main(){
int n;
printf("input number > ");
scanf("%d",&n);

switch(n){
case 0: case 2: printf("偶数です!\n"); break;
case 1: case 3: printf("奇数です!\n"); break;
default: printf("わかりません!\n"); break;
}

return 0;
}

832 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:32:39 ]
>>831
「わかりません」ってなんだよ

>>826
下のプログラムを実行したら、ちゃんとintの範囲なら全部判定できるプログラムができるからやってみなw

#include <stdio.h>
#include <limits.h>

int main(){
  int i;
  printf("#include <stdio.h>\n"
    "int main(){\n"
    "\tint n;\n"
    "\tprintf(\"input number > \");\n"
    "\tscanf(\"%%d\",&n);\n"
    "\tswitch(n){\n"
    "\tcase %d:\n", INT_MIN);
  for(i = INT_MIN + 2; i > INT_MIN + 1; i+=2) printf("\tcase %d:\n", i);
  printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);
  for(i = INT_MIN + 3; i > INT_MIN + 1; i+=2) printf("\tcase %d:\n", i);
  printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n", INT_MIN % 2 ? "偶数" : "奇数");
  printf("\t}\n"
    "\treturn 0;\n"
    "}\n");
  return 0;
}

833 名前:832 mailto:sage [2009/07/09(木) 22:41:20 ]
わりぃ、1箇所ばぐっとった

printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);
  ↓
printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d:\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);

これで完璧。
期限までに間に合わんかったらごめんな。

834 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:48:06 ]
2009/7/9 24:00 締め切り埋め祭り
>>830 &yen;以外で文字化け
#include <stdio.h>
int main(){
  int n;

  printf("input number > ");
  scanf("%d",&n);
  switch( (n&1) == 0 ) { // 最下位ビットは0か
    case 0: printf("奇数です!\n"); break; // いいえ
    case 1: printf("偶数です!\n"); break; // はい
  }
  switch( (n&1) != 0) { // 最下位ビットは1か
    case 0: printf("偶数です!\n"); break; // いいえ
    case 1: printf("奇数です!\n"); break; // はい
  }
  return 0;
}

835 名前:デフォルトの名無しさん [2009/07/09(木) 22:49:40 ]
パスカルの三角形を出力するのに
#include <stdio.h>
#define N 10

int main(void){
int i, j = 1, x, y;
int d[N][N]={};

/* 三角形を作成 */
for (i = 1 ; i < N ; i++){
d[i][0] = 1;
while (j <= i - 1){

d[i][j] = d[i-1][j-1] + d[i-1][j];
j ++;
}
}

/* 三角形の表示 */
for (y = 0; y < N; y++) {
for (x = 0; x < N-y; x++)
printf(" ");
for (x = 0; x < y; x++)
printf("%3d ", d[x][y]);
printf("\n");
}
return 0;
}
と書きましたが、すべての要素がゼロになってしまいます。
どこがまちがっているのでしょうか??


836 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:58:02 ]
>>835
while文の前にj=1の初期化が抜けてる
表示部分でd[x][y]のxとyが逆

837 名前:836 mailto:sage [2009/07/09(木) 23:01:01 ]
>>835
おま、Cなら俺に聞けスレとのマルチポストじゃねえか!
しかもあっちで答もらってんじゃんよ!
>>836は取り消す。答えなかったことにする

838 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:02:35 ]
やっぱテンプレ守れんやつは
守れんやつだけのことはあるってことか

ご愁傷様

839 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:06:16 ]
>>835
マルチポスト乙。

マルチポスト - Wikipedia
ttp://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88


840 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:07:56 ]
>>830
CPUにバグなんてあるわけないだろ
プログラムが仕込まれているわけでもあるまいし




841 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:09:11 ]
>>840
CPUの場合はバグとはいわずエラッタという言葉で予定してない動きをさすのはあるよ

インテルとかAMDもたまにやらかしてる

842 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:09:16 ]
いやいやwww

843 名前:842 mailto:sage [2009/07/09(木) 23:10:15 ]
>>842>>840にっすよ念のため

844 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:34:09 ]
>>835
別のスレに回答しておいた。
出力結果のサンプルはこんな感じ。
                           
                            1 
                         1     1 
                      1     2     1 
                   1     3     3     1 

845 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:36:07 ]
・3・3・3・3・3・3・)v

846 名前:842 mailto:sage [2009/07/09(木) 23:39:12 ]
ネタにマジレスして恥ずかしいので軽く吊ってくる

847 名前:デフォルトの名無しさん [2009/07/09(木) 23:43:14 ]
デフォルトの名無しさん:2009/07/09(木) 20:13:56
1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク): LLLアルゴリズムをCでプログラミング
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: C言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2009年7月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

Webや本を見ているのですが、
二次行列で書いてあったり一次行列で書いてあったりしてよく分かりません。
よろしくお願いします


848 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:19:21 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):日曜日から土曜日までの曜日を表す列挙型Dayが定義されている.このとき,2つの曜日を引数として与えると,その曜日間の最短距離を計測する関数day_distanceを作成せよ.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:C++
 [3.3] 言語: C++
[4] 期限: 2009年7月10日午前9時半 なので午前5時ぐらいまでにやっていただければ・・・
[5] その他の制限:

関数distanceの呼び出しは↓
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};
int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

以下,続きへ

849 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:21:47 ]
>>848の続きです

#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};//曜日を表す列挙型の定義
void day_load(Day a, Day b){
if(a<b){
Day temp;
temp=a,a=b,b=temp;}
switch(a-b){
case 1:
cout << "1" << endl;
break;
case 2:
cout << "2" << endl;
break;
case 3:
cout << "3" << endl;
break;
}
}
int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

のように作ったら,day_distanceが宣言されないと言われます
どうすればいいでしょうか?

850 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:25:35 ]
day_loadじゃないの?



851 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:27:35 ]
voidの横をday_distanceにすると,voidとcoutの3つにエラーが出てしまいます
ちなみにEclipseでやってます

852 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:38:58 ]
>>849
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される



day_load(Sun, Tue);
day_load(Mon, Fri);
day_load(Sun, Sat);

に変える

853 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:40:17 ]
とりあえず答えだけ。いろいろアレ過ぎるんで、ネットじゃなくリアルで指導してもらった方が良い。

int day_distance(Day a, Day b){
  return a > b ? a - b > 7 - a + b ? 7 - a + b : a - b : b - a > 7 - b + a ? 7 - b + a : b - a;
}


854 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:42:05 ]
>>849
>のように作ったら,day_distanceが宣言されないと言われます
>どうすればいいでしょうか?
day_distanceを宣言する

#include <iostream>
#include <cmath>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};

int day_distance(Day d1,Day d2){
int table[]={0,1,2,3,3,2,1};//,{1,0,1,2,3,3,2},
return table[abs(d2-(d1-Sun))%7];
}

int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

そのswitch-case

855 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:43:17 ]
は汎用性無いからやめた方がいい

途中で書き込んでしまったorz

856 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:47:39 ]
>>854
すみません,includeの<cmath>って何でしょうか・・・?
<iostream>しか使ったこと無いので・・・

857 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:09:13 ]
math.hのC++版。数学関連の関数を使うために入れてる。ここではabs

858 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:10:36 ]
追記
iostreamをなぜ使っているかを理解してれば、そのような疑問は出てこないと思うんだけどね。
おまじないの犠牲者じゃないことを祈る。

859 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:25:55 ]
>>857
すみません,習ってないので分からないです・・・
もしswitchでやる場合は,どこをいじればいいでしょうか?

860 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:30:25 ]
>>857だけど、>>854は別人ね。

iostreamは習ったから使ってるという認識でいいのかな。
何のためにiostream使ってるの?



861 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:33:10 ]
>>860
すみません、恥ずかしながら分からないです・・・
ただ「プログラミング演習」という授業で、プリントなどに最初からinclude<iostream>と書いていたので・・・

862 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:34:23 ]
問題点1
 ・day_load関数を定義した
 ・day_distance関数を呼び出した
 という名前の矛盾
問題点2
 day_(load|distance)関数の戻り値がvoidであるにも関わらず、
 main関数で cout に放り込んでしまっていること

switchがどうとかよりも、根本的な問題点はここなので、
そこを解決すればとりあえずは動くようになると思うし、
これまで通りロジックを考えることに専念できると思う

863 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:39:40 ]
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat}



int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}
は最初から問題で定義されているので,この状況でswitchを使う場合はどうすればいいでしょうか?

864 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:40:03 ]
問題点1について>>850が解決方法を提案し
>>851で問題点1を解決した結果、問題点2が表面化した。
>>852は問題点2の解決方法を提案してくれたが>>849はそれを無視している。

問題解決は目前であるにも関わらず、全く別の解決方法である>>854に目を向けて
cmathがなんであるかなどと悩んでいる。

865 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:42:21 ]
day_distance関数が数値を返すようにすればいい。

866 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:44:41 ]
>>864
あ、すみません
coutの3つをday_loadに変更してもエラーが発生したもので・・・

>>865
すみません、分かりません・・・
本当に無知で申し訳ないです・・・

867 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:53:15 ]
>>866
int day_distance(Day a, Day b){ // 戻り値をintに変えた
中略
case 1:
return 1; // コンソール出力をするのではなく、数値を返却するように変えた
case 2:
return 2; // コンソール出力をするのではなく、数値を返却するように変えた
case 3:
return 3; // コンソール出力をするのではなく、数値を返却するように変えた
}
return -1; // どれにも当てはまらない場合は不正とみなして-1を返却するようにした
}

そもそも、main関数の記述が指定されている以上、>>852の提案をはねつけるべき。

868 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:59:25 ]
>>867
共に3と1が出力されるはずの2行目と3行目で-1が出力されてしまいます・・・

869 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:02:05 ]
>>848 >>849
に質問があるけど
>>859
switchを使うのは必須なの?
題意を満たすプログラムの制約をちゃんと示さないと無駄な回答が増えるだろ

>>868
よくわかんないけど今まで言ってた条件満たしたプログラム書いてやるから待ってろ

870 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:03:38 ]
>>868
それはあなたがこだわっていたswitchのロジックがおかしいだけ。
>>862の、
> これまで通りロジックを考えることに専念できると思う
はそれを指しているんじゃないの。



871 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:04:55 ]
>>869
作ってくれなんて言われてないのに親切なお方

872 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:05:12 ]
>>869
学校で友人に聞いたプログラミングの中にswitchが入っていたのですが、時間の都合上途中までしか聞けなかったもので・・・

873 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:08:25 ]
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};

int day_distance(Day d1,Day d2){
int table[]={0,1,2,3,3,2,1};//,{1,0,1,2,3,3,2},
int distance=d2-(d1-Sun);
distance=(distance<0)?-distance:distance;
return table[distance%7];
}

int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

874 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:13:25 ]
>>873
ありがとうございます! ちゃんと出力されました!

他の皆さんも多大な迷惑をかけて申し訳ないです・・・

875 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:24:10 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char[],char[])を作成せよ.

出力例:

文字列x(64字まで)? University
文字列y(64字まで)? sity
"University"に"sity"は含まれます。

文字列x(64字まで)? University
文字列y(64字まで)? city
"University"に"city"は含まれません。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他の制限:文字列まで.

お願いします

876 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:36:23 ]
>>875
/* 含まれる場合は1 含まれない場合は0を返却 */
int str_comp(char src[],char dst[])
{
return (strstr(src, dst) != NULL);
}


877 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:38:31 ]
変数名がおかしすぎた。

/* 含まれる場合は1 含まれない場合は0を返却 */
int str_comp(char target[],char search[])
{
return (strstr(target, search) != NULL);
}

878 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 03:13:47 ]
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
char型配列xに格納された文字列を一文字ごとに空白を開けて逆順に出力する関数
reverse_array(char[])を以下のように出力されるよう作成せよ。

処理前:Tokyo
関数reverse_array()を呼び出しました
処理後:"o y k o T"


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/14
[5] その他の制限:おねがいします。

879 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 03:49:22 ]
>>878
void reverse_array(char s[])
{
int i, len = strlen(s);
printf("処理前:%s\n", s);
puts("関数reverse_array()を呼び出しました");
printf("処理後:\"");
for(i=len-1; i>=0; --i){
putchar(s[i]);
if(i) putchar(' ');
}
puts("\"");
}

880 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 04:20:26 ]
>>877
ありがとう
それ使って書いてみたんだけどエラーが出てしまう・・・。
関数勉強し直します……。
誰か暇だったらでいいので例をつくってください。



881 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 04:47:24 ]
>>880
877じゃないけどどんなエラーがでたのか書こうぜ

例ってなにを作って欲しいんだ?

882 名前: ◆/91kCCQXBo mailto:sage [2009/07/10(金) 07:20:19 ]
エラーはこれを定義すれば直ると思う。
#include <string.h>

main(スタブ)からは、関数パラメータを2個付けて呼び出すだけでいいだろう。

883 名前:デフォルトの名無しさん [2009/07/10(金) 11:10:12 ]
すいません、どなたか>>825をお願いします
厚かましくて申し訳ありません・・・

884 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:32:07 ]
>>883
課題1
#include <stdio.h>

int main(int argc, char **argv)
{
if (argc < 3) { fprintf(stderr, "Error: too few arguments\n"); return 1; }
if (argc > 3) { fprintf(stderr, "Error: too many arguments\n"); return 1; }
printf("My name is %s %s\n", argv[1], argv[2]);
return 0;
}

885 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:37:46 ]
>>883
課題2
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char **argv)
{
int s = 0;
int i;
if (argc < 3) { fprintf(stderr, "Error: too few arguments\n"); return 1; }
for (i = 1; i < argc; i++) {
char *c;
for (c = argv[i]; *c; c++) {
if (!isdigit(*c)) {
fprintf(stderr, "Error: %s is illegal arguments\n", argv[i]);
return 1;
}
}
s += atoi(argv[i]);
}
printf("%d\n", s);
return 0;
}

886 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:37:59 ]
>>882
ありがとう、それ入れたらコンパイルできた。
>>881
コンパイルできる状態のプログラムが見たかったんだ。


887 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:42:37 ]
>>883
課題3
実行例3の結果は4になるんじゃないかな

#include <stdio.h>

int sum(int n, int m)
{
return (n >= m)? n: n + sum(n + 1, m);
}

int main(int argc, char **argv)
{
int n, m;
printf("n m: "); scanf("%d %d", &n, &m);
if (n > m) { fprintf(stderr, "n should be smaller than m.\n"); return 1; }
printf("%d\n", sum(n, m));
return 0;
}

888 名前: ◆/91kCCQXBo mailto:sage [2009/07/10(金) 11:50:27 ]
3連続投球終わったか?
//>>863 >>848の先生は、なんで火曜から月曜が1日なんて常識はずれな。
enum Day {Sun,Mon,Tue,Wed,Thr,Fri,Sat}; // Sun=0
int day_load[7][7] = {{0,1,2,3,3,2,1},{1,0,1,2,3,3,2},{2,1,0,1,2,3,3},{3,2,1,0,1,2,3},{3,3,2,1,0,1,2},{2,3,3,2,1,0,1},{1,2,3,3,2,1,0}};
int table[]={0,1,2,3,3,2,1};
int day_distance(enum Day st, enum Day en){
  int work,a=st,b=en;

  switch(0) { /* ここには 1 から 4 の数字を入れる。どれでも同じ結果になる。 */
  case 1: /* compact cost > speed cost */
    work = st<en?en-st:st-en;
    return work<=3?work:7-work;
  case 2: /* compact cost < speed cost */
    return day_load[st][en];
  case 3: /* >>853 */
    return  (a > b) ?
        (  (a - b > 7 - (a - b)) ?
            (7 - (a - b)) :
            (a - b)
        ):( (b - a > 7 - (b - a)) ?
            (7 - (b - a)) :
            (b - a)
        );
  case 4: /* >>854 */
    work = st<en?en-st:st-en;
    return table[work%7];
  default: /* NORMAL */
    return (en-st+7)%7;
  }
}

889 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:00:07 ]
>>762
これもできればよろしくお願いします。

890 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:35:51 ]
>>889
よくわからんけどなんとなくそれっぽいものを書いてみた
#include <stdio.h>

#define A 3
#define M 65535
#define N 128
#define S 17

int main(void)
{
int a[N];
int x0, x1;
int i;

x0 = S;
for (i = 0; i < N; ++i) {
x1 = (A * x0) % M; a[i] = x1; x0 = x1;
}
for (i = 0; i < N; ++i) {
printf(" %8d", a[i]);
if ((i + 1) % 8 == 0) puts("");
}
return 0;
}



891 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:54:16 ]
>>890
ありがとうございます。助かります。

892 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 17:01:55 ]
yaccとlexですがどなたか>>747よろしくお願いします。






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

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

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