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


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

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



1 名前:デフォルトの名無しさん [2007/06/23(土) 23:03:25 BE:255611693-2BP(12)]
あなたが解けない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++の宿題を片付けます 90代目
pc11.2ch.net/test/read.cgi/tech/1181802185/

175 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:18:34 ]
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4394.txt

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/6/26 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。

どんなに考えてもわかりません。わからないまま前日になってしまいました…
よろしくお願いします。

176 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:24:03 ]
まいったな……何の問題なのかも分からないや。

177 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:59:11 ]
[1] 授業単元:プログラム技術
[2] 問題文:
 (2)次に引数の順番を入れ替えて逆順に表示するプログラムに直せ。
  ソースプログラムを書き込んで提出せよ。*/

main(int argc , char *argv[]){
int i;

printf("%d argument(s).\n" , argc -1);
for(i=argc-1; i>=0; i--){
printf("argv[%d] : \"%s\"\n", i , argv[i]);
}
}


引数の順番を入れ替えると(char *argv[] , int argc)入力した文字は反映されず、argument(s).の前に
意味不明の数字が表示されて動作を終了してしまいます。
C:\c>smp2 a b c
3616655 argument(s).

ちなみに、引数を入れ替えなければ、逆に表示されます。

回答、よろしくお願いします。


[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/6/26
[5] その他の制限:

178 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:02:43 ]
>>173
ありがとうございました!
いろいろ注文多くすいませんでした。

179 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:05:55 ]
>>177
argumentでスレを検索汁

180 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:07:42 ]
>>177 >>14

181 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:11:23 ]
>>177
> 引数の順番を入れ替えると(char *argv[] , int argc)
っつか吹いたっw

182 名前:177 mailto:sage [2007/06/25(月) 20:16:15 ]
>>179>>180
検索しましたが、何の参考にもなりませんでした。
まだ習い始めたばかりでよく分からないんです・・・

>>181
なにか根本的に間違っていたりしますか?
いや、冗談抜きでこの授業分からないんです・・・


183 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:18:02 ]
>>182
言葉の意味を勘違いしているだけでしょ。main関数の中の引数の変数の定義を逆にしてどーすんだと。
仕様からして不適切だし、もしそれで答えろっていうなら、そんな講師は全世界レベルで非難を浴びますw



184 名前:デフォルトの名無しさん [2007/06/25(月) 20:22:35 ]
[1] 授業単元:情報処理
[2] 問題文:
 3つのベクトルA=(a1,a2,a3),B=(b1,b2,b3),c=(c1,c2,c3)がある。次のベクトル三重積に関する等式を示すプログラムを条件にしたがって作成せよ。
(A×B)×C=-(B,C)A+(A,C)B ここにA×Bは外積(A,B)は内積を示す。

データの入出力はファイルを使用
ファイル入出力に関してもサブルーチン化
ベクトルはそれぞれ一次元配列化
外積、内積ともにサブルーチンを作成し、外積は左辺、内積は右辺を計算できるようにすること

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:g77 fortran
 [3.3] 言語:fortran
[4] 期限:2007/6/26
ぜひともおねがいします><

185 名前:177 mailto:sage [2007/06/25(月) 20:24:28 ]
>>183
レスどうもです。なるほどorz

>次に引数の順番を入れ替えて

↑では、これは何をしろと言っているのでしょうか・・・。
う〜ん、ますます分からなくなってきたorz


186 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:24:50 ]
>言語:fortran
( ^ω^)・・・


187 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:26:37 ]
>>185
問題文を全て一字一句違わず書けばいいよNE☆

188 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:28:15 ]
>>160
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p;
long l;
char buff[128];
FILE *fop = fopen("count.txt","r");
fgets(buff,sizeof(buff),fop);
l =strtol(buff,&p,10);
fclose(fop);
fop =fopen("count.txt","a+");
fprintf(fop,"\n%d",l+1);
return 0;
}

