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


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

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



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/

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 ]
どう考えてもブルドックソースのほうが先



954 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:04:59 ]
んじゃブルドックソースに一部を納めるから、クソースを使うたびに¢50徴収する二ダ

955 名前:デフォルトの名無しさん [2007/07/26(木) 09:10:02 ]
だれかクイックソートのフローチャートを図付きで詳しく説明してください
俺の頭じゃわかりません><

956 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:10:39 ]
>>955 ¢50払え

957 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:11:48 ]
>>955
www.google.co.jp/search?q=%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox

958 名前:デフォルトの名無しさん [2007/07/26(木) 09:21:14 ]
ググってもわかりやすいフローチャートが出ないんだ(´・ω・`)

959 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:23:06 ]
あれで理解できないなら諦めろ。所詮、才能の無い奴、理解力の無い奴は
一応学校の規定で単位はもらえるが、適切に行動が起こせないから困る。
今はなんだかんだ言ってもバカでも金で学歴が買える時代だしな。

960 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:40:50 ]
>>955
要は再帰呼び出しが理解できないでハマってるんだろうけど
フローチャートで書いてもそこんところは分かりやすくならんのよ

961 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:44:20 ]
寧ろ、フローチャートなんか使うから余計に理解しにくくなると思うんだが。

962 名前:デフォルトの名無しさん [2007/07/26(木) 13:56:20 ]
トランプかなんかで、試してみれ

963 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:57:03 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): ttp://s-io.mydns.jp/up/1/_/jump/1185417223.c/attatch PASS:c
四則演算のプログラムとして提出したのですがgets関数を使って書き換えろといわれ返されてしまいました
上のプログラムを元にして文字入力(取得)にgets関数を使った物を作ってください。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: 7月27日
[5] その他の制限: gets関数をつかっていればそれ以外には特に指定なし

よろしくお願いします。



964 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:02:17 ]
教育目的とはいえ今時gets使えとかどこのアホ教授だ

965 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:36:12 ]
>>963
void readch(void) /* 1文字を読む、空白は読み飛ばす */
{
#if 0
do {
if ((ch = getchar()) == EOF) return;
} while (ch == ' ' || ch == '\t');
#else
static char buf[1000];
static int index;
if (index == 0) gets(buf);
do {
if ((ch = buf[index++]) == '\0') {
ch = '\n';
return;
}
} while (ch == ' ' || ch == '\t');
#endif
}

966 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:41:22 ]
>>965
改悪にしかなってないのがwarosu

教官どんだけアホなのかと

967 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:45:15 ]
>>965
ありがとうございます。
やっぱり無理に書き換えても無駄が増えるだけですよね・・・
最初から新しく書き直したほうがいいんでしょうか?

968 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:47:15 ]
板谷だろ

969 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:52:53 ]
>>967
どう書き直そうがgets()を使う限り改悪にしかならんから諦めろ
(というかこのコードなら、例えfgets()であろうと同じことが言える)

970 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:26:16 ]
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4720.txt
プログラム問題文に沿って作ったものと、それに2つの要素を追加修正した
2つのプログラムの作成をお願いします。

[3] 環境
 [3.1] OS: windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/07/26 13:00まで
[5] その他の制限: 特に無し

よろしくお願いします


971 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:12:59 ]
投稿時すでに期限切れなのか

972 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:15:21 ]
ほんとだwこれは新しいww

973 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:27:04 ]
ごめんなさい、ごめんなさい。
>>970 の期限は
[4] 期限: 2007/07/30 13:00まで です。
先生方、お願いしまつ。



974 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:32:00 ]
[1] 授業単元:C言語
[2] 問題文

文字列が回文かどうか判定をするプログラムを作成せよ

実行例

文字列を入力してください。
abcdcba(Return)
abcdcbaは回文です。

文字列を入力してください。
unko6yy6oknu(Return)
unko6yy6oknuは回文です。

文字列を入力してください。
abcdefg(Return)
abcdefgは回文ではありません。

[3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7/30まで
[5] その他の制限:特になし

ポインタを使わなければいけないみたいですがさっぱり分かりません。
先生方、もしよろしければお助けください。お願いします。


975 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:58:32 ]
>>974
pc11.2ch.net/test/read.cgi/tech/1184003625/598

976 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:12:28 ]
>>974
釣りはとっとけこのクソッタレ野郎
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4758.c

977 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:15:23 ]
ワザとやってんのかな

978 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:17:28 ]
// >>974
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

bool isPalindrome(const char * word)
{
unsigned len = strlen(word);
if (len == 0) return false;
for (unsigned ic = 0; ic < len / 2; ++ic) {
if (word[ic] != word[len - 1 - ic]) return false;
}
return true;
}

int main()
{
char buf[200];
scanf("%199[^\n]", buf);
printf("%s is%s palindrome.\n", buf, isPalindrome(buf) ? "" : " not");
return 0;
}


979 名前:974 mailto:sage [2007/07/26(木) 19:52:31 ]
>>975
>>976
>>978
ありがとうございました

980 名前:943 mailto:sage [2007/07/26(木) 20:05:11 ]
>>947
>>948

返事遅れてすいませんでした
明日実行してみます
ありがとうございました

981 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:21:04 ]
>>970
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4759.zip
問題文に沿って作ったものと、2つの各要素を個別に追加したもの計3ファイル
2つの要素を両方追加したファイルが必要なら自分で作ってくろ。

982 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:28:47 BE:94671252-2BP(12)]
次スレ立てました
C/C++の宿題を片付けます 94代目
pc11.2ch.net/test/read.cgi/tech/1185452895/

983 名前:プログラミング初心者 [2007/07/26(木) 22:18:40 ]
>>936
ありがとうございます。
一度やってみましたがデバッグ後に何すればいいのかわかりません



984 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 22:27:32 ]
とりあえず、分かるところまででいいから解読しようとしようよ。

985 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:11:17 ]
>>935 同じディレクトリのwc_test.txtを読み込んで、単語数を数えて出力する。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4760.c






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

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

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