[表示 : 全て 最新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/

247 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:07:40 ]
>>243
-lmつけると幸せになれる

248 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:08:14 ]

>>225
組むのめんどいからヒントだけあげるよ

現在のCPU能力では「+」と「-」しか演算が出来ない。
「*」「/」はただの演算方法でしかない
例 a*bの場合   int i; for(i=0;i=b;i){a++}




249 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:09:34 ]
>>248
ちょw

250 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:12:39 ]
>>205
何が分からないか分からないんだが・・・・・・・
まんまじゃん




251 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:15:31 ]
>>250
それを言うなwそれ言っちゃこのスレの存在価値がw

252 名前:149 [2007/07/18(水) 13:37:55 ]
>>247さん
幸せになれましたが、どういう原理なのでしょう?
質問ばっかですいません

書き忘れましたが、153さん・247さんありがとうです

253 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:41:52 ]
>>252
mという数学ライブラリをリンクしたのです。

254 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:42:09 ]
>>248
兄さんそれ掛け算になってません。
forの条件式もアレです。意図は伝わるけど。

255 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:46:27 ]
a*bの場合 int i,n; for(i=0;i<b;i++){n+=a;}
暇ですね。



256 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:47:11 ]
a*bの場合 int i,n=0; for(i=0;i<b;i++){n+=a;}

257 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:48:03 ]
>>252
243のエラーメッセージはソースの中に存在しない関数(sqrtとacos)があって
プログラムを作れないというリンカのエラー。
>>253の言うとおり数学ライブラリをリンク指定すれば
その中に関数sqrtとacosという関数があるからリンクが通る。

258 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:52:06 ]
>>248

259 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:02:41 ]
馬鹿は彫っとけ

260 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:04:45 ]
やらないか

261 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:16:34 ]
>>175
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4662.c

入力は各行に(別に各行でなくてもいいけど)
x1 y1 Z1 x2 y2 Z2 x3 y3 Z3 r g b
の順で数値を並べたファイル.
(例)
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255

出力先もコンソールにしてるが,変更したければmain冒頭の
FILE *out = stdout;
を書き換えればいい.

画像はLinuxのxvで確認した.ppm形式はいくつか種類があるようなので問題あるかも.
(注:CGは昔かじった程度なのでzバッファについて根本的な勘違いをしてるかもしれない)

262 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:30:47 ]
>>205
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4663.txt
問題2でstrcpy()(文字列のコピー)の替わりにstrcat(文字列の連結)を使った。
strcpy()を使えと言われても俺の能力じゃムリポ

263 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:33:09 ]
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)

264 名前:262 mailto:sage [2007/07/18(水) 14:37:06 ]
262の駄文は忘れてくれ
問題2の修正版
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4664.c

265 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:08:56 ]
>>246
色々穴だらけだが
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4666.txt




266 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:18:43 ]
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。

267 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:19:45 ]
サイズの方が重要かも。

268 名前:265 mailto:sage [2007/07/18(水) 15:24:25 ]
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ

269 名前:ヒープ [2007/07/18(水) 15:36:58 ]
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。

270 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 17:26:12 ]
>>177
#include <stdio.h>

int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}


271 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 18:07:53 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。

272 名前:175 [2007/07/18(水) 19:53:23 ]
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!



273 名前:デフォルトの名無しさん [2007/07/18(水) 20:09:44 ]
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

ギリギリまで頑張ったのですができませんでした。わかる方お願いします

274 名前:デフォルトの名無しさん [2007/07/18(水) 20:12:21 ]
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし

275 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:13:01 ]
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。



276 名前:スモーク [2007/07/18(水) 20:17:27 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。

277 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:20:53 ]
釣りか?

278 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:21:21 ]
除算の結果の小数点以下は?

279 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:25:19 ]
>>271
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4667.c

280 名前:デフォルトの名無しさん [2007/07/18(水) 20:27:06 ]
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません

よろしくおねがいします

281 名前:22 mailto:sage [2007/07/18(水) 20:37:28 ]
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4668.txt
ソース:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4669.txt

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし

どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。

282 名前:スモーク [2007/07/18(水) 20:41:23 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。


283 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:42:52 ]
ここまでくると、嫌がらせとしか思えないな