189 名前:177 mailto:sage [2007/06/25(月) 20:29:13 ]
>>187
/*(1)次のプログラムを実行し結果を確認せよ。
 (2)次に引数の順番を入れ替えて逆順に表示するプログラムに直せ。
  ソースプログラムを書き込んで提出せよ。*/

問題文はコレで全てですorz


190 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:33:31 ]
>>189
だから、受け継いだ値を逆から表示しろって問題なんでしょ?そういうこと。
括弧の中を逆にして受け継げって問題だったら全世界レベルで爆笑もんだよw
スイスのジュネーブにあるISO団体が、んだごるぁ?てめぇんとこは俺らが決めた標準はおろか
C言語の基本も理解していないおかしな授業をしてんのかと?国際的な裁判にかけられちゃいますよ?

191 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:35:29 ]
>>177
まぁ、もし 入れ替え っていうなら、例えば引数を3つ受け継いだのなら
1番目と3番目を入れ替えるコードを書けと?そして argv[1] から順に表示しろと?
そういう問題ならそうすべきだが、そんなことせずに単純に逆から表示すりゃ良いでそ。

192 名前:177 mailto:sage [2007/06/25(月) 20:41:53 ]
みなさんどうもです。そうですね、main()の中を入れえ変えるってのは
いくらなんでも無さそうですね。

有難うございました。


193 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:41:56 ]
>>177
mainに関して、いろいろ実験してみるといい。
例えば、こんなのも駄目だ。
#include <stdio.h>

int main(char *argv[])
{
    printf("%s\n", argv[0]);
    return 0;
}




194 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:42:00 ]
>>189
ほれよ。無駄な上に君の環境で動くかどうか分からないソース
(多分大丈夫だろうけど)

#include <stdio.h>
int main(int argc, char **argv)
{
    int i, j;
    char *tmp;
    printf("%d argument(s).\n" , argc -1);
    printf("argv[0] : \"%s\"\n", argv[0]);
    for (i = 1, j = argc - 1; i < j; ++i, --j) {
        tmp = argv[i];
        argv[i] = argv[j];
        argv[j] = tmp;
    }
    for (i = 1; i < argc; ++i)
        printf("argv[%d] : \"%s\"\n", i, argv[i]);
    return 0;
}

195 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:49:58 ]
乱数を発生させて、1〜100までを網羅するように表示せよ。(順番は問わない)

まったく、わからんよ。見かけによらず重い

196 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:55:07 ]
>>195
日本語でおk

197 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:59:13 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define swap(type, x, y) do{ type temp = x; x = y; y = temp;}while(0)

int main(void)
{
    int x[100], i, j, k;
    srand((unsigned int)time(NULL));
    for(i = 0; i < 100; i++) x[i] = i + 1;
    for(i = 0; i < 1000; i++){
        j = (int)(((double)rand()/(RAND_MAX + 1))*100);
        k = (int)(((double)rand()/(RAND_MAX + 1))*100);
        swap(int , x[j], x[k]);
    }
    for(i = 0; i < 100; i++) printf("%3d ", x[i]);
    return 0;
}

198 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:04:26 ]
>>195
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
int a[100],i,tmp,pos;
int a_sz=sizeof(a)/sizeof(a[0]);

srand((unsigned)time(NULL));
for(i=0; i<a_sz; i++)
a[i]=i+1;

for(i=0; i<a_sz; i++) {
pos=rand()%a_sz;
tmp=a[pos];
a[pos]=a[i];
a[i]=tmp;
}
for(i=0; i<a_sz; i++)
printf("%d ",a[i]);
return 0;
}

199 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:07:18 ]
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):
・ポインタを説明せよ。(Wikipedia,Google等参照不可。また書籍の参照も不可。自分の文章で答えること)
・構造体を説明せよ。(同上)
[3] 環境
 [3.1] OS:NULL
 [3.2] コンパイラ名とバージョン:NULL
 [3.3] 言語:C
[4] 期限:2007年06月25日(本日)
[5] その他の制限:同じ文章を見つけた場合は成績評価「不可」とする。

