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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
あなたが解けない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++の宿題を片付けます 102代目
pc11.2ch.net/test/read.cgi/tech/1197132472/

622 名前:デフォルトの名無しさん [2008/01/26(土) 08:05:18 ]
[3]環境
[3.1]XP
[3.2]visual studio 2005
[3.3]C++
[4]今日中
[5]なし


sageソコね、長文申し訳ないです、期間も短いので、困難かもしれませんが出来る限りでいいのでお願いできませんか?

623 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 08:06:33 ]
最後までsage損ねてる俺ばっかす・・・すいませんでしたorz

624 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 09:07:17 ]
>>614 B
#include <stdio.h>
#include <math.h>
main(int argc,char *argv[])
{
int point,i=0;
double x,y,old_x,old_y,distance=0.0;
char line[1000];
FILE *fp;
if(argc!=2){
printf("Usage: %s <filename>\n",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"r"))==NULL){
printf("file can't open.\n");
exit(1);
}
while(fgets(line,999,fp)!=NULL){
if(sscanf(line,"%lf %lf",&x,&y)==1){
point=x;//データが1つしかない=点の数なのでpointに代入
continue;
}
if(i==0){ old_x=x; old_y=y; }//初回は以前の点がないので同じにする
distance+=sqrt(((x-old_x)*(x-old_x))+((y-old_y)*(y-old_y)));//2点間の距離の公式
old_x=x; old_y=y;//前回座標の保存
i++;
}
printf("point = %d distance = %lf\n",point,distance);
}
前回の点から今回の点まで移動した距離の合算でいいんだよね?

625 名前:デフォルトの名無しさん [2008/01/26(土) 12:05:11 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5910.zip
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5911.zip
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:なし

分かりません、よろしくお願いします。

626 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:40:18 ]
zipの場合は簡単に説明を書いてくれ
落として解凍するのダルいし

627 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 12:55:02 ]
なぜzipなんだ・・・やる気うせる
ウィルス恐いよ〜・゚・(つД`)・゚・。

628 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:17:54 ]
ウィルス恐いよ〜(笑)

629 名前:625 [2008/01/26(土) 13:37:03 ]
内容は点電荷の電位を計算して、電荷の分布と電位の関係を求めるとありました。
もしかしたらこんな課題やらせるようなスレじゃなかったりして(汗)

ZIPは安心して、ウィルスなんかないから(´∀`)

630 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:38:13 ]
俺は電磁気学は興味ないからやってないしな。
力学なら余裕なんだがすまんね



631 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:40:10 ]
>>624
そうです、ありがとうございました

632 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:55:33 ]
電磁気しらんで方程式くそくらえ、電磁気のラウンド微分はどうし様

633 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 13:57:47 ]
へん微分と数論は違うんだからね、ふん