284 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:43:30 ]
なんか追記の書き方がムカツクのは俺の心が狭いからかな

285 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:07:30 ]
>>280
汚くて&間違ってたらスマソ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4670.c



286 名前:285 mailto:sage [2007/07/18(水) 21:11:36 ]
あー、a=0の時の処理書いてないわ
適当に追加してね

287 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:26:20 ]
>>284
俺も。>>285はキリストかあるいはMだと思う。

288 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:39:00 ]
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}


289 名前:alsk [2007/07/18(水) 21:56:33 ]
健康についての英語のエッセイを500〜600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!

290 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:57:11 ]
>>289
スレ違いすぎ。

291 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:00:17 ]
(´-`).。oO(英語で500〜600"字"ってかなり少なくないか?)

292 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:03:32 ]
(´-`).。oO("語"の間違いだろ・・・常考)

293 名前:デフォルトの名無しさん [2007/07/18(水) 22:04:01 ]
釣りか単なるマルチだろ…

294 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:40:52 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる

+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高


#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;

if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}


295 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:42:19 ]
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし




296 名前:デフォルトの名無しさん [2007/07/18(水) 23:13:01 ]
>>223
お願いします

297 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:16:30 ]
>>279
回答ありがとうございます。
とてもみやすかったです^^

298 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:24:06 ]
>>297
readfile関数内の int j はいらないから消しといて><

299 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:12:58 ]
>>273

#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}

300 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:33:57 ]
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4671.txt
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26

どなたかご教授お願いしますorz




301 名前:273 [2007/07/19(木) 00:47:41 ]
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。

302 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:51:41 ]
>>296
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4672.txt

303 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:58:09 ]
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?

304 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:58:15 ]
>300
char x;
scanf("%s", &x);
ってなんだ?

305 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:02:05 ]
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。




306 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:11:28 ]
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです


307 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:16:07 ]
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け

308 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:19:00 ]
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):sakuratan.ddo.jp/uploader/source/date44998.txt
                  return ????部分が分かりません。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)WinXP
 [3.2] コンパイラ名とバージョン:VC6
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし

よろしくおねがいしますorz

309 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:24:12 ]
なんでいちいち外部に上げるかね

310 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:24:47 ]
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ


311 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:27:19 ]
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?

問題文がないしわけがわからんよ


312 名前:308 mailto:sage [2007/07/19(木) 01:28:11 ]
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。

313 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:29:36 ]
は?
問題文がないなら宿題じゃねえじゃん

314 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:30:00 ]
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}


315 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:31:47 ]
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し

もうさっぱりです。お願いします。



316 名前:308 mailto:sage [2007/07/19(木) 01:32:04 ]
>>313
「ここ埋めてきて」と…

317 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:33:24 ]
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・

もうだめぽ

318 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:46:04 ]
>>315
> 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210

この例だったら、1 〜 n じゃなくて 0 〜 n-1 じゃないのか?


319 名前:300 mailto:sage [2007/07/19(木) 01:46:55 ]
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・


320 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:47:47 ]
>>315
n桁ってのは上限はないのか?

321 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:48:52 ]
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句

322 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 01:50:39 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん

323 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:53:41 ]
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。

>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。

324 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:58:48 ]
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
 sp--;
 printf("%c", Stack[sp]);
}
printf("\n");
break;


325 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:01:00 ]
>>322
最初は線形リストになにも保存されていないと思われるが、どうする?



326 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 02:05:05 ]
たぶん、いくつかの素数を入れた素数テーブルを作っておくんだと思いますが、、、
よくわからないです。
↓授業で使った線形プログラム
sakuratan.ddo.jp/uploader/source/date45003.txt



327 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:07:59 ]
何?
さくらアップローダーが流行ってるの?

328 名前:300 mailto:sage [2007/07/19(木) 02:10:22 ]
きったないプログラムだけどなんとか動くようになりました。。。
あとは修正頑張ってみます。
ありがとうございました。

329 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:12:17 ]
>>323
#include <stdio.h>
#define N 6
int nextperm(int p[], int n){
int i, j, t;
i = n - 1;
p[0] = 0;
while (p[i] >= p[i + 1]) i--;
if (i == 0) return 0;
j = n;
while (p[i] >= p[j]) j--;
t = p[i]; p[i] = p[j]; p[j] = t;
i++; j = n;
while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; }
return 1;
}