よろしくお願いします。

200 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:08:14 ]
そっか、配列の要素を一回ずつ交換してやればいいんだな。

201 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:09:29 ]
>>199
同じ学校の学生が見てたら終わりじゃん

202 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:09:52 ]
>>199
ja.wikipedia.org/wiki/%E6%A7%8B%E9%80%A0%E4%BD%93
ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
何も丸々言葉を写さなきゃおk。自分が理解して自分の言葉で書けばええやん。

203 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:10:22 ]
OS NULLって何?



204 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:10:59 ]
>>203
Oナニー Siてたら NULLヌルしちゃった、てへっ ♥

205 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:11:53 ]
むずいね。

206 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:12:03 ]
>>199
先生がこのスレを見ている可能性は考えなかったのか

207 名前:199 mailto:sage [2007/06/25(月) 21:16:56 ]
>>206

先生、にちゃんねる大嫌いそうだったから、つい書いてしまいました。

208 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:19:10 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

Mission 1 で作成した「Projection1.java 」は「0 列目」と,
「引数で指定した列」をCSV 形式で出力しましたが, 今度は
「0 列目」と「引数で指定した列以外の全ての列」をCSV 形式で
取り出すプログラムに変更せよ.
それを「Quiz6.java 」というファイルとして作成し,
いつもの要領で,WebCT に添付ファイルとして提出.
「CSV.java 」または「Projection1.java 」をコピーして作
ると良い. クラス名は「Quiz6 」としてください

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Java?
 [3.3] 言語: C
[4] 期限: 今日中に提出
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

209 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:20:17 ]
class Quiz6{
public static void main(String[] args){
String[][] seiseki = {
{"名前"," 国語"," 算数"," 英語"},
{"あべ","45","56","98"},
{"いいだ","70","45","30"},
{"いしかわ","32","70","75"},
{"おがわ","90","10","42"},
{"かご","85","32","80"},
{"かめい","75","92","40"},
{"こんの","30","30","100"},
{"たかはし","85","20","50"},
{"たなか","80","38","68"},
{"つじ","20","60","75"},
{"にいがき","82","42","75"},
{"ふじもと","18","70","78"},
{"みちしげ","60","46","88"},
{"やぐち","28","99","82"},
{"よしざわ","76","45","80"}
};
int col = Integer.parseInt( args[0] );
quiz6(seiseki,col);
}

210 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:26 ]
public static void Quiz6(String[][] table,int col){
int i,j;
for(i=0; i<table.length; i++){
System.out.println(table[i][0]+","+table[i][col]);
}
}
public static void printTable(String[][] table){
int i,j;
for(i=0; i<table.length; i++){
System.out.print(table[i][0]);
for(j=1; j < table[i].length; j++){
if( ★指定した列でなければ ){
     System.out.print(★);
}
}
System.out.print( "\n" );
}
}
}


★の箇所がわかりません。お願いします。

211 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:26 ]
>>208
スレ違い

212 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:35 ]
>>208
スレタイ100回読み直せ
ついでに>>1

213 名前:128 mailto:sage [2007/06/25(月) 21:28:26 ]
>>157さん、>>174さんありがとうございました
参考にさせていただきます



214 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:29:58 ]
こいつCとJAVAの区別ついてないんじゃないの?

215 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:31:07 ]
なるほど
> [3.2] コンパイラ名とバージョン: Java?
> [3.3] 言語: C
だものな

216 名前:デフォルトの名無しさん [2007/06/25(月) 21:32:59 ]
[1] 授業単元:情報数理

[2] 問題文(含コード&リンク):
複素数型を扱うライブラリcomplex.cを後述するヘッダ
ファイル complex.hに基づいて作ってください。
さらにmain.cというファイルで適当な計算のサンプル
を作り#include “complex.h”として作成したライブラリ
が適切に動作するか検証してください。

