- 1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
- あなたが解けない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++の宿題を片付けます 92代目 pc11.2ch.net/test/read.cgi/tech/1183511364/
- 853 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:24:02 ]
- [1] 授業単元:c言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4739.txt [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:bcc32 [3.3] 言語: C [4] 期限: 7月26日まで [5] その他の制限:ファイルを読込んだり、書込んだりするところを習いました。
- 854 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:29:39 ]
- >>853
例をみると、改行も区切りと見なしてるが、それでいいのか?
- 855 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:32:04 ]
- >>854
はい
- 856 名前:にゃ〜 [2007/07/25(水) 00:37:12 ]
- >>844
わかりやすいっす!! ありがとうございます。勉強しなおします
- 857 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:39:18 ]
- >>853
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4740.c
- 858 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:52:03 ]
- >>853
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4741.c
- 859 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:54:40 ]
- >>853 ちょい修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4742.c
- 860 名前:853 mailto:sage [2007/07/25(水) 00:57:53 ]
- すいません。
補足で 入力ファイルを読込モードでオープン 出力ファイルを書出モードでオープン while ( 1 ) { 入力ファイルから書式付で字句を読込 ファイル終端なら脱出 出力ファイルに書式付で番号を付けて書込 } 入力ファイルをクローズ 出力ファイルをクローズ と言う形で作れと書いていました。
- 861 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:02:14 ]
- >>860
後だしイクナイ
- 862 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:03:16 ]
- >>853 >>860
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4743.c
- 863 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:04:32 ]
- >>862の#include <ctype.h>は不要だから消しておいて
- 864 名前:853 mailto:sage [2007/07/25(水) 01:15:02 ]
- ありがとうございました。
- 865 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ]
- >>851 >>852
ありがとうございます。 ソースも分かりやすく書いてくれたみたいで、参考になります。
- 866 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ]
- パワプロ14でオールAを作るプログラムを作れ
- 867 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 10:48:35 ]
- すごい宿題だな
- 868 名前:デフォルトの名無しさん [2007/07/25(水) 11:20:58 ]
- >>866
攻略本が必要だ。 でも宿題の内容熱いな。
- 869 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 11:44:08 ]
- 探索とその評価の方法をパワプロを通して学ぶわけだな
- 870 名前: ◆6MtsdamhF6 [2007/07/25(水) 11:45:35 ]
- すいません、まだ初心者であんまりわかりません。
締切が近いのでどうかお願いします 【質問テンプレ】 [1] 授業単元:プログラミングC言語 [2] 問題文(含コード&リンク): 次の違いに注意しながら、forの変わりにwhileを使うものにそれぞれ 書き換えなさい。ただし書き換えは最低限にすること (1) #include<stdio.h> main(){ int nc, c; for(nc = 0; (c= getchar()) != EOF; nc++) printf("%c", c); printf("\nTatal=%d\n", nc); } A#include<stdio.h> main(){ int nc, c; for(nc = 0; (c= getchar()) != EOF; nc++) putchar(c); printf("\n%d\n", nc); } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:今日の14時までなんです。 どうかおねがいします。
- 871 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:19:36 ]
- #include<stdio.h>
main(){ int nc=0, c; while((c= getchar()) != EOF) { printf("%c", c); nc++; } printf("\nTatal=%d\n", nc); } #include<stdio.h> main(){ int nc=0, c; while((c= getchar()) != EOF) { putchar(c); n++; } printf("\n%d\n", nc); } 期限切れだが
- 872 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:22:21 ]
- Aのn++はnc++の間違い
- 873 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:46:14 ]
- 今、>>841をやってみた。最初は簡単かと思ったけど、
そのまま階乗つかうとオーバーフローするから面倒なのね。 >>844ほど華麗ではないけど、x/n * ...x/3 * x/2 * x/1の和で計算した。
- 874 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:55:45 ]
- [1] 授業単元:C言語
[2] 問題文(含コード&リンク): 以下のように、2桁以下の正整数が1行に3つずつ書かれたファイルを input.txt とする。 ただし、ファイルの末尾には、終了を表す番兵0がある。 1 45 90 2 7 41 13 67 60 0 入力リダイレクトで input.txt を読み込み、出力リダイレクトで、以下のような形式で output.txt に保存するプログラムを作れ。 番号 数学 英語 合計 01 45 90 135 02 7 41 48 13 67 60 127 [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン:bcc32 [3.3] 言語: C [4] 期限:7/27 反復構文を使うっぽいです。
- 875 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:42:24 ]
- [1] 授業単元:情報基礎
[2] 問題文:次の仕様を満たすプログラムを作成せよ (1)入力は2以上の整数n 出力はnのすべての正の約数 (2)入力は2以上の整数n 出力はnの正の約数の個数 (3)入力は2以上の整数n 出力はnが素数ならば"n is prime", 合成数ならば"n is not prime" (nの部分には、入力した整数が表示されるようにすること) 3つのプログラムは1つにまとめてもよい。その場合には、ど れが約数でどれが約数の個数を表しているかが分かるようにす ること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:c [4] 期限:7月27日(金)提出は20:45までです
- 876 名前:デフォルトの名無しさん [2007/07/25(水) 16:43:30 ]
- >>874
#include <stdio.h> void main(){ int buf = 0; int count = 0; int total = 0; printf("番号 数学 英語 合計\n"); while(scanf("%d",&buf)) { if(buf == 0) break; count++; printf("%d ", buf); total += buf; if(!(count%3)){ printf("%d\n", total); total = 0; } } } なんにもエラー処理してないけどこんなんでいいかな・・・
- 877 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:58:51 ]
- >>875
#include<stdio.h> int main(){ int n,c=0,i; printf("n="); scanf("%d",&n); for(i=2;i<=n;i++) if(n%i==0) c++,printf("%d ",i); printf("\n%d\nn is ",c); if(c!=1) printf("not "); printf("prime.\n"); return 0; }
- 878 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:01:34 ]
- 間違えた・・
#include<stdio.h> int main(){ int n,c=0,i; printf("n="); scanf("%d",&n); for(i=2;i<=n;i++) if(n%i==0) c++,printf("%d ",i); printf("\n%d\n%d is ",c,n); //修正 if(c!=1) printf("not "); printf("prime.\n"); return 0; }
- 879 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:03:43 ]
- 学校の先生はこのスレにかかれているままのコードで
宿題をだしている生徒がいたら、減点すればいいわけだなwwww
- 880 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:17:55 ]
- 教官、見てるなら指摘された問題の間違い位直せよ。
- 881 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:31:47 ]
- そこまで良心的な教師いないよ
- 882 名前:デフォルトの名無しさん [2007/07/25(水) 17:55:14 ]
- [1] 授業単元: IT入門B1 C言語
[2] 問題文(含コード&リンク): 1辺10の立方体内部に含まれる四面体をN個発生し、 体積の分布(区間数は20程度)を表示するプログラムを 以下の要求に従って作成し、実行しなさい。 1,四面体を表す構造体(4つの3次元位置ベクトルをメンバーとする) を Tetra という名前で定義する. typedef struct {. . .} Tetra; 2,構造体 Tetra を返却する,すなわち四面体を生成する以下の名前の関数を作成する. Tetra mk_tetra(void) 3,四面体の体積を返す次の名前の関数を定義する. double vol_tetra(Tetra t) 4,Nの値は実行時にキー入力するように設計しなさい. [3] 環境 [3.1] OS: (Windows/Linux/等々) Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月25日20時迄 [5] その他の制限: ヒントとして 1、講義で用いた"vector.h" を必ずincludeして使いなさい。 2、四面体の1つの頂点を原点にして、他の3つの位置を表すベクトルを r1,r2,r3とすると、四面体の体積Vは以下のように与えられる V=1/6|(r1×r2)・r3| vector.h はこれです www-it.sci.waseda.ac.jp/teachers/w405201/ITB1/Sources/vector.h 今日が期限なんですが、全然わからないんです。 よろしくお願い致します
- 883 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:01:02 ]
- >>882
結果表示のイメージが分からない。グラフにするのかな?合計数値?
- 884 名前: ◆TDJK/P.926 [2007/07/25(水) 18:16:42 ]
- 【質問テンプレ】
[1] 授業単元:プログラミング言語 [2] 問題文(含コード&リンク) 講義中の題材として扱っていた電卓を、以下の点について改良せよ。 (1)変数に文字列を代入できるようにする。たとえば s1="Programing" word="apple" のような代入が可能になる。 (2)文字を扱う関数を取り扱えるようにする。たとえば s1="Programing" s2="Language" s3=concatenate(s1,s2) 上で代入されたs1とs2を連結したものをs3に代入する。 s3 =ProgramingLanguage (5)次のようなif文を使えるようにする。→if(条件式) 実行文 例: if(a+b>10) a=a-1 条件式には、>または<が使用できるものとする。条件式が成立していたときには、実行文(複文も可)を実行する。 (6)その他、この電卓に追加するとよいと思う昨日を考え、実現してみよ。 [3] 環境 [3.1] OS:WindowsXP 上でのUNIX [3.2] コンパイラ名とバージョン: gcc (※yaccとlexのプログラミングです。 [3.3] 言語:C言語 [4] 期限: (2007年07月27日20:00まで] [5] その他の制限:講義中の題材のソースはすぐアップします。
- 885 名前: ◆TDJK/P.926 [2007/07/25(水) 18:19:36 ]
- >>884のソースです。
※ヘッダファイル:ch3-05.h #define NSYMS 20 /* maximum number of symbols */ struct symtab { char *name; double (*funcptr)(); double value; } symtab[NSYMS]; struct symtab *symlook();
- 886 名前: ◆TDJK/P.926 [2007/07/25(水) 18:20:42 ]
- >>885 続き
※lexファイル:ch3-05.l %{ #include "y.tab.h" #include "ch3-05.h" #include <math.h> %} %% ([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?) { yylval.dval = atof(yytext); return NUMBER; } [ \t] ; /* ignore white space */ [A-Za-z][A-Za-z0-9]* { /* return symbol pointer */ struct symtab *sp = symlook(yytext); yylval.symp = sp; return NAME; } "$" { return 0; /* end of input */ } \n | . return yytext[0]; %% yyerror(char *errmsg) { fprintf(stderr,"ERROR: %s at %s\n", errmsg, yytext); } yywrap(){}
- 887 名前:デフォルトの名無しさん [2007/07/25(水) 18:20:50 ]
- 説明不足でした。申し訳ありません
N = 10000000 0.0 - 16.7: 0.699031 16.7 - 33.3: 0.206966 33.3 - 50.0: 0.065772 50.0 - 66.7: 0.020377 66.7 - 83.3: 0.005860 83.3 - 100.0: 0.001542 100.0 - 116.7: 0.000351 …中略… 316.7 - 333.3: 0.000000 が実行例としてありました。それぞれ体積の範囲ごとに どれくらい分布しているかを箇条書きみたいに出すみたいです。
- 888 名前: ◆TDJK/P.926 [2007/07/25(水) 18:23:05 ]
- >>886続き
※yaccファイル:ch3-05.y %{ #include "ch3-05.h" #include <string.h> #include <math.h> %} %union { double dval; struct symtab *symp; } %token <symp> NAME %token <dval> NUMBER %left '+' '-' %left '*' '/' %nonassoc UMINUS %type <dval> expression %% statement_list: statement '\n' | statement_list statement '\n' ; statement: NAME '=' expression { $1->value = $3; } | expression { printf("= %g\n", $1); } ;
- 889 名前: ◆TDJK/P.926 [2007/07/25(水) 18:25:09 ]
- >>888 yaccの続き。次で最後です。
expression: expression '+' expression { $$ = $1 + $3; } | expression '-' expression { $$ = $1 - $3; } | expression '*' expression { $$ = $1 * $3; } | expression '/' expression { if($3==0.0) yyerror("Divide by Zero"); else $$ = $1 / $3; } | '-' expression %prec UMINUS { $$ = -$2; } | '(' expression ')' { $$ = $2; } | NUMBER { $$ = $1; } | NAME { $$ = $1->value; } | NAME '(' expression ')' { if( $1->funcptr ) $$ = ($1->funcptr)($3); else {printf("%s not a function.\n", $1->name); } } ; %% /* look up a symbol table entry, add if not present */ struct symtab *symlook(char *s) { char *p; struct symtab *sp; for(sp=symtab; sp<&symtab[NSYMS]; sp++) { /* is it already here? */ if( sp->name && !strcmp(sp->name, s) ) return sp; /* is it free */ if( !sp->name ) { sp->name = strdup(s); return sp;} /* otherwise continue to next */ } yyerror("Too many symbols"); exit(1); /* cannot continue */ } /* end of symlook */
- 890 名前: ◆TDJK/P.926 [2007/07/25(水) 18:35:56 ]
- >>889 これで最後です。
void addfunc(char *name, double (*func)()) { struct symtab *sp = symlook(name); sp->funcptr = func; } int main() { extern double sqrt(), exp(), log(), sin(), cos(); addfunc("sqrt", sqrt); addfunc("exp", exp); addfunc("log", log); addfunc("sin", sin); addfunc("cos", cos); yyparse(); return 0; }
- 891 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:44:24 ]
- >>1にもある様に長文はロダ使おうぜ
その方が回答者にとってはやりやすい って書くといつもの基地外に噛み付かれるのかなぁ?
- 892 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:19 ]
- ◆TDJK テンプレ嫁
- 893 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:47 ]
- >>891
ガブ
- 894 名前: ◆TDJK/P.926 [2007/07/25(水) 18:47:51 ]
- >>891
うpロダには学校からアクセスしてるので規制されててアクセスできないんですよ(汗)申し訳ないです。
- 895 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:50:20 ]
- 2chはおkなのに?おかしな話だ
- 896 名前: ◆TDJK/P.926 mailto:sage [2007/07/25(水) 18:54:39 ]
- >>895
2ch自体にはアクセスできますがPink板など18禁系には規制かかります。 うpロダもそれで規制かかったので。
- 897 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:05:05 ]
- いくらでもあるのに規制って(´,_ゝ`)プッ
宿題まるなげするやつのいいそうなことだ。(´,_ゝ`)プッ
- 898 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:10:14 ]
- >>897
>>762
- 899 名前:デフォルトの名無しさん [2007/07/25(水) 19:11:16 ]
- 説明不足でした。申し訳ありません。
N = 10000000 0.0 - 16.7: 0.699031 16.7 - 33.3: 0.206966 33.3 - 50.0: 0.065772 50.0 - 66.7: 0.020377 66.7 - 83.3: 0.005860 83.3 - 100.0: 0.001542 100.0 - 116.7: 0.000351 …中略… 316.7 - 333.3: 0.000000 が実行例としてありました。それぞれ体積の範囲ごとに どれくらい分布しているかを箇条書きみたいに出すようです。 よろしくお願いします。
- 900 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:12:19 ]
- >>898こてはずして必死だなwww
- 901 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:54:06 ]
- >>900
>>762
- 902 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:58:05 ]
- >>882 間に合うかな?
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4746.c
- 903 名前:デフォルトの名無しさん [2007/07/25(水) 19:58:54 ]
- age
- 904 名前:デフォルトの名無しさん [2007/07/25(水) 20:01:53 ]
- スマン影響ないけど if(j > 30) j = 30; → if(j > 29) j = 29;
- 905 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:04:49 ]
- [1] プログラミング
[2] キーボードから入力された1行を読み込み,そのアルファベットを全て大文字に 変換して表示するプログラムを作成しなさい。なお,以下に与えられるメイン関数を必ず使用し, 文字列を大文字の文字列に変換する関数str_capを作成することで完成させなさい。 ヒント:小文字とは「'a'以上 かつ 'z'以下」の文字であるので,条件式が成立した場合に 小文字→大文字変換を行う。それ以外の文字はそのままにする。 Program: pt3-3.c の一部 #include <stdio.h> #define MAXLINE 1024 void str_cap(char src[], char dst[]); int main(void) { char line[MAXLINE], conv[MAXLINE]; printf("Input a line ->"); gets(line); str_cap(line, conv); printf("Original : %s\n", line); printf("Converted: %s\n", conv); return 0; } 実行結果 $ ./pt3-3 Input a line -> hiroshima city Original : hiroshima city Converted: HIROSHIMA CITY $
- 906 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:05:46 ]
-
[3] 環境 [3.1] Linux [3.2] gcc 3.4 [3.3] C [4] [無期限] [5] 関数部分をifを使って組む、toupperは使ってはいけない お願いします
- 907 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:26:03 ]
- どなたか>>810
分かりませんか? offspringを使って左右に潜っていくんだろうけど 最終的にどうなれば求める値なのかさっぱりわからん・・・・
- 908 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:29:28 ]
- >>905 mainより上にコピーして
void str_cap(char str1[], char str2[]) { int i; for(i = 0; str1[i] != '\0'; i++) { if(('a'<=str1[i]) && (str1[i]<='z')) str2[i]=str1[i]-'a'+'A'; else str2[i]=str1[i]; } str2[i]='\0'; }
- 909 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:34:48 ]
- >>908 ごめん、str1 -> src、str2 -> dst、ってことで。
- 910 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:18 ]
- >>905
ヒントは無視してるがやってみた #include<stdio.h> int main(void){ char lower[]="abcdefghijklmnopqrstuvwxyz"; char upper[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int i; printf("void str_cap(const char *src, char *dest){\n"); printf("\tdo{\n"); printf("\t\t*dest=*src;\n"); for(i=0;i<26;i++) printf("\t\tif(*src=='%c') *dest='%c';\n", lower[i], upper[i]); printf("\t\tsrc++;\n"); printf("\t\tdest++;\n"); printf("\t}while(*src);\n"); printf("}\n"); return 0; }
- 911 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:39 ]
- >>905
それvipでみたな ヒントもらえたのに解決しなかったのか?
- 912 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:40 ]
- 4文字の文字列を入力してF,R,E,Eの4文字で構成されていたらOK
それ以外なら入力しなおす。 ERFEやEERFもOK。この4文字で構成(F,RとEが2回で
- 913 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:40:28 ]
- DEAD BEEF
BAD FACE
- 914 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:42:48 ]
- >>910 は '\0' 入れ忘れてる orz
printf("}\n"); ↓ printf("\t*dest='\0';\n}\n");
- 915 名前:デフォルトの名無しさん [2007/07/25(水) 20:56:53 ]
- >>902
ありがとうございます。ギリギリ間に合いました。 お手数かけてすみませんでした。
- 916 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:04:05 ]
- >>912
宿題なら >>1 を読んで書きなおし
- 917 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:10:39 ]
- >>908
>>910 ありがとうございました。
- 918 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:22:18 ]
- >>908のように打ち込んだのですが、gets以外でfunction mainでエラーが発生し
printf("Converted: %s\n", conv);のconvの部分が出力されません newjizou.s6.xrea.com/cgi-bin/source/up0098.c
- 919 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:27:47 ]
- >>918
これじゃコンパイルできんだろ?
- 920 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:29:33 ]
- >>919
コンパイルはできたのですが、その部分が出力されないのです。
- 921 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:30:11 ]
- >>909の通りに置換されきれてない上に置換された文字が間違ってる
置換すらまともにできないのかYO
- 922 名前:デフォルトの名無しさん [2007/07/25(水) 21:36:52 ]
- >>902
度々すみません。コンパイルがうまくできてないようなんですが どこが間違っているのかわからないのですが。 お教え願いないでしょうか?
- 923 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:05 ]
- int main(int argc, char *argv[]) → int main(void)
にするといいかもNE!
- 924 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:11 ]
- >>921
コンパイルはできたのはこっちでした newjizou.s6.xrea.com/cgi-bin/source/up0099.c
- 925 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:49:44 ]
- だからね・・・
置換された文字が間違ってるからダメなんだ
- 926 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:53:32 ]
- >>925
落ち着いて見てみると修正した部分以外にも違っていた すみません、本当に自分が馬鹿でした・・・
- 927 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:57:13 ]
- >>924
折角変換処理を通した後で '\0' で上書きするということは memset(dest, '\0', strlen(str)); と等しい。
- 928 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:04:12 ]
- >>927
>>908のstc[i]='\0';の部分を修正したところ、正常に動作しました ありがとうございました、お世話かけました。
- 929 名前:デフォルトの名無しさん [2007/07/25(水) 22:08:37 ]
- [1] 授業単元:OS概論
[2] 問題文(含コード&リンク): Linuxでは、mmap()システムコールを使うと、 複数のプロセス間で仮想アドレス空間の一部を共有することができる。 このようなプログラムを作成し、 実際に仮想アドレス空間の一部が共有されていることを確認しなさい。 [3] 環境 [3.1] OS: LINUX [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2007年7月26日まで さっぱり見えてきません。 何卒宜しくお願い致します。
- 930 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:20:51 ]
- [1] 授業単元: C言語
[2] 問題文(含コード&リンク): 正の整数nを入力して、1からnまでの積(階乗)を求めるプログラムを 作成さいなさい [3] 環境 [3.1] OS: Windows [3.2] 言語: C言語 [4] 期限: 2時間以内 よろしくお願いします
- 931 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:34:26 ]
- #include <stdio.h>
int main(void) { unsigned int n, val = 1; scanf("%d", &n); while (n > 0) { val *= n--; } printf("%d\n", val); return 0; } こんなんでいいの? unsigned intを超える値を表示させろというなら面倒だな。
- 932 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:39:03 ]
- >>930
#include <stdio.h> int main(void) { int n,i,r; printf("n = "); scanf("%d",&n); for(i=1,r=1; i<=n; i++) printf("%d! = %d\n",i,r*=i); return 0; }
- 933 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:10:40 ]
- >>930 ちょっと変わったところで、こんなのはどう?
>>931の言うように、任意のnには無理だけど。 #include <stdio.h> int fact(int n){ return n>1?n*fact(n-1):1; } int main(){ int n; printf("n = "); scanf("%d",&n); printf("%d\n",fact(n)); return 0; }
- 934 名前:プログラミング初心者 [2007/07/25(水) 23:23:39 ]
- [1]授業単元:c言語
[2]問題文(含コード&リンク): 2つの符号なし整数a,b(ただし、a>bとする)を キーボードから読み込み @a,bを2進表示し、配列の中にビットを格納しなさい Aa,bの四則演算 c=a+b d=a-b e=a*b f=a/b(商f1と余りf2)を計算しその結果を出力しなさい [3]環境 [3.1] OS: Windows [3.2] 言語: C言語 [4]期限:2007年7月28日まで 全然見えてきません。 よろしくお願いします。
- 935 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:34:59 ]
- [1] 授業単元: C言語演習
[2] 問題文: 自分で作成したデータファイルを読み込みんで以下のような出力が出るようにする。 abc efg abc hijkl efg xxxxxxxxx これを abc, 3 efg, 3 hijkl, 5 xxxxxxxxx, 9 のようにする。 同じ文字は二度も表示させない。それぞれの文字数をカウントする。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C++ [4] 期限:7月30日まで よろしくお願いします。
- 936 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:54:44 ]
- >>934
こんなんでいいかい? #include <stdio.h> void dtob(unsigned int n, char *s) { unsigned int i = 32; s[i] = '\0'; for (i = 31; i >= 0; i--) { s[i] = (((n >> (31 - i)) & 1) + '0'); } } int main(void) { unsigned int a, b; char buf[33]; /* for 32bit */ scanf("%d %d", &a, &b); dtob(a, buf); printf("%s\n", buf); dtob(b, buf); printf("%s\n", buf); printf("%d + %d = %d\n", a, b, a+b); printf("%d - %d = %d\n", a, b, a-b); printf("%d * %d = %d\n", a, b, a*b); b && printf("%d / %d = %d(%d)\n", a, b, a/b, a%b); return 0; }
- 937 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:17:33 ]
- >>929 やっつけなので、かなりアレだかけど、一応、課題は満たせると思う。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4748.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4749.c 使い方 1:4748と4749を同じディレクトリ内でコンパイルする。 さらに、同じディレクトリ内に、hogeという名前のファイルを作る。 2:端末を二つ立ち上げ、片方で4748を、もう片方で4749を実行する。 3:4748で2,3文字入力してエンターしたあと、4749で'x'以外で何か一文字入力してエンター 4:すると、4748で入力した文字列が4749のプログラムに出力される。
- 938 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:18:31 ]
- どなたか>>929を御願いします…
- 939 名前:938 mailto:sage [2007/07/26(木) 00:20:49 ]
- リロードし忘れorz
>>937のを試してみます ありがとうございました
- 940 名前:686 mailto:sage [2007/07/26(木) 00:26:12 ]
- >>702
sa-wiki.com/upload/src/up0151.txt >期限: ([2007年7月23日9:00まで] ) もうとっくに切れているし、必要ないかもしれませんが、一応作ったので 極力ソースの変更はしないようにしたつもりです コメントは入れてませんし、メモリの開放が失敗しているかもしれません 問題の「その後、木のノードからつながる住所データを表示する。」の意味が分からなかったので手を付けていません 素人(自分)がやったのできれいではありません
- 941 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:26:38 ]
- >>935
「同じ文字は二度も表示させない」ってのは何のこと? 「同じ単語は…」のことか?
- 942 名前:デフォルトの名無しさん [2007/07/26(木) 00:41:47 ]
- >>810
dataType* f(nodeType *p,int k) { int n=k; if(k<1)return NULL; if(p->left!=sentry)n-=(p->left->offspring+1); if(n==1)return &(p->data); if(n<1)return f(p->left,k); if(p->right!=sentry)return f(p->right,n-1); return NULL; } dataType* RBSTfindKth(int k){ return f(head,k); } 該当箇所にコピー,ヘッダにf()の宣言追加, メニュー文字列に5:find追加でおk
- 943 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:39:43 ]
- [1] 授業単元:プログラミング演習I
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4751.txt [3] 環境 [3.1] Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 7/31まで [5] その他の制限:特になし 締め切り間近です。 どうか皆さんの力を貸してください。
- 944 名前:デフォルトの名無しさん [2007/07/26(木) 01:45:29 ]
- [1] 授業単元: プログラミング言語論
[2] 問題文: 読み込んだ分数を連分数として出力せよ。全ての分子が1になったときに連分数にする計算はとめればよい。 [3] 環境 [3.1] OS: Windows [3.3] 言語: C++ [4] 期限:明日(正確には今日)まで・・・ お願いします。
- 945 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:18:38 ]
- >>944
まず > 読み込んだ分数 っていう前提条件をよこせ
- 946 名前:944 [2007/07/26(木) 02:21:10 ]
- 問題があやふやですいません。
float a, b, c; std::cin >> a; std::cin >> b; c = a/b; 上記でいうcが読み込んだ分数です。 よろしくお願いします。
- 947 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:26:58 ]
- >>943
なんとなく lexico だけ #define lwstr(x) (isupper(x)?tolower(x):(x)) int lexico(char *a,char *b){ int i=0; while(*a && *b) i=lwstr(*a)-lwstr(*b),a++,b++; return i; }
- 948 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:33:59 ]
- >>943
ヒント・参考のとおりに書いたつもり くそーすだが kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4752.c
- 949 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:35:07 ]
- >>944
よりによってfloatか.微妙な誤差が出るかも 記法はwikiにならった #include <iostream> using namespace std; int main() { float A, B; cout << "input numerator (A in A/B)" << endl; cin >> A; cout << "input denominator (B in A/B)" << endl; cin >> B; if (A == 0) { cout << 0 << endl; } else if (B == 0) { cout << "error" << endl; } else { cout << "[" << (int)(A/B) << "; "; A = A-(int)(A/B)*B; while (A != 1) { if (B-(int)(B/A)*A == 0) { B /= A; break; } cout << (int)(B/A) << ", "; float w = A; A = B-(int)(B/A)*A; B = w; } cout << (int)B << "]" << endl; } }
- 950 名前:944 [2007/07/26(木) 02:46:42 ]
- >>949
ありがとうございます!このアルゴリズムを理解して寝ますwww 本当に助かりました☆
- 951 名前:948 mailto:sage [2007/07/26(木) 02:53:49 ]
- lexico関数の中の int k はいらないから消しといて><
- 952 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 05:58:29 ]
- クソースってのは俺が最初に使った言葉だ、一回使うたびに¢10徴収するニダ
- 953 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 06:38:34 ]
- どう考えてもブルドックソースのほうが先
|

|