int main(){
int i, n, p[N + 1];
do{ scanf("%d", &n); }while(n < 1 || N < n);
for (i = 1; i <= n; i++) p[i] = i;
do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n));
return 0;
}
ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ

330 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:23:00 ]
>>300
がんばれ

331 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 03:01:10 ]
自分で書いたソースを晒して質問するのって、それなりに大変だよな。
宿題丸投げして、回答があっても放置される事が多いけど。

332 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 03:13:35 ]
>326 まちがってました。授業でやったのは
sakuratan.ddo.jp/uploader/source/date45007.txt
でした。さっきのは自分でぐちゃぐちゃにしたやつでした。

333 名前:306 mailto:sage [2007/07/19(木) 07:44:56 ]
今日、19日のうちにおねがいします

334 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:53:07 ]
>>329
まさにそのまんまがあったんですね…。
ありがとうがざいます。

335 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:57:12 ]
>>333
もうで照るだろ



336 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 09:57:38 ]
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
a,b,c,d,eに1〜5の整数を一つずつ入れて
a + b - c * d / e
の結果の最大になる値、最小となる値、そのときのa,b,c,d,eを求めよ。
(算数的に計算するのではなく全パターンをためすこと。)
また、結果は何通りあるかも求めよ。

[3] 環境
 [3.1] OS: (/Linux/)
 [3.2] コンパイラ名とバージョン: (gcc 2.95-2)
 [3.3] 言語: C
[4] 期限: 2007年07月20日17:40
[5] その他の制限: 無し

337 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 11:08:25 ]
[1] プログラミング
[2] 問題 配列 int a[12]を用意し、a[i] = I ( i=0,1,2,…,10),a[11] = a[0]+a[1]+a[2]+…[10]とせよ
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C ++
[4]本日まで

問題の意味がよく分からないかもしれませんがよろしくお願いします。

338 名前:デフォルトの名無しさん [2007/07/19(木) 11:56:02 ]
>>336
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4673.txt

339 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:12:46 ]
>>338
ありがとうございます。
ところで、count が120になったのですが、
a + b - c * d / e
のaとbまたはcとdを入れ替えると同じになると思うので
値は5*4*3*2*1通り未満になりませんか?
よくわからないので、もうすこしがんばってみます。

340 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:17:01 ]
>>339
同値になる入れ換えは考慮してない。
必要かな?

341 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:23:35 ]
>>340
どちらかといえばあったほうがいいです。

342 名前:デフォルトの名無しさん [2007/07/19(木) 12:25:21 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ポインタの利用
英文字の単語の出題をカウントしなさい
英文字に含まれる単語数は10以下とする
ポインタ配列を使用する
char english[] = "My name is Taro.Your name is Hanako.";

実行画面
My:1
name:2
is:2
Taro:1
Your:1
Hanako:1

343 名前:デフォルトの名無しさん [2007/07/19(木) 12:28:13 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ユーザ関数の作成
問題1:2値の最大を求めるユーザ関数を作成しなさい
プロトタイプ宣言:int Max(int dt1,int dt2);
実行画面
数値1を入力==>10
数値2を入力==>15

大きい値:15

344 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:50:24 ]
>>343
#include <stdio.h>

int Max(int dt1,int dt2);

int main(void) {
int a,b,c;

printf("数値1を入力==>");
scanf("%d",&a);
printf("数値2を入力==>");
scanf("%d",&b);

printf("大きい値:%d",Max(a,b));

return 0;
}


int Max(int dt1,int dt2) {
return dt1>dt2 ? dt1 : dt2;
}


345 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:04:30 ]
>>341
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4674.txt
これでどうかな



346 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:25:20 ]
>>345
たとえば
1 +2 -3 *4/ 5
1と2の入れ換えで結果が重複して120の半分の60通りになり
3と4の入れ換えで結果が重複して60の半分の30通りになりそうなので
あっていると思います。
ありがとうございました。
ちなみにこれは算数オリンピックの第一問です。

347 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:31:01 ]
>>346
aとb、cとdの値に順序性を持たせた。
宿題ではないのか?






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

前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