typedef struct complex complex; /* complex 型の宣言 */
struct complex {
double real; /* 実部 */
double imag; /* 虚部 */
};
/* プロトタイプ宣言 */
complex cAdd(complex, complex); /* 複素数の加算 x+y */
complex cMult(complex, complex); /* 複素数の乗算 xy */
complex cDiv(complex, complex); /* 複素数の除算 x/y */
double cAbs(complex); /* 複素数の絶対値 |x| */
complex cSub(complex, complex); /* 複素数の減算 x-y */
void printComplex(complex); /* 複素数型データのstdoutへの表示出力 */

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] bcc32
 [3.3] C
[4] 期限:無期限

217 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:37:10 ]
sageし忘れました・・・。

218 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:09:55 ]
>>134 どうかお願いしますー

219 名前:デフォルトの名無しさん [2007/06/25(月) 22:12:28 ]
>>216

加算と乗算と除算と表示。
あとは他の人に任せた。

complex cAdd(complex x, complex y){/* 複素数の加算 x+y */
complex ret; /*戻り値*/
ret.real = x.real + y.real;
ret.imag = x.imag + y.imag;

return(ret);
}

complex cMult(complex x, complex y){ /* 複素数の乗算 xy */
complex ret; /*戻り値*/
ret.real = (x.real * y.real) - (x.imag * y.imag);
ret.imag = (x.real * y.imag) + (x.imag * y.real);
return (ret);
}

complex cDiv(complex x, complex y){/* 複素数の除算 x/y */
complex ret;/*戻り値*/
ret.real = ((x.real * y.real) + (x.imag * y.imag)) / ((y.real)*(y.real) + (y.imag)*(y.imag));
ret.imag = ((x.imag * y.real) - (x.real * y.imag)) / ((y.real)*(y.real) + (y.imag)*(y.imag));
return (ret);

}


void printComplex(complex x){ /* 複素数型データのstdoutへの表示出力 */
printf("実部 = %lf, 虚部 = %lf", x.real, x.imag);
}

220 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:19:12 ]
>>218
何ゆえ>135は無視?

221 名前:デフォルトの名無しさん [2007/06/25(月) 22:21:23 ]
途中までってのも気持ち悪いから、全部やるか…。

>>216
math.hは使ってもいいの?
使っていいのなら平方根の計算が楽なんだけど…。

222 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 22:25:10 ]
216です。はい、math.hを用いていただいても大丈夫です。ありがとうございます。

223 名前:デフォルトの名無しさん [2007/06/25(月) 22:32:24 ]
絶対値と減算。
math.hを使っていいのなら、累乗もpow()で表現すればよかったか…。まあいいや、合ってれば。
気に入らない箇所があったら適当に直しておいて。
とりあえず、x(4,2)とy(-2,3)で検証した。
よく分からないけど、これは学部一回生レベル?

double cAbs(complex x){ /* 複素数の絶対値 |x| */
return(sqrt((x.real)*(x.real) + (x.imag)*(x.imag)));
}

complex cSub(complex x, complex y){ /* 複素数の減算 x-y */
complex ret; /*戻り値*/
ret.real = x.real - y.real;
ret.imag = x.imag - y.imag;

return(ret);
}



224 名前:デフォルトの名無しさん [2007/06/25(月) 22:46:01 ]
あ、もう答えのソース出たんだ。
ソース書いてて、「公式のコピーをC言語として写してるだけでちょうどだるくなったところだった」

225 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:03:32 ]
どうか>>175お願いしますー。
グラフにおける深さ優先探索です。

226 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 00:22:48 ]
>>225
問1
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4395.txt

dfs.exe -r のようにして起動すると再帰版
引数なしだとスタック版として動作する

見ればわかると思うが
dfs_recurse()が再帰版の関数
dfs_stack()がスタック版の関数な

超適当に作ったから確認は自分でやってくれ

227 名前:デフォルトの名無しさん [2007/06/26(火) 01:48:12 ]
[2] 問題文(含コード&リンク):
指定されたテキスト(data.txt)から1行ずつデータを取り込んでいき、
1行のデータが300文字以上の時はその行数と共にエラーメッセージを表示し終了。
また行頭に#が付いた行をコメント行として読み飛ばす。
[3] 言語: C
[4] 期限:6.26

