1 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:30:56 ] あなたが解けない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++の宿題を片付けます 108代目 pc11.2ch.net/test/read.cgi/tech/1211980711/
152 名前:デフォルトの名無しさん [2008/06/10(火) 19:45:31 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 1.2の補数を用いて負の数も扱えるように拡張せよ. 2.2つの2進数の差を求めるプログラムを作成せよ. 3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ. [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C++ [4] 期限:2008年06月11日まで [5] その他の制限:このプログラムを基にお願いします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt
153 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:45:35 ] 盛大な釣りですね
154 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:49:42 ] [1]プログラミング [2]問題文 警報をno回鳴らす関数void alart(int no)をメイン文も含め作る。 [3-1]windows [3-2]gcc [3-3]C言語 [4]明後日まで。 よろしくお願いいたします。
155 名前:デフォルトの名無しさん [2008/06/10(火) 20:12:43 ] >>150 >>152 です すみません><
156 名前:Ctrl+Gがどうしようもないや mailto:sage動くかな [2008/06/10(火) 20:16:15 ] void alart(int no); int main(void){ int no=0; alart(no); return 0; } void alart(int no){ if(no); system("echo 数字を入力してください"); system("set /p no="); system("for /l in (1,1,%no%) do echo ^G"); system("set no="); }
157 名前:デフォルトの名無しさん [2008/06/10(火) 20:31:48 ] [1] 授業単元:プログラミング演習 [2] 問題: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6854.txt [3.1] OS: WindowsXp [3.2] コンパイラ名とバージョン:visualstdio 2008 [3.3] 言語:C++ [4] 期限:6月13日 [5] その他の制限:なし。 よろしくお願いします.
158 名前:scanfの戻り値に自信なし mailto:sage真面目に [2008/06/10(火) 20:47:52 ] >>154 #include <stdio.h> void alart(int no); int main(void){ int ret=0; int no=0; printf("数字を入力して下さい"); scanf("%d",&no); if(ret){ puts("数字っつったろぼけ"); return 1; } alart(no); return 0; } void alart(int no){ int i=0; for(i=0;i<no;i++){ printf("\a"); } }
159 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:51:19 ] 自信ないのに意味不明なコード書くのはバカ
160 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:52:08 ] コード書かないのはバカですね 分かります
161 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:54:17 ] man よめよ
162 名前:158 mailto:sage [2008/06/10(火) 20:56:36 ] やべぇ 否定し忘れてる!! if(!ret){ だ >>159 あ?しねよ scanfの戻り値なんか見たことないだろ
163 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:58:43 ] 私のためにケンカしないで><
164 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:01:18 ] /*ここまで俺の自演*/
165 名前:デフォルトの名無しさん [2008/06/10(火) 21:07:16 ] [1] 授業単元: プログラミング C言語 [2] 問題文(含コード&リンク)課題: ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。 [3] 環境 コンパイラ名とバージョン:Microsoft Visual Studio 2005 言語: C [4] 期限: 〜6月11日 [5] その他の制限: ポインタを使う
166 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:08:22 ] >>165 ファイルポインタじゃ、ダメだった?
167 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:11:41 ] ここは、使えないPGを育成するスレですか? といてもらって、お礼もいわんとは
168 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:14:55 ] >>167 あえて言おう ここは2ちゃんねる 久しぶりに言った
169 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:16:33 ] 同じ質問を再度行う場合も非常に見にくいことが多い。 前回依頼時へのポインタを示してくれればそこからいろいろたどれるのに。 具体的には>>165 が>>126 へ貼ってくれさえいればダメだったらしい 回答であるところの>>130 がすぐ見れたわけだ。 もう少し考えていただければと思う。
170 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:17:15 ] 釣られてどうする
171 名前:デフォルトの名無しさん [2008/06/10(火) 21:17:53 ] >>166 ファイルポインタは大丈夫みたいなんですが、 while ((c = getc(in)) != EOF) などが上手く動作しないみたいで困ってます。
172 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:19:45 ] >>171 >while ((c = getc(in)) != EOF) ~~~~~ fgetcじゃなくて?
173 名前:デフォルトの名無しさん [2008/06/10(火) 21:19:54 ] >>169 次からそうします。 失礼しました。
174 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:20:10 ] 質問者は名前欄にレス番号を記入すべきだとも思う。
175 名前:デフォルトの名無しさん [2008/06/10(火) 21:26:29 ] >>172 fgetcです。 文字列の書き込みや出力の部分がとんで動作しているみたぃです。
176 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:33:15 ] >>157 気づけば大元のソースが見る影もなくなっていた ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6855.cpp
177 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:33:34 ] test.txtの置き場所間違ってないか?
178 名前:157 [2008/06/10(火) 21:37:51 ] >>176 ありがとうございます。
179 名前:デフォルトの名無しさん [2008/06/10(火) 22:02:06 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):() 文字列を逆向きに表示する関数void printrev(char[]);を定義せよ.テキストファイルの最初の1行を逆向きにして表示するプログラムを作成せよ. 出力例: bash-3.2$ ./rev1 < rev1.c >h.oidts< edulcni# ヒント: ・文字列を逆向きに表示する関数を定義する ・繰り返し文 while ((c = getchar()) != EOF) {...} で,改行記号まで配列に文字を順番に代入する ・改行記号が来たら break ・できあがった文字の配列に終端文字\0を入れて文字列にする ・文字列を逆向きに表示する関数を使って表示する [3] 環境 [3.1] OS:Linux [3.2] gcc (すみません、詳しいことはよくわかりません;) [3.3] C言語 [4] 期限:前期中 [5] その他の制限:なし。 よろしくお願いします。
180 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:27:58 ] さぁ、逆さ文字をコマンドプロンプトに表示できる勇者は現れるか? バナーならなんとかできるか?
181 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:35:56 ] #include <stdio.h> #include <string.h> int main(void) { int i, j; char buf[81], *p; fgets(buf, sizeof buf, stdin); if (p = index(buf, '\n')) *p = '\0'; for (i = 0, j = strlen(buf) - 1; i < j; i++, j--) { int t; t = buf[i]; buf[i] = buf[j]; buf[j] = t; } fputs(buf, stdout); fputs("\n", stdout); return 0; }
182 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:38:48 ] 毎度のことで申し訳ありません。7行目の' 'と13行目の" "の中身はbackslash nです。
183 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:42:06 ] ちゃんと\見えてるわけだが、お前は何を使って見てるんだ。
184 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:44:22 ] >>183 >>180 >>174 >>167 こいつバカじゃね?いい加減うぜぇな。無駄口叩く奴って 本当に役に立たないクズだよなw
185 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:45:19 ] >>184 おまえもな
186 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:45:37 ] 74です。
187 名前:181 mailto:sage [2008/06/10(火) 22:48:41 ] あ、問題文全然読んでませんでした。誰か函数化してください。
188 名前:デフォルトの名無しさん [2008/06/10(火) 23:02:10 ] >>185 はぁ?バカは四の五の言ってねーでソース書けよw そのレスに反論するのは、指摘された本人だろ? 他は黙ってソース書いてんだよ、ボケが
189 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:03:20 ] >>162 >>160 これもうぜーなぁ。バカは口閉じてろよ、あっキーボードを打つ指を 休めているか、タイピングできないように切断しとけば?w
190 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:10:10 ] >>184 おまいさんが酉つけてガンガン回答してくれたら納得しとくわ。
191 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:17:36 ] >>189 僕ちゃんは、宿題を教えてもらえなかったのかな?
192 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:26:47 ] 逆にたとえば俺が酉つけてたら回答も提言もそして暴言も割と あるわけだが、それはそれでちょっとやだなあ
193 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:57:39 ] コテや酉つきの回答者のウザさは異常
194 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:09:45 ] >>179 #include <stdio.h> void printrev(char str[]) { char *p = str; while(*p) p++; while(p-- > str) putchar(*p); } int main(void) { int i = 0, c; char str[256]; while((c = getchar())!=EOF) { str[i++] = c; if(c=='\n') break; } str[i] = '\0'; printrev(str); return 0; }
195 名前:デフォルトの名無しさん [2008/06/11(水) 00:30:24 ] >>165 の問題を教えてください
196 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:32:41 ] >>193 そんなこと関係なくウザイ奴は一生ウザイ。 言動や行動に性格、人間性が露呈していることに気づかず 指摘されると指摘してきた奴を執拗に罵倒して自分を正当化できると 勘違いしているから、その他の周りからも嫌われているって気づいてないんだよ
197 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:39:56 ] >>196 自己紹介乙w
198 名前:179 mailto:sage [2008/06/11(水) 00:42:39 ] >>194 回答ありがとうございます! ただ、 7行目の while(p-- > str) 13行目の char str[256]; の意味がよくわからないのですが、よかったら説明いただけないでしょうか。
199 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:44:04 ] >>195 128や130のどこが気に入らないのか具体的に。 もしかして一行文字列読み込む度にそれを逆順にするとか?
200 名前:デフォルトの名無しさん [2008/06/11(水) 00:47:49 ] [1] 授業単元:ソフトウェア演習2 [2]問題文・コード リンク kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi [3] 環境 [3.1] OS: Windows vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限: 2008年6月12日14:30まで [5] その他の制限:標準ライブラリに関しての制限はありませんが、一応malloc以外は使わない方針です。一方向連結リストの削除、挿入がこの単元の狙いなので双方向リストは使えません。 よろしくお願いします。
201 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:50:50 ] >>198 char str[256]は単に配列。 strは変数名で特別な意味があるわけじゃない。 while(p-- > str) は while(p > str) { p--; と同じこと。 pは最初文字列終端の'\0'のアドレスになってるからそこから一文字分前に移動する。 そこから順番に一文字ずつ前に移動して表示、 最後はp[0](元の文字列の先頭)を表示してループから抜ける。
202 名前:デフォルトの名無しさん [2008/06/11(水) 00:57:57 ] >>199 すいません少し待ってください。
203 名前:200 [2008/06/11(水) 00:58:35 ] すいません。リンクこっちに替えときます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6857.txt
204 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:58:43 ] 193 名前:デフォルトの名無しさん 投稿日:2008/06/10(火) 23:57:39 コテや酉つきの回答者のウザさは異常 ↑いちいち自分の不満をたらたら漏らす、場違い野郎がうざいんだが。 自己紹介って返す奴は、自分の素性をどんぴしゃで当てられて 必死になっているのを隠さずにはいられないくらい動揺している証拠。
205 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:59:04 ] >>165 #include<stdio.h> #include<stdlib.h> #define SRC_FILE "test.txt" #define DST_FILE "sample.txt" int main() { FILE *fs, *fd; long size, i; char *buf; if((fs = fopen(SRC_FILE, "r")) == NULL) { perror(SRC_FILE); return 1; } if((fd = fopen(DST_FILE, "w")) == NULL) { fclose(fs); perror(DST_FILE); return 1; } fseek(fs, 0, SEEK_END); size = ftell(fs); fseek(fs, 0, SEEK_SET); buf = malloc(size); size = fread(buf, 1, size, fs); for(i = size - 1; i >= 0; i --) fputc(buf[i], fd); free(buf); fclose(fd); fclose(fs); return 0; }
206 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 01:47:30 ] >>205 GJ。ちと自分なりに突っ込み。 int main(void) fseek(fs, 0L, SEEK_END); < 特に必要ないがlong型ということで fseek(fs, 0L, SEEK_SET); < 0ではあるが後ろにLを buf = (char*)malloc(size * sizeof(char)); < キャストと念のために型のサイズを 余談だが、1文字2バイトの全角文字には非対応やね。質問者はどこまで 要求しているのかはっきりせぬが。
207 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 01:49:24 ] 型変換あるんだから蛇足だろ
208 名前:デフォルトの名無しさん [2008/06/11(水) 02:08:29 ] >>128 >>130 >>199 >>205 わかりました。 ありがとうございました。
209 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:10:22 ] >>207 知ったか無知を露呈しなくて良いぞ、ろくにソースも書かずに 無駄口を叩くバカは。ちなみに、蛇足でもないから。 たまたま問題の無い例を用いて否定すると、墓穴掘るぞ。
210 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:27:28 ] 他人のソースにいらんもんを付け足すほうがアホだろ。
211 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:46:39 ] テキストファイルであると暗黙的に仮定されてる。 バイナリファイルとしての逆順とはやはり微妙に違うよな 元ファイルの最初の行が改行されてると、出力ファイルは先頭が空行になるのは何だかな....で、ちょっと書いてみた ygguB .kcehC rorrE oN tfarD// srotcarahc 5904 revo erom evah ton od "txt.tset" fo senil hcae demussA// >h.oidts< edulcni# {)(niam tni ;s*,]6904[fub rahc;tuo*,ni* ELIF ;)"w","txt.elpmas"(nepof=tuo;)"r" ,"txt.tset" (nepof=ni ;0=]0[fub {))ni(foef!(elihw {) )ni,5904,]1[fub&)*rahc((stegf=s (fi {)s*(elihw ;kaerb) )31==s*(||)01==s*( (fi ;++s } ;--s)s*(fi };))--s(*,"c%",tuo(ftnirpf{)s*(elihw ;)"n¥",tuo(ftnirpf esle} ;kaerb } ;)tuo(esolcf;)ni(esolcf ;0 nruter }
212 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:47:43 ] >>210 動いているものには触るなっていうタイプですか? リファクタリングとか理解できない人に多いよね。
213 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 03:18:40 ] >>206 sizeof(char)が必ず1でも、省略すべきではない pc11.2ch.net/test/read.cgi/tech/1187521586/ ぜひ止まったこのスレを盛り上げてくれw
214 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 05:25:00 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 1!〜53!の階乗値を右揃えで出力せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日正午まで [5] その他の制限: 各機能(計算処理や出力等)毎に関数に分ける事。 助けてください。お願いします。
215 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 05:40:49 ] >>214 ほらよ。どうやれば省略しているところを作れるかは自分で考えな。 #include <stdio.h> char *f[] = { "1", "2", "6", /* 47 行省略 */ "1551118753287382280224243016469303211063259720016986112000000000000", "80658175170943878571660636856403766975289505440883277824000000000000", "4274883284060025564298013753389399649690343788366813724672000000000000", }; int main() { int i; for (i = 0; i < 53; i++) { printf("%70s\n", f[i]); } return 0; }
216 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 05:59:16 ] >>214 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6858.txt
217 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 07:09:27 ] 暇すぎるw
218 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 07:39:51 ] >>214 #include <stdio.h> int main(void) { int i, j, figure = 0, fac[53][128] = {0}; fac[0][0] = 1; for(i=1; i<53; i++) { for(j=0; j<=figure; j++) { fac[i][j] += fac[i-1][j] * (i + 1); if(fac[i][j] >= 10) { fac[i][j+1] += fac[i][j] / 10; fac[i][j] %= 10; if(j==figure) figure++; } } } for(i=0; i<53; i++) { for(j=figure; fac[i][j]==0; j--) putchar(' '); for(; j>=0; j--) printf("%d", fac[i][j]); putchar('\n'); } return 0; }
219 名前:ルート mailto:sage [2008/06/11(水) 10:19:05 ] >>115 おねがいしますm(__)m
220 名前:デフォルトの名無しさん [2008/06/11(水) 10:35:07 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 3より大きく、入力された上限の数未満の全ての自然数かつ非素数について、3で割り切れるものは無視し、3で割った余りが1のものは加算し、余りが2のものは減算して合計を求めよ 次のように表示する. Input Upper Limit: 11 [Enter] Answer is: 6 [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日の正午まで [5] その他の制限:特になし お願いします><
221 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:28:31 ] [1]プログラミング基礎 [2] #include <stdio.h> int main(void) { FILE *file; file = fopen("test.txt","w"); fclose(file); return 0; } このプログラムを実行すると、test.txtという名前のファイルが作成される。 では、text.txtはどこに作成されるか答えよ。 [3-1]windows [3-2]gcc [3-3]C言語 [4]今日中 [5]結構ユーモラスで意地悪な問題が好きな先生なので 何かしらのひっかけがあるかもしれません よろしくお願いします
222 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:28:56 ] >>115 2値化 hooktail.org/computer/index.php?%A3%B2%C3%CD%B2%BD%A4%F2%A4%B7%A4%C6%A4%DF%A4%EB ディザ法 hooktail.org/computer/index.php?%A5%CF%A1%BC%A5%D5%A5%C8%A1%BC%A5%F3%BD%E8%CD%FD%28%A5%C7%A5%A3%A5%B6%CB%A1%29 誤差拡散法 hooktail.org/computer/index.php?%A5%CF%A1%BC%A5%D5%A5%C8%A1%BC%A5%F3%BD%E8%CD%FD%28%B8%ED%BA%B9%B3%C8%BB%B6%CB%A1%29 ソースもついてる
223 名前:ルート mailto:sage [2008/06/11(水) 13:40:05 ] >>222 ありがとうございます
224 名前:デフォルトの名無しさん [2008/06/11(水) 14:38:06 ] [1] C言語実習 [2] test.txtから文字列を読み込み、 大文字だけを画面に表示するプログラムを作成せよ。 [3] [3.1] Windows [3.2] cisual stadio .NET2003 [3.3] 言語:C [4] 期限:今日中 全くの初心者なので、なるべく簡単なコードで お願いします。
225 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:08:07 ] >>220 #include <stdio.h> #include <stdlib.h> int main(void) { int i, j, n, sum = 0; char *sieve; printf("Input Upper Limit:"); scanf("%d", &n); sieve = malloc(sizeof(int) * n); for(i=0; i<n; i++) sieve[i] = 0; for(i=4; i<n; i+=2) sieve[i] = 1; for(i=3; i * i <= n; i+=2) { if(!sieve[i]) { for(j=i*i; j<n; j+=i) sieve[j] = 1; } } for(i=4; i<n; i+=3) if(sieve[i]) sum += i; for(i=5; i<n; i+=3) if(sieve[i]) sum -= i; printf("Answer is : %d\n", sum); free(sieve); return 0; }
226 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:11:50 ] >>224 #include <stdio.h> int main(void) { int ch; FILE *fp; if((fp=fopen("test.txt", "r"))==NULL) return 0; while((ch=fgetc(fp))!=EOF) if('A'<=ch && ch <='Z') putchar(ch); fclose(fp); return 0; }
227 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:14:02 ] >>221 カレントディレクトリ
228 名前:デフォルトの名無しさん [2008/06/11(水) 15:47:47 ] >>152 です。 締め切り近いのでもう一度張らしてもらいました。 すみませんが、よろしくお願いします。 [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 1.2の補数を用いて負の数も扱えるように拡張せよ. 2.2つの2進数の差を求めるプログラムを作成せよ. 3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ. [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C++ [4] 期限:2008年06月11日まで [5] その他の制限:このプログラムを基にお願いします。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt
229 名前:224です [2008/06/11(水) 16:00:00 ] >>226 ありがとうございます
230 名前:デフォルトの名無しさん [2008/06/11(水) 16:32:44 ] [1] 授業単元:コンピュータプログラミング [2] 問題文(含コード&リンク): 次のプログラムは整数x,yを読み込み、その 和、差、積、商、剰余を出力するプログラム である。このプログラムでは共通変数を用い 関数間の値の受渡しをしているが、これを全 て引数で値の受渡しをするように変更せよ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6860.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年06月11日まで [5] その他の制限:このプログラムを基にお願いします。 よろしくお願いします
231 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:42:47 ] 【質問テンプレ】 [1] 授業単元:C言語演習1 [2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6859.txt 上記をもとに親プロセスがキーボードから入力した行をパイプで 子プロセスに標準出力ファイルとして送り、子プロセスは標準入力から受けとってスクリーンに エコーバックするようなプログラムを作れ。 ヒント:dup2(fd[1],fileno(stdout)), fgets(line, MAXLINE, stdin), fputs(....) (親) (子) キーボード-->| stdin stdout| ---> |stdin stdout|---->ディスプレ [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C言語) [4] 期限: (6月16日) [5] その他の制限:上記のURLのプログラムを元によろしくお願いします。 よろしくおねがいします
232 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:22:25 ] >>230 #include <stdio.h> void readdata(int *x, int *y) { printf("input integers (x y): "); scanf("%d%d", x, y); } void calculate(int x, int y, int *wa, int *sa, int *seki, int *sho, int *joyo) { *wa = x + y; *sa = x - y; *seki = x * y; *sho = x / y; *joyo = x % y; } void printresult(int x, int y, int wa, int sa, int seki, int sho, int joyo) { printf("%d + %d = %d\n", x, y, wa); printf("%d - %d = %d\n", x, y, sa); printf("%d * %d = %d\n", x, y, seki); printf("%d / %d = %d\n", x, y, sho); printf("%d %% %d = %d\n", x, y, joyo); /* '%'の出力*/ } int main(void) { int x, y, wa, sa, seki, sho, joyo; readdata(&x, &y); calculate(x, y, &wa, &sa, &seki, &sho, &joyo); printresult(x, y, wa, sa, seki, sho, joyo); return 0; }
233 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:38:15 ] 032>> >h.oidts< edulcni# { )y* tni ,x* tni(ataddaer diov ;)" :)y x( sregetni tupni"(ftnirp ;)y ,x ,"d%d%"(fnacs } )oyoj* tni ,ohs* tni ,ikes* tni ,as* tni ,aw* tni ,y tni ,x tni(etaluclac diov { ;y + x = aw* ;y - x = as* ;y * x = ikes* ;y / x = ohs* ;y % x = oyoj* } { )oyoj tni ,ohs tni ,ikes tni ,as tni ,aw tni ,y tni ,x tni(tlusertnirp diov ;)aw ,y ,x ,"n¥d% = d% + d%"(ftnirp ;)as ,y ,x ,"n¥d% = d% - d%"(ftnirp ;)ikes ,y ,x ,"n¥d% = d% * d%"(ftnirp ;)ohs ,y ,x ,"n¥d% = d% / d%"(ftnirp /*ヘ熔称〓'%' */ ;)oyoj ,y ,x ,"n¥d% = d% %% d%"(ftnirp } )diov(niam tni { ;oyoj ,ohs ,ikes ,as ,aw ,y ,x tni ;)y& ,x&(ataddaer ;)oyoj& ,ohs& ,ikes& ,as& ,aw& ,y ,x(etaluclac ;)oyoj ,ohs ,ikes ,as ,aw ,y ,x(tlusertnirp ;0 nruter }
234 名前:デフォルトの名無しさん [2008/06/11(水) 17:38:20 ] 初めまして。 [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): テキストファイルに保存された改行で区切られた整数を読み込んで、 その平均値を計算し、結果をファイルに保存することのできるプログラムを作成せよ。 データ数は最大1000個まで計算できるようにする。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:C [3.3] 言語:C言語 [4] 期限:2008年06月12日まで さっぱりわかりませんでした。宜しくお願いします。
235 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:43:14 ] 1] 授業単元: 計算機システム [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6861.txt 上記を元に,システムコールalarm とpause を使用してsleep コマンドと同等の働きをするコマンドmysleep を 作って下さい. Ctrl-c(Interrupt)、Ctrl-z(Suspend) に反応しないようにしてください.途中終了はCtrl-Y=(Quit) のみとし,“User quit” といったメッセージと残り時間を表示させてください. • ヒント: 対処すべきシグナルは4 種類,SIGINT,SIGTSTP,SIGALRM,SIGQUIT です. [3] 環境 [3.1] Linux [3.2] gcc [3.3] c [4] 期限: 6月11日中 [5] その他の制限: 上のtxtを元にしていただけたら、他は特にありません。 どうかよろしくお願いします。
236 名前:デフォルトの名無しさん [2008/06/11(水) 18:02:15 ] >>232 ありがとうございます
237 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:11:00 ] >>234 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6863.c
238 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:11:34 ] >>237 は取り消し。早とちりしとった・・・
239 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:13:05 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):() クイックソートにより配列をソートするプログラムを作れ www2.uploda.org/uporg1474868.txt.html ネットを参考に書いたのですが、中途半端にしかソートされません どこが違うのか指摘お願いします [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008/6/3まで [5] その他の制限: とくになし
240 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:13:52 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6862.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2008年06月12日18:00 [5] その他の制限:ポインタまで学習済み
241 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:19:03 ] >>234 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6865.c
242 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:19:19 ] >>234 #include<stdio.h> int main(void){ char *filename="data.txt"; FILE *fp; int i, data; double average=0.0; if(!(fp=fopen(filename, "r"))) return 1; for(i=1;i<=1000;i++){ if(fscanf(fp, "%d", &data)!=1) break; average=(average*(i-1)+data)/i; } printf("%f\n", average); return 0; }
243 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:21:16 ] [1] 授業単元:プログラム実習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6866.txt [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン: VC6.0 [3.3] 言語: C++ [4] 期限:なし [5] その他の制限:なし 問題文はソースの上に記しています
244 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 18:22:29 ] >>242 一々平均計算しなおすのはどうかと思うぜ。
245 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:09:48 ] 【質問テンプレ】 [1] 授業単元:情報ネットワーク論 [2] 問題文(含コード&リンク): 基数変換プログラムを作成しなさい。 「元:2〜16進数(選択)→変換先:2〜16進数(選択)」 という基数の指定ができるようにすること [3] 環境 [3.1] OS:Window [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月19日まで [5] その他の制限:基数変換を行う関数や外部プログラム等を用いてはいけない プログラミング類はやらないと言われていたのに出てしまいお手上げです よろしくお願いします
246 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:15:57 ] >>240 1. #include <stdio.h> int chkmatch(char *t1, char *t2) { while(*t2) if(*t1++!=*t2++) return 0; return 1; } int main(void) { char t1[256], t2[256], *p; scanf("%s", t1); scanf("%s", t2); for(p=t1; *p; p++) if(chkmatch(p, t2)) break; printf("%s", *p ? "yes" : "no"); return 0; }
247 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:18:07 ] >>240 2. #include <stdio.h> int chkmatch(char *t1, char *t2){ while(*t2) if(*t1++!=*t2++) return 0; return 1; } char *findstr(char *t1, char *t2){ while(*t1) { if(chkmatch(t1, t2)==1) return t1; t1++; } return NULL; } int main(void){ char *p, *q, *tag, t1[256], t2[256]; scanf("%s%s", t1, t2); p = t1; while(*p) { tag = findstr(p, t2); if(tag == NULL) { while(*p++) putchar(' '); break; } while(p!=tag) { putchar(' '); p++; } for(q=t2; *q; q++, p++) putchar('^'); } return 0; }
248 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:20:39 ] >>240 3. #include <stdio.h> void swapmax(int *data, int num) { int temp, i, max_indx = 0; for(i=1; i<num; i++) if(data[i] > data[max_indx]) max_indx = i; temp = data[0]; data[0] = data[max_indx]; data[max_indx] = temp; } int main(void) { int data[10], i, n; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d", data + i); swapmax(data, n); for(i=0; i<n-1; i++) printf("%d ", data[i]); printf("%d", data[i]); return 0; }
249 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:56:19 ] >>243 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6867.txt
250 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:02:48 ] >>245 文字列を整数に int my_strtol(char* str, int base) { int l, val; l = 0; while (*str) { if (*str >= '0' && *str <= '9') { val = *str - '0'; } else if (*str >= 'A' && *str <= 'F') { val = *str - 'A' + 10; } else if (*str >= 'a' && *str <= 'f') { val = *str - 'a' + 10; } // 16進数以外の文字が出たらそれまでの数値を返す else { return l; } // 基数以上の数値が出たらそれまでの数値を返す if (val >= base) { return l; } l *= base; l += val; str++; } return l; }
251 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:03:54 ] >>245 整数を文字列に int my_ltostr(int l, int base, char *str, int len) { int val, mod, i; val = l; i = 0; // 桁数を求める while (val) { val /= base; i++; } // 文字数オーバー if (i > len) { return -1; } str[i + 1] = '\0'; for (; i >= 0; i--) { mod = l % base; if (mod >=0 && mod <= 9) { str[i] = mod + '0'; } else if (mod >= 10 && mod <= 15) { str[i] = mod - 10 + 'A'; } l /= base; } return 0; }
252 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:07:08 ] うpロダ使え