C/C++の宿題を片付け ..
369:デフォルトの名無しさん
08/06/22 22:51:49
>>366
そのままではできないが、演算子多重定義すればできる。
370:デフォルトの名無しさん
08/06/22 22:52:59
>>368
ああそうか。てっきり>>350で
>C++だけど参考にでもしてください。
と書いてあったからcppしてたわ。
<time>も通らないので<ctime>にしてたしおかしいわと
思ってたんだ
371:デフォルトの名無しさん
08/06/22 22:53:35
direction = static_cast<Month>(direction+1);
でどうだ!!?
ということでごめんなさい。
372:デフォルトの名無しさん
08/06/22 22:55:04
>>370
いやcppだけどね。
timeは通ってるけど
たしかにctimeだわな('A`)
スマソ
373:350
08/06/22 22:56:14
俺のレス
>>361
>>363
>>365
>>366
>>371
>>372
374:デフォルトの名無しさん
08/06/22 22:56:27
要するにC++モードでもenumに++演算子を適用できる
コンパイラと弾くコンパイラがあるわけだ
規格書ではどうなってるのかな
375:デフォルトの名無しさん
08/06/22 22:57:09
ウォッチでは通るのに
376:350
08/06/22 23:01:35
まあ普通に考えたら
enum{
A=1,
B=10,
C=100,
D=1000
};
とかがあることもあるわけだから、やっぱり++は許されないのかな
377:179
08/06/22 23:23:16
>>350
返事遅れてごめんなさい・・・
自分C++全く知らないのですが、やっていただいたことに関しては
本当に感謝してます!
聞いてばかりで申し訳ないのですが、
このソースをCに書き換えるにはどのようにすればよいのでしょうか?
ちなみに調べてみたんですが5x5は解の個数が304個みたいです。
378:デフォルトの名無しさん
08/06/23 00:21:32
全部関数にしたらどう?
379:350
08/06/23 00:22:56
>>377
304><
感動><
変数がめんどくさいかも・・・
全部staticでいいならいいけど・・・
380:デフォルトの名無しさん
08/06/23 00:26:52
Cってことはfor内での変数宣言とかも直さなきゃならんか
381:デフォルトの名無しさん
08/06/23 00:37:11
URLリンク(www.kameda-lab.org)
382: ◆15lIZBDwz6
08/06/23 00:37:22
[1] 授業単元:プログラミングU
[2] 問題文(含コード&リンク):
5 つの文字列を格納できる二次元配列 str を定義し,キーボードから5つの文字列を入力する.
その後,配列 str と文字列数 num (この例では,5)を引数として受け取り,
最長の文字列が格納されている配列の添え字(行の要素番号)
を返す関数 int str_maxlen(const char str[][100], int num)を定義し,動作を確認するプログラムを作成せよ.
但し,同じ長さの文字列が存在する場合は,最初に現れる文字列を優先すること.
また,文字列長はライブラリ関数は利用せずに求めること。
main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限:2008年6月24日
[5] その他の制限: 習った範囲は文字列まで。その他の制限は問題文参照
自分で解いていたらこの問題だけ上手くいかないのでお願いします
383:350
08/06/23 00:38:42
>>377
書き換えてみた。
static変数使いまくりでひどいけど
ちなみに100行目に入れる値を変えればいろいろ変化します。
Bには非対応ですね。
自分で盤を初期化すれば多分できるのかな・・・
384:350
08/06/23 00:39:13
>>383
URLリンク(kansai2channeler.hp.infoseek.co.jp)
大事なもん貼り忘れた
385:デフォルトの名無しさん
08/06/23 00:55:26
>>382
#include <stdio.h>
int str_maxlen(char str[][100], int num) {
int i, j, max = 0, max_index = 0;
for(i=0; i<num; i++) {
for(j=0; str[i][j]; j++);
if(max < j) max = j, max_index = i;
}
return max_index;
}
int main(void)
{
char str[5][100];
int i;
for(i=0; i<5; i++) scanf("%s", str[i]);
printf("最長の文字列は%s", str[str_maxlen(str, 5)]);
return 0;
}
386:デフォルトの名無しさん
08/06/23 00:56:09
>>382
#include<stdio.h>
str_maxlen(const char str[][100], int num);
int main( void )
{
char str[ 5 ][ 100 ];
int i = 0;
int length = 0;
for( i = 0; i < 5; i++ ){
gets( str[ i ] );
}
length = str_maxlen( str, i );
printf( "%d", length);
return( 0 );
}
int str_maxlen(const char str[][100], int num)
{
int maxlen=0;
int i = 0, k = 0;
for( i = 0; i < num; i++ ){
for( k = 0; str[ i ][ k ] != '\0'; k++ ){}
if( k > maxlen ){
maxlen = k;
}
}
return( maxlen );
}
387:デフォルトの名無しさん
08/06/23 00:57:38
今だっ!おまいらうpロダ(ry
388:386
08/06/23 00:59:01
>main関数内で,str_maxlen 関数の返却値を元に文字列を出力することで,動作確認すること.
これやってないわ
スマソ
389:デフォルトの名無しさん
08/06/23 01:00:51
返すのは長さじゃなくて添え字
390:デフォルトの名無しさん
08/06/23 01:02:19
>>389
まぁ結局は添え字だが、
返すべきはkじゃなくてiだわな
391:デフォルトの名無しさん
08/06/23 01:05:41
>まぁ結局は添え字だが、
何を言ってるんだ?
392:377
08/06/23 01:07:21
>>383、>>384
書き換えまでやってくださったとは・・・!
本当何から何まですみません。
ありがとうございます!(>_<)
393:デフォルトの名無しさん
08/06/23 01:14:32
>>350 コンパイルは通ったけど、解が見つからなかったので報告。
// direction++;
direction = static_cast<DIRECTION>(direction+1);
/* switch(direction){
case NOTYET:direction = START; break;
case START: direction = RU; break;
case RU: direction = RD; break;
case RD: direction = DR; break;
case DR: direction = DL; break;
case DL: direction = LD; break;
case LD: direction = LU; break;
case LU: direction = UL; break;
case UL: direction = UR; break;
case UR: direction = END; break;
case END: direction = NOTYET; break;
}
*/
394:デフォルトの名無しさん
08/06/23 01:17:27
6x6の盤でナイトの旅を始めます。
解析中...
正しく解析できました。
1 30 27 18 3 10
26 17 2 11 28 19
31 36 29 20 9 4
16 25 8 35 12 21
7 32 23 14 5 34
24 15 6 33 22 13
評価回数は59079349回です。
要した時間は0.028秒です。
395:393
08/06/23 01:21:25
//盤面のサイズ。
#define SIZE 5
です。遅れました Express 2005 + SDK
396:デフォルトの名無しさん
08/06/23 01:24:45
以下のようなプログラミングはどのようにすればよいのでしょうか?
「組み合わせ」を求める数学の公式にコンビネーションがあります。このコンビネーションのプログラミングを教えてください!
1.nとrをscanf()で読み、nCrの値を計算して表示させます。
条件として、nとrの値はマイナスでなく、またゼロでなく、さらにここではn<=10であることを確認させて、正しい数値を入力させる。もし誤った数値を入力したら「入力ミスです」と表示させる。
2.0!=1も扱えるようにすることを忘れない。
397:デフォルトの名無しさん
08/06/23 01:25:06
統計計算のプログラミングの例を教えてください。
最大20個までの実数値をscanf()で、配列に読み、呼んだデータの、平均値、分散、最大値、最小値を計算して表示するプログラムを教えてください!
条件として、データは-999.0から999.0の範囲とし、入力終了の合図として1000.0より大きい値のデータを入力すると、その数値は入力されずに入力作業を終了する。
平均値と分散については、
データ数をn、各データをXi(i=1〜n)とすると、(ΣXi)/n (データの個数で割ったもの)が平均値
(Σ(Xi-(データの相加平均))^2)/nが分散であるとする。
よろしくお願いします!!
398:デフォルトの名無しさん
08/06/23 01:26:18
5x5の盤でナイトの旅を始めます。
解析中...
解析できませんでした。
評価回数は15615711回です。
要した時間は0.07秒です。
399:デフォルトの名無しさん
08/06/23 01:26:43
>>391
maxlen=k;
return maxlen;
はどう見ても添え字を返してるだろ
400:350
08/06/23 01:30:24
>>395
マスの数が奇数の場合、周遊は解なし
>>398
お前のPCのスペックが知りたいわw
401:デフォルトの名無しさん
08/06/23 01:32:32
>>396
つ パスカルの三角形
>>397
探せば見つかるようなありきたりの課題じゃ〜・・・
402:デフォルトの名無しさん
08/06/23 01:33:46
>>397
#include <stdio.h>
int main(void){
double value, sum=0, sum2=0, average, variance, maximum=0, minimum=0;
int n;
for(n=0;n<20;n++){
if(scanf("%lf", &value)!=1) break;
if(value>=1000.0) break;
sum+=value;
sum2+=value*value;
if(n==0 || maximum<value) maximum=value;
if(n==0 || minimum>value) minimum=value;
}
if(n==0) return 1;
average=sum/n;
variance=(sum2-sum*average)/n;
printf("平均値 %f\n分散 %f\n最大値 %f\n最小値 %f\n", average, variance, maximum, minimum);
return 0;
}
403:デフォルトの名無しさん
08/06/23 01:34:44
>>399
アホか
添え字って言っても
>最長の文字列が格納されている配列の添え字(行の要素番号)
だぞ。
kは文字列の長さにしかなんねーよ
404: ◆15lIZBDwz6
08/06/23 01:35:35
>>385-386
ありがとうございます。
それにしても…早いw
次の問題解き終わってきてみたら20分後にはもうできてるし…
405:デフォルトの名無しさん
08/06/23 01:39:37
>>399
>>390
406:デフォルトの名無しさん
08/06/23 01:39:47
>>396
> 2.0!=1も扱えるようにすることを忘れない。
階乗を求めるやり方か・・・
407:デフォルトの名無しさん
08/06/23 01:49:24
>>396
URLリンク(kansai2channeler.hp.infoseek.co.jp)
408:デフォルトの名無しさん
08/06/23 01:50:59
>>394
最近のコンピュータははやいな!
409:デフォルトの名無しさん
08/06/23 02:01:50
>>396
あ〜、入力エラーの表示は適当に追加しておいて。
あと、nもrも0のときでも考慮されてる。
0個の中から9個のものを選ぶという事象も1つの事柄として扱っているし
n個の中から0個のものを選ぶ、すなわち何も選ばないということも
1通りの事象として扱われているから。
410:デフォルトの名無しさん
08/06/23 02:02:27
×0個の中から9個のものを選ぶという
○0個の中から0個のものを選ぶという
411:デフォルトの名無しさん
08/06/23 02:04:32
>>397
#include <stdio.h>
#include <math.h>
int main(void)
{
double d[20], max = -1000.0, min = 1000.0, ave = 0, var = 0;
int i, n;
for(i=0; i<20; i++) {
scanf("%lf", d + i);
if(fabs(d[i]) > 999.0) break;
if(max < d[i]) max = d[i];
if(min > d[i]) min = d[i];
ave += d[i];
var += d[i] * d[i];
}
if(!i) return 0;
ave /= i;
var = var / i - ave * ave;
printf("最大値%f\n最小値%f\n平均%f\n分散%f\n", max, min, ave, var);
return 0;
}
412:395
08/06/23 02:48:26
>>400
有り難う御座います、見逃していました。
>ちなみに100行目に入れる値を変えればいろいろ変化します。
所で、よく見るとCのほう(float)キャストが無いので、経過時間が0.000秒でした。
413:デフォルトの名無しさん
08/06/23 03:04:20
軽作業用に使っている AthlonXP 2800+ 2GHzじゃ2.78秒
C2D E7200でも試してみようかのぅ
414: ◆dH2ZMCPPns
08/06/23 09:34:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限: 6月23日 14時まで
よろしくお願いします。二問あります
415:デフォルトの名無しさん
08/06/23 10:06:26
[1]CとC++
[2]テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択肢を含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
#include"stdlib.h"
system("CLS");
この時に画面すべて消せる
416:デフォルトの名無しさん
08/06/23 10:11:46
>>415
サウンドはどうやって鳴らすの?
417:デフォルトの名無しさん
08/06/23 10:46:04
あいまいな問題にはまともに回答する必要無し
418:415
08/06/23 10:59:11
サウンドはほっといていいらしいです。
419:デフォルトの名無しさん
08/06/23 11:04:36
それただのノベル。
420:デフォルトの名無しさん
08/06/23 11:11:11
プログラム部分なら作れるけど、ノベルはどうすんだよw
421:デフォルトの名無しさん
08/06/23 11:21:44
サウンドノベルみたいに選択肢で分岐するテキストアドベンチャーを作れば良いと理解した。
まってろ、今作ってる。
422:sage
08/06/23 11:42:17
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
5 つの数を double 型の配列 nums にキーボードから読み込んで,
それらの 3乗の和を出力するプログラムを作成せよ。
3 乗の和を計算する部分は,関数 double cubesum(double vc[], int no) とすること。
ここで,配列 vc はデータの格納された配列を,
no は入力したデータの個数を表す。
main 関数では個数の 5 は定数として扱って構わないが,
関数 cubesum では個数は引数で読み込むものとする。
つまり何個のデータにでも使える汎用性のあるものとして関数を定義する。
3 乗の和の計算は,main からその関数を呼び出して行う。
ヒント:関数の中の3乗和の計算には繰り返しの処理が必要となる。
for 文を使えば簡単に書ける。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年6月24日
[5] その他の制限:特になし
423:デフォルトの名無しさん
08/06/23 11:47:31
#include <stdio.h>
double cubesum(double vc[], int no)
{
double sum = 0.0;
int i;
for(i=0; i<no; i++) sum += vc[i] * vc[i] * vc[i];
return sum;
}
int main(void)
{
double nums[5];
int i;
for(i=0; i<5; i++) scanf("%lf", nums + i);
printf("%f", cubesum(nums, 5));
return 0;
}
424:デフォルトの名無しさん
08/06/23 12:12:47
>>415
マルチでもいいけどさ、環境と期限書こうぜ
425:415
08/06/23 12:32:18
環境はvista
言語はC++
起源ははっきりとは言ってなかったが夏休み前だと思います。
426:デフォルトの名無しさん
08/06/23 12:40:32
お前の夏休みなんか知らねーよww
427:350
08/06/23 12:43:59
>>412
動作に現れる部分を修正するのは大いに結構だが
現れない部分の修正しないで提出すると痛い目見るよ
例えばラインコメント(//)とか//コンストラクタとか//デストラクタとか
アルゴリズムだとかstaticばかりなのかとか
428:デフォルトの名無しさん
08/06/23 13:00:16
421だが、飽きた。
他の人に任せた。
429:デフォルトの名無しさん
08/06/23 13:00:43
微妙ですがage
430:425
08/06/23 13:26:52
期限だろ。字間違うなよ
431:デフォルトの名無しさん
08/06/23 13:29:51
夏休みの宿題になっちまうなw
432:デフォルトの名無しさん
08/06/23 14:03:54
[1] 授業単元:画像処理 [2] 環境 [2.1] OS:Linux [2.2] 言語:C言語
#include <stdio.h>
#include <stdlib.h>
int main( int argc , char *argv[] )
{ unsigned short int ipi[256][32];
unsigned short int ipo[256][32];
FILE *fpi,*fpo;
int i,j;
if((fpi=fopen( "logo.gray" ,"rb")) == NULL) {
printf("file open error\n");
exit(-1); }
fread(ipi[0],sizeof(unsigned short int),256*32,fpi);
fclose(fpi);
for (j=0 ;j <256 ; j++){
for (i=0 ;i <32 ; i++){
if(127>ipi[j][i]){
ipo[j][i]=0; }
else{
ipo[j][i]=255; }
}
}
if((fpo=fopen( argv[2] ,"wb")) == NULL) {
printf("file open error\n");
exit(-1); }
fwrite(ipo[0],sizeof(unsigned short int),256*32,fpo);
fclose(fpo);
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
433:432
08/06/23 14:07:01
return 0;
}最後にこれを忘れてました。分かりにくくてすみませんが問題はこれです。
logo-bin.gray の境界点を抽出した画像を作成するプログラムを作成せよ。
434:142
08/06/23 14:27:47
>>142ですがどうかよろしくお願いします。
435:デフォルトの名無しさん
08/06/23 15:02:30
>>415何気に難しいな。セリフしか作れん
436:デフォルトの名無しさん
08/06/23 15:11:15
[1] 授業単元:
C
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日13:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
お願いします。
437:デフォルトの名無しさん
08/06/23 15:14:09
>>435
バッチファイルで書いた方が早い気がするw
438:デフォルトの名無しさん
08/06/23 15:23:43
/*未コンパイル 動作確認無し*/
#define N 7
#include <stdio.h>
struct{int linkable[3];char *prompt;
}scene[N]={
{1,3,5," [彼女]ねぇ挿れて"},
{0,2,4,"[貴方]麻呂のクソースくらえ〜"},
{1,3,5,"[彼女]もっと優しくぅ〜"},
{0,2,4,"[貴方]う〜きつい"},
{1,3,5,"[彼女]う〜固い"},
{2,4,6,"[貴方]出、出る〜"},
{7,7,7,"[彼女]駄目〜出しちゃ.汚れちゃう"},
}
int main(void){
int i=0,j;
wihle( i<N)[
printf("%s¥n",scene[i].prompt);
do{
printf("Select which?[1,2,3]?");scanf( "%d¥n",&j);
}while((j<1)&&(j>3));
i=scene[i].linkable[j];
}
return 0;
}
439:デフォルトの名無しさん
08/06/23 15:48:45
>>436
くそーすですが
URLリンク(kansai2channeler.hp.infoseek.co.jp)
440:デフォルトの名無しさん
08/06/23 15:53:19
>>439
すまん、関数の名前間違ってたので修正
URLリンク(kansai2channeler.hp.infoseek.co.jp)
441:デフォルトの名無しさん
08/06/23 15:54:10
>>439
微妙ですが我慢しておきます。
442:デフォルトの名無しさん
08/06/23 16:01:44
>>441
の優しさに世界が泣いた
443:デフォルトの名無しさん
08/06/23 16:11:09
こんなの書くような子じゃなかったんだけど...
444:デフォルトの名無しさん
08/06/23 16:13:59
トリ付けてないからなりすましの可能性も…
更に言うとこれも含めて自演の可能性もあるなww
445:デフォルトの名無しさん
08/06/23 16:15:39
1以上の正の整数の値をキーボードから入力し、1からNまでの和を求める
プログラムをC言語で作成せよ。 また、1から999までの和はいくらか?
お願いします。
446:445
08/06/23 16:21:31
間違えた問題の続きです。 1+2+・・・+N=Σi
あともうひとつ
1以上の正の整数の値をキーボードから入力し、1からNまでの2乗の和を求める
プログラムをC言語で作成せよ。 また、1から100までの和はいくらか?
1の2乗+2の2乗+・・・+Nの2乗=Σiの2乗
これもお願いします。 問題分かりにくくてごめんなさい。
447:デフォルトの名無しさん
08/06/23 16:22:55
>>445
#include <stdio.h>
int main(void)
{
int N;
printf("入力");
scanf("%d", &N);
printf("1から%dの和は%d\n", N, (1+N)*N/2);
return 0;
}
448:445
08/06/23 16:23:18
誰か432をお願い!
449:445
08/06/23 16:25:44
>>447
ありがとうございます。
450:デフォルトの名無しさん
08/06/23 16:29:47
ずいぶんとレベルの違う宿題が出る授業だなw
小学校と大学院が校舎共有してるのか?
451:デフォルトの名無しさん
08/06/23 16:32:35
外径、内径、高さの値を入力して、中空円筒の体積を計算するプログラム
をC言語で作成せよ。
#include<stdio.h>
#include<math.h>
main()
{
double pi,r1,r2,h,V;
途中までやりました。お願いです。
452:447
08/06/23 16:32:38
>>449
本当はforループで計算するのを求めていると思う
453:445
08/06/23 16:36:06
>>450
1年の授業と3年の授業ですw
432と446の問題を誰かお願いします。
期限は今週末です。
454:デフォルトの名無しさん
08/06/23 16:38:59
[1] 授業単元:
プログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ポインタ習ったばっかりです。
おねがいします。
455:デフォルトの名無しさん
08/06/23 16:40:02
>>432
"logo.gray"ってファイルは?
無くとも、もっと説明しなきゃ
”境界点を抽出”って意味は?
"logo.gray"が無いと説明出来ないならUPしなきゃ
456:454
08/06/23 16:41:08
問題文のリンク間違えました・・・ すいません
URLリンク(kansai2channeler.hp.infoseek.co.jp)
457:デフォルトの名無しさん
08/06/23 16:43:33
次の関数を計算するプログラムを作成せよ。C言語で。
y=3エックス2乗+2エックス-6
これ簡単だからやってみそ!
458:デフォルトの名無しさん
08/06/23 16:48:13
お前がやれ。
459:436
08/06/23 16:50:45
>>440
ありがとうございます。
>>441
貴方は誰ですか?
460:432
08/06/23 16:54:17
>>455
境界点を抽出の意味は僕もよく分からないです。ほんとにちんぷんかんぷんです。
単元は2値画像処理というところです。
461:デフォルトの名無しさん
08/06/23 16:56:00
>>460
輪郭抽出って事?
2x2 sobel フィルタとか使うの?
462:デフォルトの名無しさん
08/06/23 16:56:01
>>457
そんなこと言わないでさー やってよーん
463:デフォルトの名無しさん
08/06/23 16:57:14
>>457
意味不明なりよ
464:デフォルトの名無しさん
08/06/23 16:58:54
>>460
それじゃ、誰も出来ないだろw
もっと説明がいるぞ
"logo.gray"ってのは存在して、それの境界点抽出なのか
それとも任意の2値画像なのか
友達でも誰でも良いから聞いてきなw
465:432
08/06/23 16:59:55
輪郭抽出だと思います!
2x2 sobel フィルタは使わないと思います。
とにかくそういうc言語のプログラムを作成しろと言われて。
432を少し改良すればできると教授に言われました。
466:432
08/06/23 17:01:19
>>464
"logo.gray"は存在して、それの境界点抽出です!
467:デフォルトの名無しさん
08/06/23 17:06:34
>>457
y = 3*x*x+2*x-6;
468:デフォルトの名無しさん
08/06/23 17:16:00
>>466
なんだ?意図的にとぼけてるのか?
それなら"logo.gray"をUPしなきゃ、誰も出来ないだろ
って言ってるんだけど…
469:デフォルトの名無しさん
08/06/23 17:18:41
>>466
16.bitグレイスケール画像を作ってうp!
470:デフォルトの名無しさん
08/06/23 17:21:18
>>451
#include<stdio.h>
main()
{
double pi,r1,r2,h,V;
printf( "外径\n" );
scanf( "%lf", &r1 );
printf( "内径\n" );
scanf( "%lf", &r2 );
printf( "高さ\n" );
scanf( "%lf", &h );
pi = 3.14159265358979;
V = (pi * (r1 / 2.0) * (r1 / 2.0) + h) - (pi * (r2 / 2.0) * (r2 / 2.0) + h);
printf( "中空円筒の体積\n%f\n", V );
return 0;
}
471:デフォルトの名無しさん
08/06/23 17:22:57
1] 授業単元:授業じゃないんですが、質問スレがここしか分からなかったのでお願いします。
[2] 問題文(含コード&リンク):
#include<stdio.h>
int main(void){
int teika;
printf("定価を入力してからENTERを押してください。\n");
scanf("%d",&teika);
printf("1割引だと%4d円\n",(int)(teika*0.9));
printf("3割引だと%4d円\n",(int)(teika*0.7));
printf("5割引だと%4d円\n",(int)(teika*0.5));
printf("8割日だと%4d円\n",(int)(teika*0.2));
return 0;
}
このプログラムで、1000とかキリの良い数値を入力すると、3割引だけ1円だけずれた値が帰ってきちゃいます。
これってなんでですかね?
[3] 環境
[3.1] OS:WindowsXP SP2かな?
[3.2] コンパイラ名とバージョン:CPad for Borland C++Compiler Version 2.31
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:基礎は一通りやって、授業ではそれを応用して色々やらされてます。
が、ところどころ分からないので一人で最初から勉強し直してます。
472:デフォルトの名無しさん
08/06/23 17:25:48
[1] 授業単元: 実験
[2] 問題文 (1)ベクトルの内積を求めるプログラムを書け
(2)3×3の行列の掛け算を行う関数を作り、標準入力から入力した行列を
掛け算するプログラムを書け
(ヒント 2重配列が必要。 double matrix[3][3];)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月26日まで
[5] その他の制限:
特になし
473:デフォルトの名無しさん
08/06/23 17:25:48
>>471
切り捨てたいの?切り上げたいの?四捨五入したいの?
474:デフォルトの名無しさん
08/06/23 17:35:50
>>473
なんでもいいです。
参考にしてるサイトのやり方に従ってそこまで作りました。
やっぱ(int)が影響してるんですかね?
と思って全部それ取って実数型にしたら直りました。
どんな原因なんでしょう…
475:デフォルトの名無しさん
08/06/23 17:42:35
>>474
浮動小数点数は条件が合わない限り小数ぴったりの数値を扱えないので
内部ではその数値に近い値に丸められている
0.7 はコンピュータ内部では 0.7 より小さな値で格納されていて
0.9 と 0.2 は少し大きな値になってるんだろう
476:デフォルトの名無しさん
08/06/23 17:58:49
>>475
やはりコンピュータ上の問題ですか。
プログラムの作り方を変えるとかしないと解決できないわけですね。
ありがとうございました。
477:デフォルトの名無しさん
08/06/23 18:04:56
>>453
アンカー付けろ
テンプレ使え
数字は半角(まぁ全角でも困らないけどさ)
478:デフォルトの名無しさん
08/06/23 18:08:55
>>471
3割引だったら7倍してから10で割ってみてはどうだろう。
teika * 7 / 10
479:デフォルトの名無しさん
08/06/23 18:12:32
>>415
URLリンク(kansai2channeler.hp.infoseek.co.jp)
宿題っぽくしてみた。
入力されたデーターが不正な場合は飛ぶので、それがダメなら適当に直して
480:デフォルトの名無しさん
08/06/23 18:18:20
>>471
1円どっちにずれてる?
割る前に2円足すか1円引けばいいんじゃね?
481:デフォルトの名無しさん
08/06/23 18:20:06
>>480
定価を入力してからENTERを押してください。
1000
1割引だと 900円
2割引だと 800円
3割引だと 699円
4割引だと 599円
5割引だと 500円
6割引だと 400円
7割引だと 299円
8割引だと 200円
9割引だと 100円
482:デフォルトの名無しさん
08/06/23 18:22:46
>>481
round ceil floor のいずれを使ってもピッタリの数値になるのに
キャスト(int)による型変換のときだけ1円ずれる
めんどくせー
483:デフォルトの名無しさん
08/06/23 18:36:31
どなたか>>90お願いします
484:デフォルトの名無しさん
08/06/23 18:46:59
>>478
なるほど。
そういう風にすればいいのですね。
ありがとう。
>>480
>>481の通りです。
>>482
めんどいっすねw
でも宿題じゃなくてなんとなく答えも見えたんでおkです!
皆様ありがとう。
485:デフォルトの名無しさん
08/06/23 18:51:51
>>446
いくらなんでも簡単すぎだろ。
丸投げしすぎ。
486:デフォルトの名無しさん
08/06/23 19:03:05
>>456
URLリンク(kansai2channeler.hp.infoseek.co.jp)
487:446
08/06/23 19:07:34
>>485
そうですか。反省します。
488:451
08/06/23 19:09:41
>>470
サンクス
489:デフォルトの名無しさん
08/06/23 19:41:33
>>483>>90
〜省略〜
BITREE_TYPE sumValue(BITREE_NODE *p){
BITREE_TYPE total = 0;
if(p->left) total += sumValue(p->left);
if(p->right) total += sumValue(p->right);
total += p->value;
return total;
}
int main(int args, char **argv){
BITREE_NODE *p;
int end=0;
if(args < 2) return 1;
p = inputBITree(argv+1, args-1, &end);
printf("合計は %d です\n", sumValue(p));
printf("左部分木の合計は %d です\n", sumValue(p->left));
printf("右部分木の合計は %d です\n", sumValue(p->right));
destroyBITree(p);
return 0;
}
490:デフォルトの名無しさん
08/06/23 19:55:16
[1]プログラミング言語C
[2]@3より大きく、入力された上限の数未満の全ての自然数かつ非素数に
ついて、3で割り切れるものは無視し、3で割った余りが1のものは加算
し、余りが2のものは減算して合計を求めよ。
A次のように表示する
Input Upper Limit : 11 [Enter]
Answer is : 6
B配列、平方根は使ってはならない。
[3]@windows vista
Agcc
BC言語
[4]2008/6/23/21:00まで
[5]今年の春から始めたので、まだ基礎のほうです。
よろしくお願いします。
491:デフォルトの名無しさん
08/06/23 20:38:26
[1] 授業単元: 課題
[2] 問題文
h URLリンク(www.elc.ees.saitama-u.ac.jp)
h URLリンク(www.elc.ees.saitama-u.ac.jp)
[3] 環境
[3.1] OS : windows vista
[3.2] コンパイラ名とバージョン: Borland C++Compiler Version 2.31
[3.3] 言語: C
[4] 期限: 6月26日(印刷の必要があるため)
[5] その他の制限:
特になし
身を晒す事になりますが、お願いします。
492:デフォルトの名無しさん
08/06/23 20:46:24
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
493:491
08/06/23 20:52:41
h URLリンク(kansai2channeler.hp.infoseek.co.jp)
πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
494:491
08/06/23 20:55:59
h URLリンク(kansai2channeler.hp.infoseek.co.jp)
πの計算のコンパイルが通るところまで作りました。
Cはじめて2ヶ月で出た課題です。
ほとんど回答は載せてあるからこのレベルらしいですが、
正直見直しても全く分からないです。
495:デフォルトの名無しさん
08/06/23 20:58:38
>>492
マヂ助かった!!ありがとう!!
496:デフォルトの名無しさん
08/06/23 21:03:23
>>413
8x8の解がいくつあるのか試してみて欲しいな
497:デフォルトの名無しさん
08/06/23 21:08:47
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
498:デフォルトの名無しさん
08/06/23 21:14:04
>>490
URLリンク(kansai2channeler.hp.infoseek.co.jp)
499:デフォルトの名無しさん
08/06/23 21:20:12
>>489
ありがとうございます。
./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]と入力すると
$ ./a.out [ 6 [ 8 1 5 ] [ 3 _ 9 ] ]
合計は 29 です
左部分木の合計は 14 です
右部分木の合計は 9 です
という風に出て、実効例どおりに行かないのですが、どこがおかしいのでしょうか?
省略と書いてあるところには、URLリンク(kansai2channeler.hp.infoseek.co.jp)の
・2分木の基本的な操作関数をそのまま貼り付けただけです
500:デフォルトの名無しさん
08/06/23 21:28:06
比較的簡単な問題が出るとここぞとばかりに回答が提示されるよね
501:デフォルトの名無しさん
08/06/23 21:29:24
簡単な問題解いてなんの意味があるって感じだよな
502:デフォルトの名無しさん
08/06/23 21:31:25
肩慣らし
503:デフォルトの名無しさん
08/06/23 21:32:29
簡単な問題をだらだらと置いておいても意味ないし
504:デフォルトの名無しさん
08/06/23 21:33:01
>>500
だから何?お前基準で簡単とか言われても基準が曖昧なんだが。
お前が簡単だと思っているだけで、実際にお前が解いてもミスだらけなんじゃね?
505:デフォルトの名無しさん
08/06/23 21:33:13
>>501
それが解けない奴の為のスレだw
506:デフォルトの名無しさん
08/06/23 21:33:21
【回答テンプレ】
[1] 回答レベル:ノーチェック/コンパイル済/テスト済/清書済
[2] 回答 短いものは、直接記入可 もしくはリンク
[3] 開発環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイル/テストに使用した
コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4]コメント
なーんてね
507:デフォルトの名無しさん
08/06/23 21:45:21
>>504
ひとつの問題に対して複数者から解答が上がったら概ね平易
ひとつの問題に対して複数者が議論を始めたら面白みのある問題
ミスだらけかもね
508:デフォルトの名無しさん
08/06/23 21:51:39
誰かの解答に対して議論が始まることもあるけどなー
509:デフォルトの名無しさん
08/06/23 21:53:40
>>507
うん、だから お前基準 ほど 難易度 として当てにならないっつってんだが?
一言居士はうざいって意味が分からない?四の五の言わずにてめぇレスしろよw
510:デフォルトの名無しさん
08/06/23 21:55:56
>>492 はなぜ (i+1) やら、i=0からスタートしているのかと?
>>490
> 入力された上限の数未満
おかげで未満じゃなくなってるし・・・
511:デフォルトの名無しさん
08/06/23 21:58:41
なんという自己参照定義 循環論証
512:デフォルトの名無しさん
08/06/23 22:07:59
>>509
もうお前一言居士ってコテハンにしろよ
513:デフォルトの名無しさん
08/06/23 22:10:56
ってか>>507が自分基準で難易度の話をしているように読めるのなら文盲だな
あ、文盲って言葉も使っていいよ。自分が知らない他人を批判する言葉とか大好きそうw
514:デフォルトの名無しさん
08/06/23 22:12:27
すいません、この問題をおねがいします。
[1] 授業単元: Cプログラミング演習
[2] 問題文(含コード&リンク)
2以上32767以下の素数を求める。
整数nが素数かどうかは、2から√nまでの素数で割り切れるかどうか判定して、
そのすべてで割り切れなければnは素数となる。また、2以外の偶数は素数にならないから、
3以上の整数については奇数だけを対象にして求めればよい。
余力があれば、long型を対象にして2から2^31-1までの素数を求めてみよ。
[3] 環境
[3.1] OS: (Windows vista)
[3.2] コンパイラ名とバージョン: (visual studio 2005 )
[3.3] 言語: (C言語)
[4] 期限:今週中
[5] その他の制限: (自分のレベルはかなり低いので難しい関数はなしでお願いします・・・)
515:デフォルトの名無しさん
08/06/23 22:21:31
すみませんがこの問題をお願いします。
変数(int型 または double型 または 両方),入出力(scanf関数,printf関数),条件分岐(if else文)をすべて用いて,
各自自由なプログラムを作成する.
課題提出のメールには,必ずそのプログラムの仕様の説明文をつけること
(そのプログラムが何をするものなのかを説明すること).
516:デフォルトの名無しさん
08/06/23 22:24:08
>>515
なんという独創的なw
517:デフォルトの名無しさん
08/06/23 22:27:08
>>515
楽しすぎるwww
大まかに、どんなの作りたいかとか買いてけよw
テストの点数とか、体重の判定とかなんでもいいからよw
518:デフォルトの名無しさん
08/06/23 22:31:31
HDDをクラッシュさせるプログラムはどうかな?
成績表を破壊するプログラムとか
519:デフォルトの名無しさん
08/06/23 22:32:52
>>515
このスレの解答を適当に拾えばおk
520:デフォルトの名無しさん
08/06/23 22:41:15
むしろwikiの回答例でも持って池。
521:デフォルトの名無しさん
08/06/23 22:41:37
>>515
int scanf printf if else
でググると良い
522:デフォルトの名無しさん
08/06/23 22:44:02
>>515
wikiのマスターマインド(Hit&Blow)がいいんじゃない?
523:デフォルトの名無しさん
08/06/23 22:46:24
流れ的にサウンドノベルしかないだろ
524:デフォルトの名無しさん
08/06/23 22:49:44
CG曲シナリオシステム全部1人でか
525:デフォルトの名無しさん
08/06/23 22:50:07
むしろなんかシューティング系を(ry
526:デフォルトの名無しさん
08/06/23 22:52:50
>>523
が言ってるのは>>438だな
527:デフォルトの名無しさん
08/06/23 23:04:07
>>514
URLリンク(kansai2channeler.hp.infoseek.co.jp)
528:デフォルトの名無しさん
08/06/23 23:07:53
>>514
> long型を対象にして2から2^31-1までの素数を求めてみよ。
PCの性能にもよるけど、物理的に時間が掛かるんで却下。
529:デフォルトの名無しさん
08/06/23 23:12:20
>>526
yes
530:デフォルトの名無しさん
08/06/23 23:22:56
>>499
BITREE_NODE *inputBITree(char *str[], int len, int *end){
〜〜省略〜〜
*end = i + i;
return p;
}
*end = i + i; を *end = i + 1;
に変更
531:デフォルトの名無しさん
08/06/23 23:41:29
>>522
>wikiのマスターマインド(Hit&Blow)
実行してみたんですが、どうやって終わらせるんですか?
532:デフォルトの名無しさん
08/06/23 23:42:56
Ctrl と c 同時押しすれば終わるんじゃない
533:デフォルトの名無しさん
08/06/23 23:47:29
>>528
70.3秒かかったよ
これって長すぎる?
アルゴリズムはエラトステネスの篩使用
534:デフォルトの名無しさん
08/06/23 23:54:44
>>533
>>514の条件はエラトステネスの篩じゃないだろ
535:デフォルトの名無しさん
08/06/23 23:58:59
エラトステネスの篩じゃね?
536:デフォルトの名無しさん
08/06/24 00:00:12
全然違う
537:デフォルトの名無しさん
08/06/24 00:00:27
ふるいじゃないよ
538:デフォルトの名無しさん
08/06/24 00:11:13
>>530
ありがとうございます。数字はしっかりでました!
実行例にある
入力データ [ 6 [ 8 [ 1 _ _ ] 5 _ _ ] ] [3 _ [ 9 _ _ ] ] ]
というのはどうやって出せばいいのでしょうか?
539:デフォルトの名無しさん
08/06/24 00:13:27
[1] 授業単元:C言語実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: Borland C++Compiler V2.31
[3.3] 言語: C
[4] 期限: 08年6月25日(水曜日・明日)
[5] その他の制限: 特に無し
就活で浦島状態です、助けてください
540:デフォルトの名無しさん
08/06/24 00:14:54
>>539
浦島状態って。
C#ならまだしも、いつの時代の人?
541:デフォルトの名無しさん
08/06/24 00:34:36
>>538
printBITree(p, 0, 0);
値の間にスペース入れたいならprintSubtreeの中をいじくる
542:デフォルトの名無しさん
08/06/24 00:37:42
>>539
#include <stdio.h>
int main(void)
{
char str[110], *p[10], temp[11];
int i, j, cnt[10] = {0}, n = 0;
p[0] = str;
for(i=0; i<10; i++) {
printf("入力文字列==>");
fgets(temp, sizeof temp, stdin);
for(j=0; temp[j]; j++) if(temp[j] == '\n') temp[j] = '\0';
if(strcmp(temp, "end")==0 || strcmp(temp, "END")==0) break;
for(j=0; j<n; j++) {
if(strcmp(p[j], temp)==0) {
cnt[j]++;
break;
}
}
if(j==n) {
char *dst = p[n], *src = temp;
while(*dst++=*src++);
p[n+1] = dst;
cnt[n]++;
n++;
}
}
printf("*** 集計結果 ***\n");
for(i=0; i<n; i++) printf("%s : %d\n", p[i], cnt[i]);
return 0;
}
543:デフォルトの名無しさん
08/06/24 00:52:47
#include <string.h>忘れてた
544:デフォルトの名無しさん
08/06/24 00:55:44
strcmp関数は作ってしまえ
545:デフォルトの名無しさん
08/06/24 01:09:56
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
8パズルを解く上で、状態の重複をチェックするにはどのようなプログラムを加えればよいか考えよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 明日
どなたかよろしくお願いします。
546:デフォルトの名無しさん
08/06/24 01:14:14
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
ポインタの課題で、数値の大小を判別するプログラムです。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
547:デフォルトの名無しさん
08/06/24 01:17:08
>>506
よろしく
548:デフォルトの名無しさん
08/06/24 01:18:30
8パズルとやらをググってみたけど
>状態の重複
ってどんな状況だ?
こんなんか?
bool bCheckOverlap(int x, int y){
if(puzzle[x][y]>0){
return false;
}
return true;
}
549:デフォルトの名無しさん
08/06/24 01:22:59
動かしたとき同じ状態に戻らないようにするためのチェックじゃない?
550:デフォルトの名無しさん
08/06/24 01:25:05
>>546
A
void func(int *a, int *b);
B
void func(int *a, int *b)
{
if(*a < *b) {
int temp = *a:
*a = *b;
*b = temp;
}
}
551:545
08/06/24 01:26:32
>>549さんの仰るとおり、過去と同じ状態になっていないかチェックして無駄な処理をしないようにというものです。
言葉足らずで申し訳ありません。
552:デフォルトの名無しさん
08/06/24 01:32:44
>>550
ありがとうございます。
「void func(int *a, int *b);」こうやって宣言するんですね、この段階で自分はつまづいてました。
またこちらもお願いできますでしょうか?これで課題がすべて終わるのでお願いします。
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
関数は戻り値をひとつしか返せないが、ポインタを使うと複数の値を呼び出し側に
返すことができる。秒数を与えると、それが何時間何分何秒にあたるかを計算する
関数void calctime(int sec, int *hp, int *mp, int *sp);を作成せよ。
たとえば、calctime(3725, &h, &m, &s); として呼び出すとh=1, m=2, s=5となる
(1時間2分5秒は3725秒)
(解説)
main関数側で各関数を用意し、計算する関数を呼び出す。
結果の表示は関数の呼び出しが終わった後、main関数側で行えばよい。
秒→時間、分、秒の計算は単純に割り算の商と余りを用いればよい。
[3] 環境
[3.1] OS: VineLinux
[3.2] コンパイラ名とバージョン: GNOME gcc
[3.3] 言語: C言語
[4] 期限:6/25 PM:2時
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4256日前に更新/251 KB
担当:undef