よろしくおねがいします

228 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 01:57:42 ]
>>227
data.txt の中身の例を詳しく

229 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:07:37 ]
>>226
ありがとうございました!

230 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:12:06 ]
>>227
#include<stdio.h>
#include<string.h>
#define N 300
int main()
{
FILE *fp;
int i = 0;
char data[N+1];
fp = fopen("data.txt","r");
while(fgets(data,N+1,fp) != NULL)
{
i++;
if(strlen(data) > N)
{
printf("行数:%d エラーメッセージ\n",i);
break;
}
if(data[0] != '#')
{
;
}
}
return 0;
}
てきとー。質問がてきとーなんだから回答もてきとーでおkだよな?

231 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 02:14:28 ]
if(strlen(data) > N)

if(strlen(data) >= N)

300より上を300以上に変えたときにミスった

232 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 03:55:32 ]
[1] プログラミング実習
[2] 問題文(含コード&リンク):
要素数nの整数型配列からk個の要素を選んで足し合わせ
bを超えない範囲での最大数を求めるプログラムを書け

ただしnは100程度、kは3程度、配列とbの値は適当に設定すること
[3] 環境 
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: BCC5.5
 [3.3] 言語: C
[4] 期限: 7月20日
[5] その他の制限:特にありません

よろしくお願いします

233 名前:232 mailto:sage [2007/06/26(火) 03:57:41 ]
すいません
>>232のkは95程度の間違いです



234 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 04:07:13 ]
>>232
> 最大数
何の最大数?合計?範囲を超えないbの要素の個数k?

235 名前:232 mailto:sage [2007/06/26(火) 05:35:30 ]
>>234
足し合わせた合計です。
kは自分で適当に設定してください。

236 名前:デフォルトの名無しさん [2007/06/26(火) 08:07:25 ]
>>232問題文はちゃんと書きましょう。
>要素数nの整数型配列からk個の要素を選んで足し合わせ
>bを超えない範囲での最大数を求めるプログラムを書け
>ただしnは100程度、kは3程度、配列とbの値は適当に設定すること
要素数を100として、その配列の中身は何?
どうやって設定するの?rand()で良いの?
>kは95程度の間違いです
>kは自分で適当に設定してください。
せめてお前が設定しろよ

237 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 09:59:09 ]
[1] 授業単元: プログラミング
[2] 問題文:
テキストファイルを読み込んで、"{"の数と"}"の数を数え、テキストファイルに出力するプログラムを作成しなさい.
課題実行においては以下の点に注意すること.
プログラム名は「chkpair」とすること.
ここで指定するデータ(ファイル),は存在するものとして仮定してよい.
読み込むテキストファイル名はプログラムを実行後にキーボードから指定する.
ファイル名の長さは最大で(マクロ定数)FILENAME_MAX文字までとしてよい.
出力するテキストファイルはchkpair.outとする.すでにchkpair.outがあり書き込み権限がある場合は、出力を上書きすること.
入力ファイルによって結果が異なるので、必ずしも実行例と同じ出力になる必要はない.

[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C


238 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:01:19 ]
[1] 授業単元: プログラミング
[2] 問題文:
商品の在庫を管理するプログラムを作成する.在庫を扱う場合,在庫の平均単価(実数),
在庫数(整数)を管理する必要がある.本問題で作成するプログラムは,4回商品を入荷した時の平均在
庫単価と在庫総数を出力するものとする.商品入荷の時は,商品の単価と入荷数を順に入力していくものとする.このとき,平均単価と在庫数をひとつの構造体で管理するものとする.
変数を管理する構造体の名前をstock_t(この名前はtypedefで定義した名前を指す)とし,構造体のメンバを,
平均単価はdouble型とし,名前をpriceとする
在庫数はint型とし,名前をquantityとする
とする.
課題実行においては以下の点に注意すること.
プログラム名は「stock」とすること.
プログラム実行開始直後の在庫数は0とする
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
./stock
100.0 10
200.0 10
300.0 10
555.0 30
377.5 60/*←出力*/