634 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:31:59 ]
(´∀`)

635 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:47:17 ]
X+とX++の違いをわかる奴は天才だろ

636 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 14:49:25 ]
バグを作らないグループとバグをツクリヤスイグループってあるわ、人のいうこと聞かない

637 名前:デフォルトの名無しさん [2008/01/26(土) 15:31:15 ]
[1] 授業単元:離散数学
[2] 問題文(含コード&リンク):
  格子点上に置かれた任意の4点を結ぶ最小の直線スタイナーツリーを見つけるプログラムを作成せよ。
  候補が複数ある場合は、それらを全て表示させるようにさせよ。

 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:2/7
[5] その他の制限:
直線スタイナー木とは、碁盤上の縦横の線の交点に点を置き、
置いた全ての点を、碁盤の直線に沿って作る線分によって結ぶネットワークの事です。
例 www.dotup.org/uploda/www.dotup.org2826.jpg.html
閉路(ある点を出て、またその点に帰ってくる道がある状態)を作ってはいけません。
その直線スタイナー木の中で、最も距離の短いものを探せというものです。
もちろん、答えは複数候補ある場合が圧倒的に多いです。

とりあえず、自分で4点の座標を適当に置いてやれ、という事です。

どんなに泥臭い方法でも構わないので、ご協力お願いします。

638 名前:579 mailto:sage [2008/01/26(土) 16:00:26 ]
>>585さん

本当にありがとうございます!


639 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:06:02 ]
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):
<問題1>
1からnまで加算して、その和が1000を超えるのはnがいくつのときか。
また、そのときの合計はいくつになるか。
<問題2>
1から30までの整数の中から奇数だけを取り出して配列に格納し、
その合計を求めるプログラムを作れ。
<問題3>
10個のデータをキーボードから入力し、合計を求めるプログラム
を作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:LCC-Win32
 [3.3] 言語:C
[4] 期限:2/5
[5] その他の制限:なし

お願いします。

640 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:26:34 ]
おまいら、マジデ、ノードが増えたら手におえなくなるという答えを期待している先生を
裏切るんだな



641 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:41:54 ]
>>639
問題1
#include <stdio.h>
int main(void)
{
int i, sum;
for(i=sum=0;sum<=1000;sum+=++i);
printf("%d, %d\n", i, sum);
return 0;
}


642 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:43:18 ]
まあ動的計画法でも使うんだろうな。

643 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:56:39 ]
>>639
2
#include <stdio.h>
int main(void) {
int odd[30/2+30%2] = {0}, n, i;
for(i=n=0;n<=30;++n) {
if(1 == n%2) {
odd[i++] = n;
}
}
for(i=n=0;i<sizeof(odd)/sizeof(int); ++i) {
n+=odd[i];
}
printf("%d¥n", n);
return 0;
}

644 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:58:50 ]
ちなみにodd eyeなのは狙ってやった。

645 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 17:08:39 ]
そこでORアルゴリズム

646 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:07:34 ]
>>620
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5913.txt
組んだ後にC++だと気づいたorz
なんでCだけど・・・一応うpしておきます。

647 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:58:08 ]
>>639
<問題3>
整数限定で。
#include <stdio.h>
#include <limits.h>

int main(void) {
int sum=0, i;
char sz[LINE_MAX];
const char * psz;
for(i=1; i<=10;) {
while(1) {
printf("input %d:", i);
if(fgets(sz, sizeof(sz), stdin)) {
int nTmp = strtol(sz, &psz, 10);
if('¥n' == *psz && sz != psz) {
sum += atol(sz);
++i;
break;
}
}
printf("error¥n");
}
}
printf("sum = %d¥n", sum);
return 0;
}

648 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:59:40 ]
すまん、パッチ。
- sum += atol(sz);
+ sum += nTmp;

649 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 23:26:00 ]
>>637
出力フォーマットが分からないと何とも。
あと入力されうる点の上下限値は示されてないのか。

4点からの最短共有点を列挙するプログラムを書いたので好きに変えてくれ。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5914.txt
入力フォーマットは雰囲気で把握してくれ。


650 名前:デフォルトの名無しさん [2008/01/27(日) 00:11:26 ]
[1] デジタル画像処理
[2] 直線補間法を用いて、[256x256]画素の画像を、[512x512]画素の画像になるよう
拡大するプログラムの作成
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 明後日までです
制限はないです!

お願いします。




651 名前:デフォルトの名無しさん [2008/01/27(日) 00:12:38 ]
[1] デジタル画像処理
[2] 直線補間法を用いて、[256x256]画素の画像を、[512x512]画素の画像になるよう
拡大するプログラムの作成
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 明後日までです
制限はないです!

お願いします。


652 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 00:32:44 ]
【時間切れ】 (1/26)
>625

【未解決問題】
>>603 1/27

>>614 1/28 8:00 残:課題2
>>581 1/28 9:00
>>650 1/29
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>79 無期限
>144 無期限 問題文>148

653 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 01:28:32 ]
>>603
#include <stdio.h>
#include <math.h>
double f(double x)
{
return sqrt(x)*sqrt(1.0-2.5e-5*x*x);
}
main()
{
double x;
FILE *fp;
if((fp=fopen("dat.csv","w"))==NULL){
printf("file can't open\n");
exit(1);
}
fprintf(fp,"x,f\n");
for(x=4.0;x<=20.0;x=x+0.5){
fprintf(fp,"%lf,%lf\n",x,f(x));
}
fclose(fp);
}

654 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:11:07 ]
>>583
スイマセン、ポインタも使わないという条件を書くのを
忘れていました。
もう一度お願いしてもいいでしょうか?

655 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:15:38 ]
>>654
条件後付けして再度やってくれって・・・。
つか、”ちゃんとソース見た"のか?

656 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:16:43 ]
>>654
#include<stdio.h>
int main(void){
    int year, month, day, week, tmpm, tmpy, i;
    int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    year = tmpy = 2008;
    month = tmpm = 1;
    day = 1;
    if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29;
    if (tmpm < 3) {
        tmpy--;
        tmpm += 12;
    }
    week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7;
    for(; month <= 12; day++, week++){
        if(week == 7) week = 0;
        if(day == 1){
            printf("\n***** %04d / %2d *****\n", year, month);
            for(i=0; i < week; i++) printf(" ");
        }
        printf(" %2d", day);
        if(day == daymax[month-1]){
            putchar('\n');
            day = 0;
            month += 1;
            continue;
        }
        if(week == 6) putchar('\n');
    }
    return 0;
}

657 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 15:27:44 ]
ワロタ

658 名前:デフォルトの名無しさん [2008/01/27(日) 17:23:15 ]
>>581
(1)の問題のみ
www.aki7.com/cgi/up/file/whakei.zip

659 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:56:42 ]
OS Mac言語C言語



課題 13.3 キーボードから 5 個の英単語を入力し、辞書順に並べ替えて表示するプログラムを作成せ
但し、
? main関数内で単語を入力し、並び替える作業を関数 Sort 内で行なう
? 関数 Sortは戻り値がなく、入力した配列 wordを引数に持つ
? 結果の表示は main関数内で行なう
? 完全に辞書順にするのは難しいため、1 文字目のみを見て並び変えれば良いものとする
? 入力する単語は apple、peach、banana、grape、melonとせよ



自分で製作したのですが、無理でした。
基本これに、似た形を作ってもらって。
間違えも指摘してください。


#include<stdio.h>

#define N 5

void Sort(char input[][]);

main() {
int i;
char array[N[6];




660 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 17:58:01 ]
printf("Input %d numbers\n", N);
for(i=0; i<N; i++) {
printf("array[%d] = ", i);
scanf("%s", (array+i));
}

Sort(array);
printf("Sort result.\n");
for(i=0; i<N; i++) {
printf("array[%d] = %s\n", i, array[i]);
}
}

void Sort(char input[][]) {
int i, j;
char temp;

for(i=1; i<N; i++) {
for(j=N-1; j>=i; j--) {
if(input[j-1][0] > input[j][0]) {
temp = input[j-1];
input[j-1] = input[j];
input[j] = temp;
}
}
}
}



661 名前:デフォルトの名無しさん [2008/01/27(日) 18:32:35 ]
>>583ってポインタ使ってないよね?


662 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:55:05 ]
>>656
printf()って、引き数にポインタをとるんですよね?
ポインタを使わないでくださいって書いているんですけど読めないんですか?

663 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 18:55:54 ]
>>659
>間違えも指摘してください。
「間違え」ではなくて、「間違い」ですね。

664 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:08:53 ]
一次配列の中身をランダムに置換して更に、それを
逆置換するプログラムを教えてください。
ある係数を渡すことで毎回同じ並びになるようにして
暗号のように使えるようにしないといけないみたいです。

 
例えば「1」という係数を渡すと
[3 2 4 1]を[2 4 1 3]にシャッフルして
それをもう一度[3 2 4 1]に戻したいです


665 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:25:04 ]
>>664
> 一次配列の中身をランダムに置換して更に、それを逆置換する
・一次配列って一次元配列ってこと?
・ランダムに置換の,「ランダムに」ってどの程度のことを言っているの?

666 名前:664 mailto:sage [2008/01/27(日) 19:36:22 ]
>>665
すみません「元」が抜けてましたね。
ランダムがどの程度か…そこまで指定されてないんですが
簡単な規則性が無ければ良いと思います。

667 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:38:22 ]
>>664
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ARRAY_SIZE 32
void shift(int *p, int v) {
int *buf = (int*)malloc(sizeof(int)*v+1);
memcpy(buf, p, sizeof(int)*v);
memmove(p, p+v, sizeof(int)*ARRAY_SIZE);
memcpy(p+(ARRAY_SIZE-v), buf, sizeof(int)*v);
}
void print(int *p) {
int i = 0;
printf("array[%d] = {", ARRAY_SIZE);
do {
printf("%d", p[i]);
} while (++i < ARRAY_SIZE && putchar(','));
printf("}\n");
}
int main () {
int i, in, array[ARRAY_SIZE];

for (i = 0; i < ARRAY_SIZE; ++i) array[i] = i;

print(array);
scanf("%d", &in);
shift(array, in%=ARRAY_SIZE);
print(array);
shift(array, ARRAY_SIZE-in);
print(array);
return 0;
}

668 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:39:11 ]
例の
> [3 2 4 1]を[2 4 1 3]にシャッフルして
これがモロ規則性あるからその通りに作った。

669 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 19:54:07 ]
>>659
Sort関数内に
printf("%d,%d\n",i,j);
を追加して、ちゃんとソートが行われているかどうか確認するといい




670 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:03:38 ]
>>664
#include<stdio.h>
#include<stdlib.h>
typedef struct tag_dataset{int index, data;}dataset_t;
void swap_int(int *a, int *b){int c;c=*a;*a=*b;*b=c;}
void swap_dataset(dataset_t *a, dataset_t *b){dataset_t c;c=*a;*a=*b;*b=c;}
void encode(int data[], int datanum, int seed){
int i;
srand(seed);
for(i=0;i<datanum;i++) swap_int(&data[i], &data[rand()%(i+1)]);
}
void decode(int data[], int datanum, int seed){
int i; dataset_t *tmp;
srand(seed);
tmp=malloc(sizeof(*tmp)*datanum);
for(i=0;i<datanum;i++) tmp[i].index=i;
for(i=0;i<datanum;i++) swap_dataset(&tmp[i], &tmp[rand()%(i+1)]);
for(i=0;i<datanum;i++) tmp[i].data=data[i];
for(i=0;i<datanum;i++) data[tmp[i].index]=tmp[i].data;
free(tmp);
}
void prt(int data[], int datanum){
int i;
for(i=0;i<datanum;i++) printf(" %d", data[i]);
printf("\n");
}
int main(void){
int data[]={1,2,3,4, 5, 6, 7, 8, 9, 10}, datanum=sizeof(data)/sizeof(data[0]);
encode(data, datanum, 0); prt(data, datanum); /* 0 の部分が乱数seed */
decode(data, datanum, 0); prt(data, datanum); /* 0 の部分が乱数seed */
return 0;
}



671 名前:581 mailto:sage [2008/01/27(日) 20:12:35 ]
>>658さん

解析サンプルまで付けてくださってありがとうございます(T_T)
本当に困っていたので助かりました!!

これを元に(2)と(3)にも挑戦します・・・
でも期限には絶対間に合う予感がしない・・・orz

672 名前:670 mailto:sage [2008/01/27(日) 20:13:10 ]
>>664
>>670 を書き直した
#include<stdio.h>
#include<stdlib.h>
void swap(int *a, int *b){int c;c=*a;*a=*b;*b=c;}
void encode(int data[], int datanum, int seed){
int i;
srand(seed);
for(i=0;i<datanum;i++) swap(&data[i], &data[rand()%(i+1)]);
}
void decode(int data[], int datanum, int seed){
int i, *tmp;
srand(seed);
tmp=malloc(sizeof(int)*datanum);
for(i=0;i<datanum;i++) tmp[i]=rand()%(i+1);
for(i=datanum-1;i>=0;i--) swap(&data[i], &data[tmp[i]]);
free(tmp);
}
void prt(int data[], int datanum){
int i;
for(i=0;i<datanum;i++) printf(" %d", data[i]);
printf("\n");
}
int main(void){
int data[]={1,2,3,4, 5, 6, 7, 8, 9, 10};
int datanum=sizeof(data)/sizeof(data[0]);
encode(data, datanum, 0); /* 0 の部分が乱数seed */
prt(data, datanum);
decode(data, datanum, 0); /* 0 の部分が乱数seed */
prt(data, datanum);
return 0;
}

673 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:13:23 ]
[1] 授業単元: cプログラミング入門」
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5918.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:1/31まで
[5] その他の制限;特になし
どうかよろしくお願い致します。

674 名前:659 mailto:sage [2008/01/27(日) 20:14:55 ]
自分でもう一度やってみたけど。分けわからなくなってきた。
もう本当に無理っぽい。

誰か、答えを教えてください。

675 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:38:56 ]
死ねカス

676 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 20:53:40 ]
[1] 授業単元:C言語演習
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5919.txt
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C言語
[4] 期限:1月28日中
[5] その他の制限:特にありません。
よろしくお願いします!


677 名前: ◆LnG.2EAY0A mailto:sage [2008/01/27(日) 21:01:19 ]
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):以下のゲームプログラムで、最初に設定する石の数を
ファイル操作を使って一括設定できるようにする。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5920.txt
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:VC 6
 [3.3] 言語:C
[4] 期限:2008年01月28日午前まで
[5] その他の制限:ファイル操作を習う所まで授業で進みました。
自分でも試行錯誤してみたのですが中々うまく行かず・・・
皆さんの知恵をお借りしたいと思います、よろしくおねがいします。


678 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:08:28 ]
>>659
ここは宿題スレだ。
組んで欲しいならテンプレ使って正式に頼め。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5921.txt
ギャーギャー騒がれると目障りだし、これ持って去りな。

679 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:36:04 ]
>>678
なんというツンデレw

680 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:55:48 ]
>>676
showpidがおかしくないか?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
pid_t pid;
int i, status, flg = 0;
for (i = 0; i < 10; ++i) {
if ((pid = fork()) < 0) {
fprintf(stderr, "error\n");
exit(1);
}

if (pid == 0) {
execv("showpid", NULL);
exit(1);
} else {
if (flg == 0) {
flg = 1;
printf("I am a parent with pid = %d.My child is %d.\n",getpid(),pid);
}
waitpid(pid, &status, 0);
}
}

return 0;
}



681 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 21:57:02 ]
## showpid ##
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
printf("I am a child with pid = %d,My parent pid is %d.\n",getpid(),getppid());
exit(EXIT_SUCCESS);
}

682 名前:664 mailto:sage [2008/01/27(日) 22:07:09 ]
>>870
助かりました☆
ありがとうございます!

683 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:08:13 ]
>>870
やるじゃん

684 名前:637 [2008/01/27(日) 22:08:40 ]
>>649

ありがとうございます!
あとはなんとかしてみようと思います。

685 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:16:07 ]
簡単なゲームを作れといわれたのですがわかりません
誰か助けてください

686 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:16:43 ]
>>685
>>677

687 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:50:20 ]
>>686
むつかしくてわかりません、もっと簡単なのお願いします
ポーカーとかでいいです

688 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:52:28 ]
>>687
頭は大丈夫か?


689 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 22:57:01 ]
ポーカーの方がよっぽど難しい罠

690 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:00:12 ]
>>687
まあ何も考えずに>>677の問題文にあるソースをコピってコンパイルして動かしてみろ
そして中身を理解しろ

ポーカーはそれからだ



691 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:05:29 ]
オセロ作るスレってのがあったな

692 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:06:59 ]
>>676
当方で確認した環境は Vine Linux 4.2 (kernel 2.6.16.36), 処理系は gcc 3.3.6 です。
showpid; kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5922.txt
tentimes: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5923.txt

関係ないが、
espio.air-nifty.com/espio/
によると、鳥インフルエンザがインドではやっているらしい。1400 人超えたとか超えないとか。
それにしても日本ではなぜ報道されないのか?

693 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:07:04 ]
釣りだろ

694 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 23:14:30 ]
>>673
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5924.txt

695 名前:692 mailto:sage [2008/01/27(日) 23:21:19 ]
>>680
確かに提示されたshowpidはおかしいですね。私もひっかかってしまった。

696 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 00:00:31 ]
【時間切れ】 (1/27)
なし

【未解決問題】
>>614 1/28 8:00 残:課題2
>>581 1/28 9:00 残:課題2、3
>>677 1/28 午前まで
>>650 1/29
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>79 無期限
>144 無期限 問題文>148

697 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 01:05:26 ]
オレも早くせっくるしたい、by20歳

698 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 02:54:34 ]
>>614 (>>696 1行目)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5925.txt

699 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:04:20 ]
[1] 授業単元:C演習
[2] 問題文(含コード&リンク):
/*ガウスの消去法プログラム*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#define A(x,y) a[(x)*(L+1)+y]
void output(double *a, int, int);
int gauss(double*a,double*x,int L,int n,double eps,int isw)
main(){
double amax,awap;
int i,j,k,l,m,ii,irow;
if(isw==1) output(a, L, n){
for(m=0;m<n-1;m++){
amax=fabs(A(m,m));
irow=m;
for(i=m+1;i<n;i++){
if(amax<fabs(A(i,m))){
amax=fabs(A(i,m));
irow=i;}
if(amax<=eps){
return(0);}
if(m!=irow){
for(l=m;l<n+1;l++){
続く
[3] 環境
 [3.1] OS: Windows 
 [3.2] コンパイラ名とバージョン: cresent
 [3.3] 言語: C++
[4] 期限: 1月28日11:00まで

700 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 03:18:16 ]
>>699
見難い。
出直して来い。



701 名前:673 mailto:sage [2008/01/28(月) 07:23:48 ]
<<694ありがとうございます!参考にします。

702 名前:デフォルトの名無しさん [2008/01/28(月) 10:56:13 ]
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):
配列に整数を100個蓄える。
(1)蓄える整数は関数randによって与えられるものとし、
この配列をバブルソートによってソートした結果を出力するプログラムを作成せよ。

(2)また、上の問題を選択ソートを使用したプログラムに変更せよ。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 1月29日

よろしくお願いします


703 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 11:26:39 ]
>>702 ありきたりで申し訳ないが
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100
#define SWAP(type, x, y) do{type tmp = x; x = y; y = tmp;}while(0)
// バブルソート
void bsort(int *a, int n){
    int i, j;
    for(i = 0; i < n - 1; i++)
        for(j = i + 1; j < n; j++)
            if(a[i] > a[j])
                SWAP(int, a[i], a[j]);
}
// 選択ソート
void ssort(int *a, int n){
    int i, j, min;
    for(i = 0; i < n - 1; i++){
        min = i;
        for(j = i + 1; j < n; j++) if(a[min] > a[j]) min = j;
        SWAP(int, a[i], a[min]);
    }
}
int main(void){
    int i, a[N];
    srand((unsigned)time(NULL));
    for(i = 0; i < N; i++) a[i] = rand()%100;
    for(i = 0; i < N; i++) printf("%4d", a[i]);
    printf("\n");
    bsort(a, N); // ssort(a, N);
    for(i = 0; i < N; i++) printf("%4d", a[i]);
}

704 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 11:42:15 ]
>>702
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//バブルソート
int main(void){
int i,j,num[100],temp;
srand(time(NULL));
for(i=0;i<100;i++)num[i]=rand();
for(i=99;i>0;i--){
for(j=0;j<i;j++)
if(num[j]>num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;}}}
for(i=0;i<100;i++)printf("%d\n",num[i]);
return 0;
}
//選択ソート
int main(void){
int i,j,num[100],min,temp;
srand(time(NULL));
for(i=0;i<100;i++)num[i]=rand();
for(i=99;i>0;i--){
min=i;
for(j=0;j<i;j++)if(num[min]>num[j])min=j;
temp=num[min];
num[min]=num[i];
num[i]=temp;}
for(i=0;i<100;i++)printf("%d\n",num[i]);
return 0;
}

705 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 13:00:19 ]
1] 授業単元:プログラミング演習T
[2] 問題文(含コード&リンク):
構造体を用いて加減算を行う。
以下の空白(oooo)を埋めよ。
#include <stdio.h>
struct { /* 構造体の宣言 */
struct{
int a;
int b;
}keisan;

int main( void )
{
  int wa, sa; /* 変数の宣言 */
  scanf( "%d, %d", &keisan.a, &keisan.b             ); /* 入力 */
  wa= oooo    ; /* 加算 */
  sa= oooo    ; /* 減算 */
  printf( "和は%d 差は%d\n", wa, sa ); /* 出力 */
return 0;

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] VC 5.5
 [3.3] 言語: (C)
[4] 期限: 無期限
[5] その他の制限: 特になし

途中まで自分で埋めたのですが、oooo部分が違うと指摘されました。
よろしくお願いします。

706 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:20:35 ]
>>705
wa = keisan.a + keisan.b
sa = keisan.a - keisan.b

707 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:27:12 ]
>>705
scanfの中も違う
scanf( "%d %d", &keisan.a, &keisan.b); /* 入力 */

708 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:39:04 ]
合ってるんじゃね?

709 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 13:44:44 ]
問題は、出題の意図がどうであったか、だな。

710 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 13:58:31 ]
>706-709
ありがとうございます。問題部分はこれで解決しました。
甘えてもう1題

[2] 問題文(含コード&リンク):
 2つの正の整数値a,bの最大公約数を出力するプログラムをユークリッドの互除法というアルゴリズムを用いて作成したい。
 以下のプログラムの****部分に適切な処理をいれて,プログラムを完成させなさい。

#include <stdio.h>
int main( void )
{
 int a, b;    /* 変数の宣言 */
 int m, n;
 scanf( "%d,%d", &a, &b );/* 2つの正の整数値を入力する */
 m=  a ;
 n=  b ;
 while(m **** n){   /* ユークリッドの互除法を適用 */
  if( m > n )
   m =  *****    ;
  else
   n =  ****     ;

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] VC 5.5
 [3.3] 言語: C言語
[4] 期限:無期限
[5] その他の制限: 特になし

同じく後半部分が解りませんでした。
よろしくお願いします。



711 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:12:14 ]
>>710
while(m != n){
    if(m > n)
        m = m - n;
    else
        n = n - m;
}

712 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:13:21 ]
#include <stdio.h>
int main(void)
{
int a,b,m,n;
scanf("%d %d",&a,&b);
m=a;
n=b;
while(m*n)
{
if(m>n)
m%=n;
else
n%=m;
}
printf("%dと%dの最大公約数は%dです",a,b,m+n);
return 0;
}

713 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 14:17:37 ]
lcmやgcdの問題が多すぎ。

714 名前:デフォルトの名無しさん [2008/01/28(月) 15:16:02 ]
柴田望洋の本を使ってる授業多いNE。

715 名前: ◆HXgzCCSIaM mailto:1 [2008/01/28(月) 15:17:33 ]
>711
ありがとうございます!助かりました。

>712
別の表記方法なんですね。
勉強になります。



716 名前:デフォルトの名無しさん [2008/01/28(月) 15:30:22 ]
[1]プログラミング入門
[2]問題文
 キーボードから月(1~12)を入力して、その月の日数を表示するプログラムを
 完成させなさい
[3]環境
 [3.1] OS:WindowsXP
 [3.2] VC 5.5
 [3.3] 言語: C言語
[4]期限:1月29日
[5]その他の制限特になし

初心者ですがよろしくおねがいします

717 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 15:35:48 ]
>>716
#include <stdio.h>

int main(void)
{
int month, Days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
scanf("%d", &month);
printf("%d", Days[month - 1]);
return 0;
}

718 名前:デフォルトの名無しさん [2008/01/28(月) 17:27:31 ]
[1]プログラミング演習U
[2]問題文
sample.txt 
0 1 2,
2 4 5,
3 4 2,
1 2 5,
2 2 2,
3 1 4,
1 1 2,
2 1 3,
3 5 4,
4 2 2,

 上の外部テキストファイル(sample.txt)に書かれている座標データを読み込み、
 1行ずつ順にx,y,zの配列に格納し、ちゃんと格納されたか出力してください。
[3]環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C言語
[4]期限:1月28日 17:00
[5]その他の制限特になし


719 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 17:32:35 ]
期限切れ

720 名前: ◆LnG.2EAY0A mailto:sage [2008/01/28(月) 18:21:22 ]
以前質問させてもらった>>677です。
期限を01月28日と書きましたが、宿題の期限が伸びたので
図々しい様ですが、改めてお願いさせて頂いても良いでしょうか?
内容は変わりありません。

[1] 授業単元:C言語
[2] 問題文(含コード&リンク):以下のゲームプログラムで、最初に設定する石の数を
ファイル操作を使って一括設定できるようにする。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5920.txt
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:VC 6
 [3.3] 言語:C
[4] 期限:2008年02月05日まで
[5] その他の制限:ファイル操作を習う所まで授業で進みました。
自分でも試行錯誤してみたのですが中々うまく行かず・・・
皆さんの知恵をお借りしたいと思います、よろしくおねがいします。




721 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 18:35:20 ]
>>720
問題文の意図が明瞭でない。それだと答えようがない

722 名前: ◆LnG.2EAY0A mailto:sage [2008/01/28(月) 19:19:25 ]
>>721
説明不足ですみませんでした。
問題文の元は、石取りゲームといって最初に全体の石の数・そこから一度に取れる数を設定しなければいけません、それが以下の部分です↓
printf("石を交互に取り、最後の1個を取った人が負けです\n");
while (1) {
nOrder = 1;
printf("石の数は(5以上100以下)==");
gets(answer);
nStone = atoi(answer);
if (nStone < 5 || nStone > 100) {
printf("石の数が不正です\n");
continue;
}
while (1) {
printf("一度に取れる石の数は(2以上)==");
gets(answer);
nGet = atoi(answer);
if (nGet >= nStone) {
printf("一度に取れる石の数が多すぎます\n");
continue;
}
if (nGet < 2) {
printf("一度に取れる石の数が少なすぎます\n");
continue;
}
break;
}
この部分で設定するのですが、最初の石の数・一度に取れる数を一度に設定できるようにしたいのです。例えば、
「一括設定を使いますか?→ y/n」→「難易度を選択して下さい→ 1:優しい 2:普通 3:難しい」
ここで1を入力すると、石の数と取れる数をファイルから読み込み、その設定でプレイする。といった感じです。
説明下手ですみません、追記させていただきました。






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

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

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