C/C++の宿題を片付けます 96代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0055デフォルトの名無しさん
2007/09/22(土) 17:25:52バカすぎ
0056デフォルトの名無しさん
2007/09/22(土) 17:27:32&&
0057デフォルトの名無しさん
2007/09/22(土) 17:28:08一応まともに答えてる38と44は除外してやれよw
0058デフォルトの名無しさん
2007/09/22(土) 17:28:330059デフォルトの名無しさん
2007/09/22(土) 17:32:43if (sa<=10 || 0)
でおk
0060デフォルトの名無しさん
2007/09/22(土) 17:33:25else
printf("それらの差は%dで11以上です。",sa);
の順でやって。
0061デフォルトの名無しさん
2007/09/22(土) 17:35:24-1と-4は、-1のほうが大きい。
0062デフォルトの名無しさん
2007/09/22(土) 17:37:02||を使えってのにその順番はないだろ
0063デフォルトの名無しさん
2007/09/22(土) 17:41:290064デフォルトの名無しさん
2007/09/22(土) 17:43:56差の値を表示しろなんて、元の問題文にも>>35にもないわけだが。
0065デフォルトの名無しさん
2007/09/22(土) 17:50:56int sa = no1 - no2;
if(sa==-10||sa==-9||sa==-8||sa==-7||sa==-6||sa==-5||sa==-4||sa==-3||sa==-2||sa==-1||sa==0
||sa==1||sa==2||sa==3||sa==4||sa==5||sa==6||sa==7||sa==8||sa==9||sa==10)
0066デフォルトの名無しさん
2007/09/22(土) 17:54:490067デフォルトの名無しさん
2007/09/22(土) 17:56:050068デフォルトの名無しさん
2007/09/22(土) 18:03:080069デフォルトの名無しさん
2007/09/22(土) 18:03:330070デフォルトの名無しさん
2007/09/22(土) 18:06:21せめて中学卒業してからおいで
007129
2007/09/22(土) 18:08:29>>30 >>31
返信が遅くなってすみません。
一応こんな感じで書いて動作はしました。
#include<stdio.h>
int Factorial(int n);
int main(void)
{
int n;
printf("自然数を入力して下さい:");
scanf("%d",&n);
printf("%dの階乗は,%dです。\n",n,Factorial(n));
return 0;
}
int Factorial(int n)
{
printf("関数Factorial(%d)にはいりました。\n",n);
if(n>0)
{
return n*Factorial(n-1);
}
else
{
return 1;
}
}
0072デフォルトの名無しさん
2007/09/22(土) 18:09:05良かったね。さようなら。
0073デフォルトの名無しさん
2007/09/22(土) 18:10:11それで十分な気もするが
0074デフォルトの名無しさん
2007/09/22(土) 18:16:05if (sa>=11 || sa<=-11)
これでOK
0075デフォルトの名無しさん
2007/09/22(土) 18:18:24printf("それらの差は%dで11以上です。",sa);
else
printf("それらの差は%dで10以下です。",sa);
0076デフォルトの名無しさん
2007/09/22(土) 18:21:56そんなにバカな答え書いてバカにされたのが悔しかったのか
0077デフォルトの名無しさん
2007/09/22(土) 18:23:14「それらの差」がマイナスの表示になってもいいの?
0078デフォルトの名無しさん
2007/09/22(土) 18:23:160079デフォルトの名無しさん
2007/09/22(土) 18:23:30008029
2007/09/22(土) 18:27:04これ以外に関数Factorial(n)から出ます:Factorial(n)=再帰の途中経過
見たいなのを表示しなければならないんですよ・・・
どこに入れたら表示させらるのか分からないので教えてもらえませんか?
よろしくお願いします
0081デフォルトの名無しさん
2007/09/22(土) 18:28:130082デフォルトの名無しさん
2007/09/22(土) 18:29:410083デフォルトの名無しさん
2007/09/22(土) 18:29:46int Factorial(int n)
{
int ret;
printf("関数Factorial(%d)にはいりました。\n",n);
ret = n > 0 ? Factorial(n-1) * n : 1;
printf("関数Factorial(%d)は%dを返して終了します\n",n, ret);
return ret;
}
こんな感じでどうよ?
008429
2007/09/22(土) 18:50:30ありがとうございます。
おかげさまで分かりました。
ホントにありがとうございました。
>>82
>>83さんのおかげで分かりました。
>>81
しつこくてすみませんでした。
何度もしつこく聞いてしまったのに親切に返信してくれた
方々ありがとうございました。
0085デフォルトの名無しさん
2007/09/22(土) 19:19:42どういうこと?
0086デフォルトの名無しさん
2007/09/22(土) 19:31:10sa=-11 のとき
「それらの差は-11で11以上です。」
というおかしな表示になるよ。
0087>>16
2007/09/22(土) 20:10:26#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(void){
double reg = 0, mem = 0;
char buf[128] = {0}, *p;
while(1){
scanf("%127s", buf);
if(!strcmp(buf, "end:")) break;
else if(!strcmp(buf, "M+")) mem += reg;
else if(!strcmp(buf, "M-")) mem -= reg;
else if(!strcmp(buf, "MR")) reg = mem;
else if(!strcmp(buf, "RC")) reg = 0;
else if(!strcmp(buf, "MC")) mem = 0;
else if(isalpha(*buf)) fprintf(stderr, "error\n");
else{
p = buf;
reg += strtod(p, &p);
while(*p != '=' && *p != '\0')
switch(*p++){
case '+' : reg += strtod(p, &p); break;
case '-' : reg -= strtod(p, &p); break;
case '*' : reg *= strtod(p, &p); break;
case '/' : reg /= strtod(p, &p); break;
default : reg = strtod(p, &p); break;
}
}
printf("reg = %g \t mem = %g\n", reg, mem);
}
return 0;
}
0089デフォルトの名無しさん
2007/09/22(土) 20:34:32ログを残している人はいつでもそのレスを見ることが出来る。
つまり、有るってことで。
0090デフォルトの名無しさん
2007/09/22(土) 20:50:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4950.txt
009116
2007/09/23(日) 12:44:46リンク先を利用させてもらったのですが、どうも計算が上手くいきません。
たとえば「5+5=」と打ち込んで、「end:」で終了させても答えは出ず、
「reg=-1 mem=0」といった感じにしか表示されません。
おそらくレジスタが−1でメモリが0であることを表していると思うのですが、
肝心の計算結果がわかりません。
このプログラムをどのように修正すればよいのでしょうか?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4950.txt
0092デフォルトの名無しさん
2007/09/23(日) 13:21:49[2] 問題文(含コード&リンク):
読み込んだ非負の整数血を逆順に表示。
[3] 環境
[3.1] OS: Win Bcc32 C
[4] 期限:[無期限]
[5] その他の制限: ないです。
0093デフォルトの名無しさん
2007/09/23(日) 13:36:410094デフォルトの名無しさん
2007/09/23(日) 14:26:07>90のソースをコンパイルしたら一箇所だけエラーが出たので、それを修正してコンパイルしてみた。
--
$ ./a.out
5+5=
reg = 10 mem = 0
end:
$
--
普通に動いているようだが。
0095デフォルトの名無しさん
2007/09/23(日) 14:28:16なんかわかんなくなってきたから、実行例をいくつかください
0096デフォルトの名無しさん
2007/09/23(日) 15:03:31#include <stdio.h>
#define n 10
int main(int c,char**v){
int i,a[n];
if(c==1)for(i=0;i<n;i++)scanf("%d",&a[i]);
c!=n+1?printf("%d ",main(c+1,c==1?(char**)a:v)):0;
return c==1?0:*((int*)v+c-2);
}
0097デフォルトの名無しさん
2007/09/23(日) 15:06:32スタックの勉強でもしてるのかな?
#include <stdio.h>
#define S_MAX 500
int stack[S_MAX];
int top=-1;
void push(int x){
stack[++top] = x;
}
int pop(){
return stack[top--];
}
int main(){
int i=1;
while(i!=0){
printf("非負値の入力(0で終了):");
scanf("%d", &i);
if(i<0){
printf("非負値じゃないとダメです\n");
}else if(i!=0){
push(i);
}
}
printf("--- 結果 ---\n");
while(top!=-1){
printf("%d\n", pop());
}
return 0;
}
0098デフォルトの名無しさん
2007/09/23(日) 15:07:520099デフォルトの名無しさん
2007/09/23(日) 15:09:26do whileを勉強しています。
0100デフォルトの名無しさん
2007/09/23(日) 15:11:59int main(void)
{
int num;
do {
printf("非負の整数:");
scanf("%d",&num);
if (num<0)
puts("その数は負の数です。");
} while (num<0);
printf("その数を逆から読むと、");
do {
printf("%d",num%10);
num=num/10;
} while (num>0);
puts("です。");
return (0);
}
0101デフォルトの名無しさん
2007/09/23(日) 15:12:12>>96のforをdowhileに直した方がいいね
0102デフォルトの名無しさん
2007/09/23(日) 15:14:21ちょwwwそういう意味の問題だったのかwww
0103デフォルトの名無しさん
2007/09/23(日) 15:16:520104デフォルトの名無しさん
2007/09/23(日) 15:17:000105デフォルトの名無しさん
2007/09/23(日) 15:18:300106デフォルトの名無しさん
2007/09/23(日) 15:20:04電卓っぽく。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4952.txt
実行例書いてくれれば、あとで直す。
0107デフォルトの名無しさん
2007/09/23(日) 16:22:051+1=
と打っても真っ暗だよ。
0108デフォルトの名無しさん
2007/09/23(日) 16:31:21そりゃあんたの「お先」だろ。
0109デフォルトの名無しさん
2007/09/23(日) 18:00:54[2] 問題文(含コード&リンク):
エディットコントロールにアドレスを入れてボタンを押すと、
そのページを表示するプログラムを作れ。
[3] 環境
[3.1] OS: WinXP
[3.2] Borland C++ 5.5
[3.3] C言語
[4] 期限:9月25日まで
[5] その他の制限: 要は超簡易ブラウザです。
オリジナリティをつけろとの事なので、表示しているページに何か変化があった場合、
(例えばリンクの移動だとか、ボタンクリックだとか、フォームに入力だとか)、
エディットコントロールに変化がありましたって表示するような感じの機能をつけてもらえると幸いです。
0110デフォルトの名無しさん
2007/09/23(日) 18:03:15どこの大学?
0111デフォルトの名無しさん
2007/09/23(日) 18:05:450112デフォルトの名無しさん
2007/09/23(日) 18:12:25GUI とネットワーク接続に関するライブラリは何を使ってよいの?
0113デフォルトの名無しさん
2007/09/23(日) 18:17:21特に指定はないです。むしろ大事なのはUIなんです。
使用者に使いやすい設計を心がける事って言われたんですが・・・。
それにしても1から作れって鬼杉。ある程度の機能もったブラウザをいじれって言うならまだしも。
で、あたふたしてると期限が近づいてきて俺涙目みたいな・・・
0114デフォルトの名無しさん
2007/09/23(日) 18:21:240115デフォルトの名無しさん
2007/09/23(日) 18:22:01有料のライブラリとか使ったらあんたが困るでしょ?
講義で過去に作ったプログラムなどがあったらそれを
アップしてもらうのが話が早くて楽なんだけどな。
0116デフォルトの名無しさん
2007/09/23(日) 18:22:440117デフォルトの名無しさん
2007/09/23(日) 18:23:310118デフォルトの名無しさん
2007/09/23(日) 18:26:370119デフォルトの名無しさん
2007/09/23(日) 18:27:470120デフォルトの名無しさん
2007/09/23(日) 18:27:550121デフォルトの名無しさん
2007/09/23(日) 18:30:06なるほど、有料は確かに困ります。
講義で用意されたものは何もないのですが・・・。
一応自分でも色々と調べてみたのですが、IEコンポーネントを使うのが楽そうな感じでしたね。
ただ、VC++とかばかりでなかなか。Borlandじゃコンパイル出来なかったりしてもうワケワカラン状態です。
コンパイラはBorlandと書きましたが、実はこれは指定されてるわけではないです。学校のパソコンにはVisual Studio .netが
入ってますが、家にはBorlandを入れてます。さすがに有料はキツイって事で・・・。でも家でコーディングできないと不便なのでBorland。
0122デフォルトの名無しさん
2007/09/23(日) 18:32:01精神的な話だから、実際には泣いてないんだぜ。
0123デフォルトの名無しさん
2007/09/23(日) 18:32:040124デフォルトの名無しさん
2007/09/23(日) 18:32:180125109
2007/09/23(日) 18:34:54一つのコンパイラで全部やろうって考え自体おかしいんですかね?
ノートなのであまり重たいのは入れたくないなと思ってBorlandにしてみました。
その後Turbo C++入れて、一気に重くなってげんなりしてます。
というか、コンパイラの違いってなんなんですか・・・どれがいいとかあるんですか?って質問はスレ違いですね
0126デフォルトの名無しさん
2007/09/23(日) 18:35:260127デフォルトの名無しさん
2007/09/23(日) 18:35:57スレ違いって分かってるんだったら、書き込むなよ。
0128デフォルトの名無しさん
2007/09/23(日) 18:36:060129109
2007/09/23(日) 18:36:51涙目です。
0130デフォルトの名無しさん
2007/09/23(日) 18:36:55こいつアホだ。実際に泣いてるかどうかではなく、
そんなことを書き込むことを皆、からかってるのに。
0131デフォルトの名無しさん
2007/09/23(日) 18:48:08> そのページを表示する
って、一般的なサイト全て?
単純なボタンやフォーム程度なら自分でHTML解析してできるだろうけど、
そうじゃないならIEコンポやGecko使うしかないと思うよ
0132デフォルトの名無しさん
2007/09/23(日) 18:49:390133デフォルトの名無しさん
2007/09/23(日) 19:02:33MFC使えないのかな
0134109
2007/09/23(日) 19:27:49>>131-133
オリジナリティはもう少し練りたいと思います。ので、最低限の機能を持ったブラウザの実装をお願いします。
その後のUIやオリジナル機能は自分で頑張ってみます。とはいえ、時間はあまり残ってないのですが・・・。
IEコンポーネント使用で、コンパイラはBorlandC++5.5で出来る範囲でお願いします。
有料なものを使わなければ特に制限はないです。やりやすい形でお願いします。
もしBorlandじゃどうしてもダメというなら、私がVCを入れます。
0135デフォルトの名無しさん
2007/09/23(日) 19:29:00最初にまとめて書け。
0137デフォルトの名無しさん
2007/09/23(日) 19:35:020138デフォルトの名無しさん
2007/09/23(日) 19:38:13最初からやり直せ。
0139デフォルトの名無しさん
2007/09/23(日) 19:38:240140デフォルトの名無しさん
2007/09/23(日) 19:38:45VC入れて、IEコンポでぐぐってサンプル拾ってコンパイル。
ここまではできるだろう。
0141デフォルトの名無しさん
2007/09/23(日) 19:40:07[1] 授業単元:GUIプログラミング
[2] 問題文(含コード&リンク):
エディットコントロールにアドレスを入れてボタンを押すと、
そのページを表示するプログラムを作れ。
[3] 環境
[3.1] OS: WinXP
[3.2] Borland C++ 5.5
[3.3] C言語
[4] 期限:9月25日まで
[5] その他の制限: IEコンポーネントを使用。有料のものは使用しない事。
0142デフォルトの名無しさん
2007/09/23(日) 19:44:00VC++でIEコンポーネントのサンプルを置いてる良さそうなサイトはGoogleのトップに出てきたのですが、
Borlandだとインクルードファイルがなくて、コンパイル通らないですね。VC入れろと言われたら終わりですけど。
むしろそっちの方が幸せになれるのかな・・・
0143デフォルトの名無しさん
2007/09/23(日) 19:47:09依頼しなおしたのなら、黙ってろ。
0144デフォルトの名無しさん
2007/09/23(日) 19:50:25014516
2007/09/23(日) 19:58:521+1=
2 ←(計算毎に答えは出る)
3+3=
6
M+ ←(直前の計算結果がメモリに。この場合6)
MR+1=
7
end:(計算終了)
といった具合がベストだと思うのですが。
(問題には書いていなかったので、質問発言時に書けませんでした。
これも先生が望んでいる解答結果とはわかりませんが…)
度々申し訳ないのですが、よろしくお願いします。
0146デフォルトの名無しさん
2007/09/23(日) 20:16:02[2] 問題文(含コード&リンク):
キーボードからn+m,n-m,n*m,n/mを入力し、演算結果を出力せよ。
結果出力後は「再入力:」と出力し、再度計算できるように
ループさせる。
「off:」と入力することで計算を終了させる。
演算結果例:
5+6
11
再入力:
6*7
42
再入力:
off:
(計算終了)
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C言語)
[4] 期限: [2007年9月23日まで]
[5] その他の制限:特になし
0147デフォルトの名無しさん
2007/09/23(日) 20:19:36その形式以外の入力はないと仮定していいのか?
0148デフォルトの名無しさん
2007/09/23(日) 21:04:40>>16と共同で頑張れ
0149デフォルトの名無しさん
2007/09/23(日) 21:18:500150デフォルトの名無しさん
2007/09/23(日) 22:02:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4954.txt
0152デフォルトの名無しさん
2007/09/23(日) 22:11:32みんなかどうかは怪しいけどなw
0153146
2007/09/23(日) 23:19:02そうです。命令はn+m,n-m,n*m,n/m4つのみです。
>>149
桁数は指定はありませんでした。
先ほど書き忘れてしまったのですが、「n,mは実数」
という条件がありました。
0154デフォルトの名無しさん
2007/09/23(日) 23:25:01■ このスレッドは過去ログ倉庫に格納されています