239 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:21:46 ]
>>237
#include <stdio.h>

#define FILENAME_MAX 128 // 環境によってはマズイ

int main(void)
{
    FILE *fpin, *fpout = fopen("chkpair.out", "w");
    int ch, count1 = 0, count2 = 0;
    char filename[FILENAME_MAX], buf[128];
   
    printf("filename for input : ");
    scanf("%s", filename);
   
    if((fpin = fopen(filename, "r")) == NULL)
        perror(filename), exit(1);
   
    while((ch = fgetc(fpin)) != EOF){
        if(ch == '{') count1++;
        else if(ch == '}') count2++;
    }
   
    sprintf(buf, "{ : %d\n} : %d\n", count1, count2);
    fputs(buf, fpout);
   
    fclose(fpin);
    fclose(fpout);
   
    return 0;
}

240 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:30:48 ]
>>238
#include <stdio.h>

typedef struct tag_stock_t{
    double price;
    int quantity;
}stock_t;

int main(void)
{
    stock_t x[4];
    double price_sum = 0, price_ave;
    int i, num = 0;
   
    for(i = 0; i < 4; i++)
        scanf("%lf%d", &x[i].price, &x[i].quantity);
   
    for(i = 0; i < 4; i++){
        price_sum += x[i].price*x[i].quantity;
        num += x[i].quantity;
    }
   
    price_ave = price_sum/num;
   
    printf("%.1f %d\n", price_ave, num);
   
    return 0;
}

241 名前:227 [2007/06/26(火) 10:43:16 ]
data.txtはこんなかんじです。

#正の数
133
535
846
167
335
#負の数
-647
-673
-384
-384
-373


242 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:47:29 ]
>>239
> #define FILENAME_MAX 128 // 環境によってはマズイ
うむ、かなりまずい。stdio.h にマクロ定義されていると思われるんで
敢えてそこで定義しない方が良いかも

243 名前:デフォルトの名無しさん [2007/06/26(火) 10:56:24 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
  3d^2x/dt^2+dx/dt+2x=4
x(t=0)=0
dx/dt(t=0)=0

上記の微分方程式をルンゲークッタ法を用いて解け
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C言語
[4] 期限: ([2007年6月25日まで
[5] その他の制限: なし

お願いします




244 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:16:50 ]
[1] 授業単元:プログラミング1
[2] 問題文(含コード&リンク):
年と月を入力すると、カレンダーを表示するプログラムの作成。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.3
 [3.3] 言語: C
[4] 期限: 6月27日
[5] その他の制限:入門者らしいつくりでお願いします。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4399.c
此所まではやってみたのですが、実行したときに" 日 月 火 水 木 金 土"
の部分しか表示されないので困っています。


245 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:41:21 ]
>>244
曜日を得るのは標準関数を使えばいいのに……

それはさておき、
・monthは1〜12なのに[0〜11]の配列をそのまま参照している。
・「土」の後に改行していない。
のは問題かな。
後はもっと細かく見ないと判らん。

246 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:49:09 ]
if(month==2&&(year % 4 == 0 && year % 100 != 0 || year % 400 == 0))
return(day[2]+1);
これねぇ、本当は良くない。できればうるう年なら day[2] = 29; そうでないなら
day[2]=28; にした方が良い。ここでは問題ないけど、何回か呼び出しをした場合
これだとうるう年に該当するたびに2月の日数が1ずつ加算されていくから。

247 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:51:01 ]
何を言ってるんだ

248 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:51:24 ]
>>246
もしもーし、脳味噌入ってますか〜?

249 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 11:59:00 ]
>>247
>>248
理解力のない馬鹿は視ねよw

250 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:00:26 ]
>>245,246返信ありがとうございます。
指摘頂いた部分やその他修正したらカレンダーらしいものは表示が出るようになりました。

