- 1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ]
- あなたが解けない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++の宿題片付けます 122代目(実質123代目) pc11.2ch.net/test/read.cgi/tech/1232029287/
- 231 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:12:19 ]
- >>230dクス
- 232 名前:230 mailto:sage [2009/03/14(土) 21:13:38 ]
- やべバグあるわ。今直す
- 233 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:17:42 ]
- [1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8975.txt データを表示する場合に,データの昇順と降順の両方向での表示が選択で きるように,このプログラムに変更してください [3] 環境 [3.1] OS:Win [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語:C [4] 期限: 2009/03/16 [5] その他の制限: ありません よろしくお願いします
- 234 名前:230 mailto:sage [2009/03/14(土) 21:18:22 ]
- >>220 少し短くなったかな
#include<stdio.h> #include<stdlib.h> int s[99],p; void push(int n){s[p++]=n;} int pop(void){return s[--p];} int main(){  char b[99];  for(;scanf("%98s",b)==1;printf("%d\n",s[p-1]))   switch(*b){    int t;    case'+':t=pop();push(pop()+t);break;    case'-':t=pop();push(pop()-t);break;    case'*':t=pop();push(pop()*t);break;    case'/':t=pop();push(pop()/t);break;    default:push(atoi(b));   } }
- 235 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:24:11 ]
- >>234さんたびたびdクスです。
- 236 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:27:49 ]
- >>233
void PrintTreeRev(BinNode *p){ if (p != NULL) { PrintTree(p->right); PrintData(p->data); PrintTree(p->left); } } を追加してメニューから呼ぶようにしろ
- 237 名前:236 mailto:sage [2009/03/14(土) 21:28:40 ]
- おーう、中のPrintTreeもPrintTreeRevだ
逝ってくる
- 238 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:33:53 ]
- >>227
微妙に質問が質問として成立してないんじゃね? OS自体がプログラムだから、プログラムとして違いがあるし、 OSの機能を使うプログラムの場合も、OSが違うからプログラムとして違いがある。 >>234 いい感じ でも、"%98s"じゃなく、"%98[^\n]"じゃないとダメぽ
- 239 名前:234 mailto:sage [2009/03/14(土) 21:44:06 ]
- >>238
すまん。なぜダメなのか教えてくれないか。 何が入力されたときにまずい?
- 240 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 21:48:53 ]
- >>239
すんません。 勘違いしてました。 scanf一回で、式を全部持ってくるのかと思ってました。。。
- 241 名前:234 mailto:sage [2009/03/14(土) 21:51:32 ]
- >>240おk。
- 242 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:12:01 ]
- >>237
出来ました!ありがとうございます!
- 243 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 22:54:57 ]
- [1] 授業単元:アルゴリズムとデータ構造
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8976.txt [3] 環境 [3.1] OS:ウィンドウズvista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: [2009年3月15日] [5] その他の制限:なし お願いします
- 244 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:23:05 ]
- >>243
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8977.txt
- 245 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 00:37:13 ]
- あるある
- 246 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:15 ]
- osの違いでC言語に違いが出てくることってあるんですか?
- 247 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:19:53 ]
- >>244
ありがとうございます
- 248 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 01:49:26 ]
- [1] 授業単元: データ構造アルゴリズム
[2] 問題文 スタックを利用した逆ポーランド電卓を作成しなさい。ただし、演算は四則演算のみとし、数値と数値、数値と演算子の間は半角スペースで区切って入力することとする。 逆ポーランド電卓 逆ポーランド記法の数式を入力してリターンキーを押すと答えを表示してくれるもの。スタックを使用して以下のように計算する。 1.数値なら、そのままスタックにつむ 2.演算子なら、2つの数をスタックからおろして演算を行い、その結果を再びスタックにつむ。 ※逆ポーランド記法とは演算子を後ろに置く記法。例えば1+2は12+に、(1+2)*3は12+3*になる。逆ポーランド記法は後置法ともよばれる。 [3] 環境 [3.1] OS: (unix) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: [3/16] [5] その他の制限: なし よろしくお願いします。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:08:17 ]
- >>248
>>220と>>234を見ろ。 なんというか、まあ、お前らのところ本当にどうしようもないのしかいないんだな
- 250 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:18:35 ]
- >>249 問題が同じでも細かいところが違うんですよ。
- 251 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 02:24:17 ]
- 確かにOSが違うな
- 252 名前:249 mailto:sage [2009/03/15(日) 02:51:34 ]
- >>250
すまん、その細かいところってどこだ? >>251 >>222見る限りOSも同じだが。
- 253 名前:デフォルトの名無しさん [2009/03/15(日) 03:22:19 ]
- すみません、C初心者で、今課題をやってるのですが、入門書見ながらでもさっぱりです。
よろしくおねがいします。。 ↓↓↓↓↓ 以下のプログラムは、入力された10個の数値を引き算し、その結果を表示するプログラムです。 9〜11行目を別の関数(関数名はFuncDev)とし、修正しなさい。ただし、グローバル変数は使わないこと。 またFuncDev内のローカル変数名は任意とします FuncDev関数は以下の定義とします int FuncDec(void); FuncDev関数の戻り値は、画面入力されたint型データとします。 1:#include<stdio.h> 2:void main(void); 3:void main(void) 4:{ 5: int n1 n2; 6; int nt; 7: nt=0; 8: for(n1=0;n1<10;n1++){ 9: printf("0-9の数値を入力:"); 10: scanf(" %d",&n2); 11: nt-=n2; 12: } 13: printf("結果は%dです",nt); 14:}
- 254 名前:>>253 mailto:sage [2009/03/15(日) 03:34:52 ]
- #include <stdio.h>
int FuncDev(void); int main(void) { int nt, n1; nt = 10000; for(n1 = 0; n1<10; n1++){ nt -= FuncDev(); } printf("結果は%dです", nt); } int FuncDev(void) { int n2; scanf(" %d", &n2); return n2; }
- 255 名前:デフォルトの名無しさん [2009/03/15(日) 03:41:45 ]
- >>254
すばやいご回答ありがとうございました。 私は問題の意味を勘違いしていたみたいでした。 自分一人だったら白紙で出すところでした。 本当にありがとうございました
- 256 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 03:52:02 ]
- OSがunixって幅が広すぎるよな。
- 257 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:01:21 ]
- [1] 授業単元: データ構造アルゴリズム
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン: BCC Borland C++ 5.5.1 [3.3] 言語: C [4] 期限: ([2009年3月15日]) [5] その他の制限:なし
- 258 名前:>>253 [2009/03/15(日) 04:18:12 ]
- >>254さま
すみません、 今読んでいて疑問に思ったのですが、 6行目の nt=10000; とはどういう意味なのでしょう? 簡単に解説をしてくださると助かります
- 259 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 04:50:50 ]
- >>252 問題はいっしょだが条件が追加されてる。
- 260 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 05:09:36 ]
- >>259
どんな条件? 逆ポーランド電卓の説明が追加されているだけにしか見えんが?
- 261 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 09:48:42 ]
- >>260
ようわからんが実行結果がちがったんじゃねーの?たぶん同じやつが書き込んでるとおもわれる。
- 262 名前:>>253 mailto:sage [2009/03/15(日) 09:58:05 ]
- ntは引かれる数。10000は一万。
- 263 名前:デフォルトの名無しさん [2009/03/15(日) 13:42:22 ]
- >>253
#include "stdafx.h" #include <stdio.h> #include <iostream> #include "windows.h" using namespace std; int FuncDec(){ int n2; cout << "input 0-9" << endl; cin >> n2; return n2; } int main(void){ int n1; int nt=0; for(n1=0;n1<10;n1++){ nt-=FuncDec(); } cout << "output " << nt; Sleep(10000); }
- 264 名前:デフォルトの名無しさん [2009/03/15(日) 13:45:44 ]
- このスレ、己の描いた独自プログラムと簡単な問題文しか出さない人が多いけど
独自プログラムなんて出すよりも 詳しい問題文やどういったアルゴリズムにしようとしてるか描いてくるほうがありがたい というのもプログラムなんざ千差万別だから、そんなもの提示されても 俺のプログラムと描き方の雰囲気が少しでも違ってたらいちいち面倒なことになる
- 265 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 14:12:06 ]
- >>264
宿題スレに何を求めているの?
- 266 名前:デフォルトの名無しさん [2009/03/15(日) 15:55:22 ]
- この世に存在するソフトウェアのソースが公開されているものなんて
ほんのごく一部だぞ?他人の猿真似でどうにかなるもんでもなかろう 定石なんて、書店に行けばいくらでも見つかるぞ
- 267 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:55:41 ]
- osの違いでC言語に違いが出てくることってあるんですか?
- 268 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 15:56:24 ]
- >>267
環境依存に関わるライブラリではあり得る。
- 269 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 16:16:48 ]
- >>267
Cの規格上、差異を認めている部分(処理系定義)では起こりうる。 もちろんOSの値が以外の原因で起こることもあるけど。 型の大きさとか表現方法とか。
- 270 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:24:29 ]
- >>264
所詮、ここはC系で一番バカな質問を受け付ける/受け流すためのハコだからな。 問題文の読み方も分からないって手合いが多数だし、「ここまで書きました」は大概読まないほうがいい。 動かないコードを見て、何のツモリか当て推量するのは不毛だしな。 ・・・動いているコードでさえ、何のツモリ(仕様)かなんて、推量はあてにならないしな。
- 271 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 17:57:16 ]
- >>248 parseあんま自信無いw
#include<stdio.h> #include<ctype.h> int s[99],p,a; void push(int n){s[p++]=n;} int pop(void){return s[--p];} int main(){  int c,t;  for(;(c=getchar())!=EOF&&c!='\n';){   if(isspace(c));   else if(c=='+')t=pop(),push(pop()+t);   else if(c=='-')t=pop(),push(pop()-t);   else if(c=='*')t=pop(),push(pop()*t);   else if(c=='/')t=pop(),push(pop()/t);   else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);   else return fprintf(stderr,"Parse error!");  }  printf("%d\n",pop()); }
- 272 名前:271 mailto:sage [2009/03/15(日) 18:00:01 ]
- 悪い。修正版。
#include<stdio.h> #include<ctype.h> int s[99],p; void push(int n){s[p++]=n;} int pop(void){return s[--p];} int main(){  int c,t;  for(;(c=getchar())!=EOF&&c!='\n';)   if(isspace(c));   else if(c=='+')t=pop(),push(pop()+t);   else if(c=='-')t=pop(),push(pop()-t);   else if(c=='*')t=pop(),push(pop()*t);   else if(c=='/')t=pop(),push(pop()/t);   else if(ungetc(c,stdin),scanf("%d",&t)==1)push(t);   else return fprintf(stderr,"Parse error!");  printf("%d\n",pop()); }
- 273 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:04 ]
- getchar()使うヤツって……
- 274 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:03:50 ]
- いちいち言うくせに、指摘や適切なものを提示しないヤツって・・・口先だけのインポ野郎だなw
- 275 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:07:58 ]
- >>272さんありがとうございます。
- 276 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:15 ]
- こんなスレで偉そうにしているヤツって……
- 277 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:09:51 ]
- >>273
普通につかうガナ
- 278 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 18:18:36 ]
- >>270
初心者のコード見てこき下ろしたり、黒歴史を思い返したりするのもまた一興じゃないか。
- 279 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 20:03:56 ]
- お願いします
[1] 授業単元: データ構造アルゴリズム [2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8979.txt こののプログラムのクイックソートを行っている関数quickを,非再帰的なアルゴリズムに書き換えてください. [3] 環境 [3.1] OS:Win [3.2] コンパイラ名とバージョン: BCC [3.3] 言語: C [4] 期限: ([2009/3/15]) [5] その他の制限:なし
- 280 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 21:55:22 ]
- 非再帰って自前でスタック使ったら、再帰アルゴリズムを
言語の再帰使わずに実装しているだけの様な。
- 281 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:37:11 ]
- クソ課題だなあ
- 282 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 22:40:26 ]
- 281 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:37:11
クソ課題だなあ
- 283 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 22:55:57 ]
- 分割統治法を非再帰でやらせるとか
クソ課題以外の何者でもないだろ
- 284 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:02:32 ]
- こんな感じかな?
void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl; int pr; Data x; while(1) { pl =left; pr =right; x = a[(pl+pr)/2]; do { while(Cmp(x, a[pl], order)) pl++; while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){ swap(Data , a[pl], a[pr]); pl++; pr--; } } while(pl <= pr ); if (left < pr) {right = pr; continue;} if (pl < right) {left = pl; continue;} break; } }
- 285 名前:自分が解けもしないくせに口だけは大きい馬鹿 [2009/03/15(日) 23:14:59 ]
- 283 名前:デフォルトの名無しさん 投稿日:2009/03/15(日) 22:55:57
分割統治法を非再帰でやらせるとか クソ課題以外の何者でもないだろ
- 286 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:15:35 ]
- オレが解けないのは課題が悪いからだ!
- 287 名前:デフォルトの名無しさん mailto:sage [2009/03/15(日) 23:18:06 ]
- >>281>>283
スレ違い。公開オナヌーは他所でどぞ。
- 288 名前:デフォルトの名無しさん [2009/03/15(日) 23:26:07 ]
- 口先だけのヤツは、いつも自分がそれに対してどう思うか?
という主観しか述べず、問題があるなら問題点を指摘するなり 客観性のある見解を示さず、自分が言ったことを反対されると ファビョるだけの井の中の蛙なんだなぁ
- 289 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:15:42 ]
- >>284さんありがとうございますm(_;)m
- 290 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 00:51:08 ]
- >>289
間違っる。 最初のleftとrightを記憶し、 左側を絞り込み、記憶しておいたleftとrightで右側を絞り込むように 2回に分けないといけないみたい。
- 291 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:04:18 ]
- >>283
再帰を反復に変換するのは普通の課題だろ。
- 292 名前:デフォルトの名無しさん [2009/03/16(月) 01:15:13 ]
- 初心者です。
/*BMI.c*/ #include<stdio.h> int main() { double a,b,c; c=b/(a*a); printf("あなたの身長(m)を入力してください。-----"); scanf("%f",&a); printf("あなたの体重(kg)を入力してください。-----"); scanf("%f",&b); printf("あなたのBMIは%fです。\n",c); if(c >=25){ printf("あなたは肥満です。"); } return 0; } これはあってますか?
- 293 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:19:08 ]
- >>292
間違ってます。
- 294 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 01:25:59 ]
- 修正?
void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl;int pr;Data x;int _right; _right = right; while(1) { pl = left;pr = right;x = a[(pl+pr)/2]; do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;} } while(pl <= pr ); if (left < pr) {right = pr; continue;} break; } left = 1;right = _right; while(1) { pl = left;pr = right;x = a[(pl+pr)/2]; do {while(Cmp(x, a[pl], order)) pl++;while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){swap(Data , a[pl], a[pr]);pl++;pr--;} } while(pl <= pr ); if (pl < right) {left = pl; continue;} break; } }
- 295 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 02:16:47 ]
- それじゃ無理だろ
- 296 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 03:09:37 ]
- 修正の修正?
void quick(Data a[], int left, int right, int Cmp(Data x, Data y, int order), int order){ int pl; int pr; Data x; int _right; _right = right; while(1) { pl = left; pr = right; x = a[(pl+pr)/2]; do { while(Cmp(x, a[pl], order)) pl++; while(Cmp(a[pr], x, order)) pr--; if ( pl <= pr ){ swap(Data , a[pl], a[pr]); pl++; pr--; } } while(pl <= pr ); if (left < pr) {right = pr;continue;} else right = _right; if (pl < right) {left = pl;continue;} break; } }
- 297 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:16:12 ]
- >>294
>>295 >>296 重ね重ねありがとうございます
- 298 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:28:20 ]
- >>296
無駄が多い
- 299 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 04:55:23 ]
- >>298
模範解答をお願いします。
- 300 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 05:27:00 ]
- クイックソート 非再帰でググればいくらでも転がってるだろ
- 301 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:35:25 ]
- >>292
a,bに値が格納される前にcを計算しているので間違い。
- 302 名前:デフォルトの名無しさん [2009/03/16(月) 12:03:26 ]
- >>298
指摘するくらいなら、自分がそれに応じたコードを示せよ? ここんとこ、口先だけの役立たずw
- 303 名前:デフォルトの名無しさん [2009/03/16(月) 16:54:19 ]
- >>301
ありがとうございます。
- 304 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:16:54 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整列配列を用意します。 要素を入力し、クイックソートを用いて昇順にソートするプログラムを作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: qsortを使わないでお願いします。
- 305 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:24:06 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):qsort関数を用いてソートするプログラムを作成しなさい。身長の昇順、視力の降順など、複数の条件でソートすること。 ※qsort関数 書式 void qsort(void*base,size_t nmemb,size_t size,int(*compar)(const void*,const void)) [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限:
- 306 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:26:47 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):文字列から任意の文字を探索するプログラムを作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします。
- 307 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:34:56 ]
- >>304
>>219,>>225
- 308 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:41:24 ]
- >>307
その問題はqsortを使っているので…
- 309 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:01:55 ]
- >>306
#include <stdio.h> #define BUFSIZE 108 char *mstrchr(const char *src, char ch) { for(;*src;++src) if(*src==ch) return (char*)src; return 0; } int main() { char buf[BUFSIZE], ch, *p; int c = '0'; printf("文字列:", buf); fgets(buf, BUFSIZE, stdin); /*if(!mstrchr(buf, '\n')) while(c!='\n'&&c!=EOF) c = getchar(); if(c==EOF) return 1;*/ printf("文字:", buf); ch = getchar(); p = mstrchr(buf, ch); if(p) printf("%d文字目\n", p-buf+1); else printf("なかった\n"); return 0; }
- 310 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:25:04 ]
- >>309さんありがとうございます。
- 311 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:26:40 ]
- >>304
#include <stdio.h> #define N 10 void mqsort(int x[], int left, int right){ int i=left,j=right,p=x[(i+j)/2]; while(1){ while(x[i]<p) i++; while(p<x[j]) j--; if(i>=j) break; {int tmp = x[i]; x[i] = x[j]; x[j] = tmp;} i++;j--; } if(left<i-1) mqsort(x, left, i-1); if(j+1<right) mqsort(x, j+1, right); } int main(){ int a[N],i; for(i=0;i<N;++i)scanf("%d",a+i); mqsort(a,0,N-1); for(i=0;i<N;++i)printf("%d ",a[i]); return 0; }
- 312 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:29:24 ]
- >>309
strchr() に準じてだろうけど const char* で受けた一部を char* で戻すのって微妙に気持ち悪いよね
- 313 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:34:35 ]
- >>311
dクスです。
- 314 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:38:22 ]
- >>308
>>279
- 315 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:56:12 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク): "string"の先頭の三文字を入力した文字の三文字と比較して、 一致すれば0を一致しなければ1を出力するプログラムを作成しなさい。また、"XXXX"を入力すると終了するようにしなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします
- 316 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:04:01 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文 ある文の中に指定した語が見つかるとその場所を表示するプログラムをBM法を用いて作成しなさい。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし おねがいします
- 317 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:13:43 ]
- どんだけ宿題溜め込んでるんだよw
- 318 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:45:41 ]
- >>315
#include <stdio.h> #include <string.h> int main(){char s[]="string",b[5];return fgets(b,5,stdin)&&strcmp(b,"XXXX")&&printf("%d",strncmp(b,s,3)?1:0)>=0;}
- 319 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 19:54:58 ]
- >>318
短いっすね。ありがとうございます。
- 320 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:01:32 ]
- >>318
これで出したらやり直しくらいそうだがな
- 321 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:16:21 ]
- >>318
教員もこんな簡単な問題に対して,こんな大人げない解答出されたら疑問に思うわなw
- 322 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:54:37 ]
- >>318
お前のような漢になりたい
- 323 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:17:48 ]
- >>320-322
むしゃくしゃしてやった。反省はしていない。 >>316 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8981.txt
- 324 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:44:34 ]
- >>323
これは信用していいんですよね?
- 325 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 21:47:51 ]
- >>311
だからqsortは使っちゃだめ!
- 326 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:05:18 ]
- >>315 ./a <ソース.c
#include <stdio.h> int main() { char s[] = "string", b[1024]; /* string */ do { if(!gets(b)) return 1; printf("%d\n", strncmp(b,s,3) ? 1:0); } while(strcmp(b, "XXXX")); return 0; }
- 327 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:19:52 ]
- >>326
./a<ソース.cが意味不明なんですけど
- 328 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:26:25 ]
- >>326
>>318の後にこれを貼る勇気に乾杯 とりあえずgetsはやめろ
- 329 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:36:55 ]
- [1] 授業単元:データ構造アルゴリズム
[2] 問題文(含コード&リンク):要素数10個の整数配列を用意します。要素を入力し、シェルソートを用いて昇順にソートするプログラムを作成しなさい。 今回は、比較幅を1,2,4,8…のような2のべき乗とする。 [3] 環境 [3.1] OS: (UNIX) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限: ([21年3月16日まで] ) [5] その他の制限: なし よろしくおねがいします
- 330 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 22:42:12 ]
- 2021年か、結構先だな
- 331 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 23:11:38 ]
- >>315 ./a <ソース gets使ってしまった。
#include <stdio.h> int main() { char s[] = "string", b[1024]; /* string */ do { if(!fgets(b,1024,stdin)) return 1; printf("%d\n", strncmp(b,s,3) ? 1:0); } while(strcmp(b, "XXXX\n")); return 0; }
|

|