あとは1月2月3月らへんが多少ずれてるのですがこれはどう直したら良いでしょうか。

251 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:01:34 ]
>249
頭が腐ってるのか目が腐ってるのか知らんが、もう一度よく見直せ。

252 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:03:51 ]
>>249
マジで言ってるなら医者に行くか、取り敢えず寝てきたら? 100年くらい。

>>250
エスパーじゃないからどうずれるのか判らんし、そこがデバッグの楽しみだろう。
つーか、曜日の計算と改行する条件判断はあってる?
youbiが1のときは何曜日のつもり?

253 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:05:23 ]
やった!おまいら釣られてやんのっ(プ
コードを見りゃ加算されるわけねーってバレバレじゃんw



254 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:08:09 ]
いや、顔真っ赤にして後釣り宣言しなくていいから。

255 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:12:20 ]
プププッ、ネタでボケて書いたことをマジに受けて茶化し、煽りレス入れている
こんな時間にいる引きこもりニーツがきめぇ〜〜んだよ(プ
俺?俺は大学の研究室からやw

256 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:14:46 ]
どこの脳内研究室なんだか。

257 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:15:18 ]
都内の某ランクSの大学ですが何か?

258 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:16:38 ]
それじゃ、次のボケをお願いします。もうちょっと判り難いのがいいかな。

259 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:19:03 ]
>257
本当にSランクなら、そもそも釣りなんて無駄なことはしない

260 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:20:19 ]
>>244 を実行してみたけど、1日の表示がおかしい、曜日がきちっと算出されていない。
もうこんなんじゃ、月(付き)合ってらんね〜

261 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:21:39 ]
>>259
Sランク級の釣りにビビッてんだろぉ?Sランク級の釣りにお前がチビッているのがわかるぜ?

262 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:25:59 ]
ランクSAITEIのランクSだなw

263 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:28:03 ]
ちっちっち、違うぜ?Sugoi、Super、SutekiのSだぜ?お前らとは質が違うよ、質が。



264 名前:デフォルトの名無しさん [2007/06/26(火) 12:31:44 ]
[1] プログラミング基礎
[2] 以下のプログラムは,都道府県名(ローマ字)を入力すると,各都道府県の人口(人)と面積(km2)が列挙されたファイル prefectures.dat
からデータを読み込み,指定した都道府県の人口,面積およびそれらの比である人口密度を表示するプログラムである.
このプログラムを以下の例のように,人口,面積について 日本全体の総和に対する比率(百分率) も表示されるように書き換えよ.

実行例:
nodabls?% ./a.out[Enter]
chiba[Enter]
Statistics of the Chiba
Population = 6056159 (4.7 %)
Area (km^2) = 5156.19 (1.4 %)
Density (per km^2) = 1174.54

[3.1] Unix
[3.2] gcc
[3.3] c
[4] 2007年6月29日(金)



265 名前:デフォルトの名無しさん [2007/06/26(火) 12:33:21 ]
続き
プログラム
/* density.c: calculate population density for the given prefecture */
#include <stdio.h>
#include <strings.h>

int main(void)
{
char name[20], query[20];
int pop;
double area, den;
FILE *fp;

fp = fopen("prefectures.dat", "r"); /* ファイルオープン */
if (fp == NULL) { /* オープンに失敗? */
fprintf(stderr, "Can't open file!\n");
return (-1);
}

scanf("%s", query); /* 都道府県名を入力 */

den = -1.0;
/* 1行分の情報を読み込みつつループをファイル末尾まで繰り返し */
while (fscanf(fp, "%s%d%lf", name, &pop, &area) != EOF) {
if (strcasecmp(name, query) == 0) { /* 都道府県名が一致? */
den = pop / area; /* 人口密度 = 人口/面積 */
printf("Statistics of the %s\n", name);
printf("Population = %10d\n", pop);
printf("Area (km^2) = %10.2f\n", area);
printf("Density (per km^2) = %10.2f\n", den);
break; /* ループから抜ける */


266 名前:デフォルトの名無しさん [2007/06/26(火) 12:35:32 ]
}
}
fclose(fp); /* ファイルクローズ */

if (den < 0.0) { /* 都道府県名が正しくない? */
fprintf(stderr, "No such prefecture (%s)!\n", query);
return (-1);
}
return (0);
}


267 名前:デフォルトの名無しさん [2007/06/26(火) 12:38:46 ]
続き
prefectures.dat ファイル

Hokkaido 5627424 83453.04
Aomori 1436628 9606.33
Iwate 1385037 15278.40
Miyagi 2359991 7285.07
Akita 1145471 11612.11
Yamagata 1216116 9323.34
Fukushima 2091223 13782.48
Ibaraki 2975023 6095.58
Tochigi 2016452 6408.28
Gumma 2024044 6363.16
Saitama 7053689 3797.30
Chiba 6056159 5156.19
Tokyo 12570904 2186.90
Kanagawa 8790900 2415.41
Niigata 2431396 12582.37
Toyama 1111602 4247.22
Ishikawa 1173994 4185.22
Fukui 821589 4188.75
Yamanashi 884531 4465.37
Nagano 2196012 13585.22
Gifu 2107293 10598.18
Shizuoka 3792457 7779.46
Aichi 7254432 5155.84
Mie 1867166 5776.40
Shiga 1380343 4017.36


268 名前:デフォルトの名無しさん [2007/06/26(火) 12:40:30 ]
Kyoto 2647523 4612.94
Osaka 8817010 1892.86
Hyogo 5590381 8392.03
Nara 1421367 3691.09
Wakayama 1036061 4725.55
Tottori 606947 3507.17
Shimane 742135 6707.29
Okayama 1957056 7112.13
Hiroshima 2876762 8476.95
Yamaguchi 1492575 6110.45
Tokushima 809974 4145.10
Kagawa 1012261 1875.88
Ehime 1467824 5676.22
Kochi 796211 7104.66
Fukuoka 5049126 4971.01
Saga 866402 2439.23
Nagasaki 1478630 4092.44
Kumamoto 1842140 7403.68
Oita 1209587 6337.97
Miyazaki 1152993 7734.40
Kagoshima 1753144 9186.71
Okinawa 1360830 2271.30

長くなってすみません。よろしくお願いします。

269 名前:デフォルトの名無しさん [2007/06/26(火) 12:44:11 ]
次のjavaのプログラムをcに直してください

public class JobShop_EDD{
static int Job=3;
static int Machine=2;
static int K=30;
static int [] duedate={0,7,9,13,14,20};
static int [] [] process={{},{0,3,3,2,},{0,2,3,2},{0,2,3,3},{0,3,2,3},{0,2,2,2}};
static int [] [] route={{},{0,1,2,3},{0,2,1,3},{0,3,1,2},{0,3,2,1},{0,2,1,3}};
static int [] weight={0,2,2,2,2,2};



270 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:45:02 ]
>>252
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4401.c
直してみたものですが。

月曜じゃないんですか?人伝えに聞いたので曖昧ですが

271 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:49:23 ]
>>270 よくわからんから俺流ツェラーの公式を使ってやんよ

int youbi(int year,int month,int day)
{
if(month<=2) { year--; month+=12; }
return ( year + year/4 - year/100 + year/400 + (13*month+8)/5 + day )%7;
}

272 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 13:04:56 ]
>>239
>>240
ありがとうございました。またなにかありましたらよろしくおねがいします。

273 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:56:55 ]
>>264
問題が長い時は、ロダにtxtでうpしてリンク貼る
長いソースは拡張子を変えずにロダにうp
複数のレスに別けられると見辛い

>>269
メソッドが無くて、変数だけか。それを構造体にすればいいのか?




274 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:37:20 ]
day[2]じゃねーだろ

275 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 15:57:25 ]
>>264
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4402.txt






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

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

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