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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 02:13:06 ]
あなたが解けない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++の宿題片付けます 122代目(実質123代目)
pc11.2ch.net/test/read.cgi/tech/1232029287/

552 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 23:58:22 ]
春休みに宿題があるわけが無いとはいえ、
大学生ならともかく、高校生の問題を解くのは飽きた・・・

553 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 00:58:19 ]
>>552
マトリョーシカの問題が結構難しいよ

554 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 01:38:05 ]
>>551
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9006.c
説明ぐらい自分で見て考えろ。

555 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:09:51 ]
どなたか>>546をお願いできませんか?

556 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 10:20:48 ]
>>546

557 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 11:34:46 ]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double bmi(int height, int weight) { return 10000.0 * weight / (height * height); }

int main(void)
{
int *p, i, n, height, weight, indx = 0;
double min, temp;
FILE *fp;

if((fp=fopen("data.txt", "r"))==NULL) return 0;
while(1) {
fscanf(fp, "%d", &n);
if(n==0) break;
p = malloc(sizeof(int) * n);
fscanf(fp, "%d%d%d", p, &height, &weight);
min = fabs(22 - bmi(height, weight));
for(i=1; i<n; i++) {
fscanf(fp, "%d%d%d", p + i, &height, &weight);
temp = fabs(22 - bmi(height, weight));
if(temp < min || (temp == min && p[i] < p[indx])) min = temp, indx = i;
}
printf("%d\n", p[indx]);
free(p);
}
return 0;
}

558 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 12:18:18 ]
>>546
#include<stdio.h>
#include<math.h>

typedef struct tag_info_t{
long i;
double h, w;
}info_t;

double get_bmi(double h, double w){
return w/(h*h);
}

int main(void){
long i, n;
double bmi, best_bmi;
info_t x, best;

for(;;){
if(scanf("%ld", &n)!=1 || n<1) break;
for(i=0;i<n;i++){
scanf("%ld %lf %lf", &x.i, &x.h, &x.w);
bmi=get_bmi(x.h/100., x.w);
if(i==0 || fabs(best_bmi-22)>fabs(bmi-22)){
best=x;
best_bmi=bmi;
}
}
printf("%ld\n", best.i);
}
return 0;
}

559 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:29:51 ]
>>558
>受付番号の小さい方を出力することとします。
忘れてた

560 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 15:39:46 ]
>>559

>>1
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

そのくらいの修正は自分でやればいいとおもうんだな



561 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:03:22 ]
>>560
いや、問題文に書かれている文言で、
>>558は仕様を満たしてないってこと。

562 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 16:06:28 ]
>>561
ああ、失敬失敬
早計だった

563 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 17:58:12 ]
>>553
h優先とr優先の二系統で組み入れられる人形の多い方をとればいいよ。

564 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 18:31:37 ]
いちおー>>549>>546の回答なんやけどな。アンカ付け忘れたけど。
見て分からんのは、本人、問題読んでないんちゃうやろか?
読んでたらBMIって関数ある時点で判断できるやろ。すぐ下やし。

565 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 19:53:11 ]
>>564
C/C++系のスレで一番バカでやる気の無い質問者の溜まり場だからな

566 名前:デフォルトの名無しさん [2009/04/01(水) 04:35:17 ]
ここで描かれたプログラム甲子園の回答は不合格とします

567 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:28:50 ]
[1] 授業単元:ばば抜きの者です
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9010.zip
[3] 環境
 [3.1] OS:Redhat, Win Xp Pro
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:いつもお世話になっています。153さんのソースを丸々使わせてもらいながらやっています。ほかにもいろいろ伺いながらやっています。
シミュレータなので何回か実行させて結果を比べたいのですが、どうも、最初の配る段階でいつも同じようにしか配ってくれない(並び替えが最初のまま)様です。
srandのtime(NULL)にプレイ回数をかけて見たら変わるかなとも思ったのですがどうやら変わらないようです。
何かヒントがあればよろしくお願いします。

今後書き出し方を変えてRで読み込めるようにしていこうと思っています。


568 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 13:41:05 ]
宿題じゃないなら続きはこっちでやってくれ

C言語でトランプゲームを作りたい
pc12.2ch.net/test/read.cgi/tech/1189892773/

569 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 15:09:08 ]
C言語の問題なんですが、

n個の実数データx(i)(i=1,2,3・・・n)を入力し、合計kei,件数n,平均ave,標準偏差sdを計算し、表示しなさい。ただし、ave,sd,の名で関数を作りなさい。また、終了データは0とする。計算式は次の通りである。

平均値:ave=1/n納i=1,n]x(i)
標準偏差:sd=√{1/n納i=1,n](x(i)-x')^2} x'は平均値

お願いします。

570 名前:569 mailto:sage [2009/04/01(水) 15:10:44 ]
細く
↑のC言語のプログラムを教えてください。



571 名前:569 mailto:sage [2009/04/01(水) 15:12:05 ]
○補足
×細く

572 名前:デフォルトの名無しさん mailto:sage [2009/04/01(水) 16:47:29 ]
>>569
#include <stdio.h>
#include <math.h>
double kei(const double *data, unsigned int n)
{
unsigned int i;
double sum = 0.0;
for(i = 0 ; i < n; i++){ sum += data[i]; }
return sum;
}
double ave(const double *data, unsigned int n)
{ return kei(data, n) / n; }
double sd(const double *data, unsigned int n)
{
unsigned int i;
double a = ave(data, n), t = 0.0;
for(i = 0 ; i < n; i++)
{ t += (data[i]-a)*(data[i]-a); }
return sqrt(t/n);
}
int main()
{
unsigned int n = 0;
double data[1024];
while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }
printf("kei: %lf\nave: %lf\nsd: %lf\n", kei(data,n), ave(data,n), sd(data,n));
return 0;
}

573 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:04:53 ]
[1] 授業単元:基礎
[2] 問題文:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9011.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限:4月5日
[5] その他の制限:上記のソースに最低一つユーザ定義関数をつける

上記のソースにユーザ定義関数をつけてくださいorz


574 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:22:43 ]
>>573
それ以前に、そのプログラムは何をするプログラム?

575 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 04:49:45 ]
>>574
A君、Bさん、C君でバドミントンをします。
A君 VS Bさんの勝負をC君が記録しましたが、記録していたのはサーブの順番だけでした。
1セット3ゲーム11点先取で行い、デュースを適用しました。
C君が残した記録から得点を出力するプログラムを作成してください。
1ゲーム目は必ずA君から始まり、以降は最終ゲームの勝者からです。
また、1ゲーム中のサーブ回数は必ず100回以内です。

こういうものです。

576 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 08:37:29 ]
#include<stdio.h>
#include<string.h>
#define GM 3
#define MAX 101

void tokuten(char *buf){
int g,len;
int Ac = 0, Bc = 0;

len=strlen(buf);
for(g=1;g<len;g++){
if(buf[g]=='A') Ac++;
if(buf[g]=='B') Bc++;
}
printf("%d %d\n", Ac, Bc);
}

int main(void){
int i;
char buf[GM][MAX];

for(i = 0; i < GM; i++){
scanf("%s", buf[i]);
if(buf[i][0] == '0'){
return -1;
}
}
for(i = 0; i < GM; i++){
tokuten(buf[i]);
}
return 0;
}

577 名前:569 mailto:sage [2009/04/03(金) 15:05:12 ]
>>572
ありがとうございましたm(_ _)m

578 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 13:53:55 ]
[1] 授業単元:C++
[2] 問題文:
C++ではvalidではないがCではvalidなプログラムを書きなさいというなぞなぞみたいな
宿題が出ました。普通に考えるとCで動くプログラムはC++で動くはずですが、そうでないものを
書けというものみたいです。ヒントは、「C言語の経験がなくても出来る」だそうです。
型にはまらない発想でシンプルなコードを書きなさいと言われました。問題文は以上です。
(validの意味がコンパイル可能を指すのか動作可能なのかを確認し忘れてしまい、今確認
できないのですが、それでも何かピンと来る方宜しくお願いします)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限:4月6日

579 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:01:10 ]
>>578
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/489

489 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/23(月) 09:24:50
char hoge[4] = "ABCD"; // これがエラーになるかどうか

580 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:40:46 ]
なそなぞではなく、C++ 優位
int main(void)
{
   char data;
   char pointer = &data;

   pointer = &data;
}



581 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 14:47:29 ]
>>578
関数プロトタイプのない関数の呼び出し
void* からの暗黙のポインタ変換

582 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 15:40:42 ]
[1] 授業単元:上級C++
[2] 問題文:ttp://www.dotup.org/uploda/www.dotup.org23539.zip.html
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:4月6日
[5] その他の制限:
初回の宿題から難しく全く理解出来ないのでよろしくお願いします
サンプルコードを使って書くのか、単純にこれは参考に使うものなのかすらわかっていませんがよろしくおねがいします

583 名前:578 mailto:sage [2009/04/04(土) 16:21:13 ]
>>579, 580, 581
ありがとうございました

584 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:25:51 ]
[1] 授業単元:C++
[2] 問題文:std::copyと同じような機能が<algorithm>ヘッダのstd::tranformから提供されている。
使い方を理解し、std::transformを使用して以下のようなプログラムを作成しなさい。
- vectorにfloatを複数書き込む。
- 元のvectorのそれぞれの要素を二乗したものからなる新しいvectorを生成する。
- 新しいvectorを画面に表示する。
(ostream_iteratorを使う場合は出力時最後にコンマがつくかもしれないが、気にしなくて良い)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:4月6日

585 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 16:43:58 ]
>>584
ttp://www.geocities.jp/ky_webid/cpp/library/025.html

586 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:17:52 ]
>>582
使えってかいてあるからとりあえず使うだけのコード
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9014.cpp

587 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 20:30:19 ]
>>584
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
float power2(float x)
{ return x*x; }
int main()
{
const int size = 10; float c = 0.1;
std::vector<float> vec1(size), vec2(size);
for(int i = 0; i < size; ++i){ vec1[i] = c; c += 1.1; }
std::transform(vec1.begin(), vec1.end(), vec2.begin(), power2);
std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<float>(std::cout, ","));
return 0;
}

588 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 00:55:26 ]
>>586
助かりました!有り難うございました。

589 名前:584 mailto:sage [2009/04/05(日) 01:55:15 ]
>>587
ありがとうございました!これから解読します

590 名前:デフォルトの名無しさん [2009/04/05(日) 03:21:24 ]
解読する価値ねーだろ



591 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 03:23:05 ]
価値というか、問題文そのまま書き下しただけだな

592 名前:デフォルトの名無しさん [2009/04/05(日) 03:29:26 ]
お前引っこんでろ


593 名前:デフォルトの名無しさん [2009/04/05(日) 03:33:04 ]
>>589
あんまいじると可哀想だろ 
そのへんでやめとけ


594 名前:デフォルトの名無しさん [2009/04/05(日) 12:59:37 ]
#include <stdio.h>
【  1  】      /* 文字列の標準ヘッダーファイルの取り込み */
#define TRUE 1
#define FALSE 0

int passCheck(char *p); /* ユーザー作成関数のプロトタイプ宣言 */

void main()
{
char buff[256];
int cnt, flg = FALSE;

for (cnt=1; 【  2  】 ; cnt++)
{
printf("パスワードは?=> ");
scanf("%s",buff);

flg = 【  3  】 ;

if (flg == TRUE)
printf("パスワードは合致しました。\n");
else
printf("%d回目 入力ワード %s は間違っています。\n",cnt,buff);
}
}



595 名前:デフォルトの名無しさん [2009/04/05(日) 13:00:24 ]
int passCheck(char *p)
{
static char *pass = "MissionC";
int flg;

flg = strcmp(pass,p);

if (【  4  】 )
return TRUE;
else
return FALSE;
}

596 名前:デフォルトの名無しさん [2009/04/05(日) 13:02:59 ]
1,2,3,4に入る解答を教えて

597 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:13:16 ]
>>595-596 3回もしなくても、1回で投稿できるだろう。
#include <string.h>
!fig
passCheck(buff)
!fig

598 名前:デフォルトの名無しさん [2009/04/05(日) 13:22:14 ]
回答群から選ぶ問題だった

1
#include "string.h"
#include <string.h>
#include <strcmp.h>
#include <strings.h>

2
cnt<=3 and flg==FALSE
cnt<3 && flg!=TRUE
cnt<=3 && flg==FALSE
newStr[5]

3
passCheck(*p)
passCheck(p)
passCheck(&buff)
passCheck(buff)

4
flg > 0
flg = 0
flg < 0
flg == 0

599 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 13:26:16 ]
>>598
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
#include <string.h>
cnt<=3 && flg==FALSE
passCheck(buff)
flg == 0

600 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:08:13 ]
[1] 授業単元:C++
[2] 問題文:
16行からなるパスカルの三角形をコンソールに出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:g++
 [3.3] 言語: C++
[4] 期限:4月7日
[5] その他制限事項:
(1)正三角形にすること。(各行がコンソール左端ぴったりから始まるような直角三角形ではない)
(2)一つのデータの入る領域を「レンガ」とすると、レンガのサイズは三角形を構成するデータの
最大値の桁を格納出来る大きさとしなさい。ただし見栄えの点から偶数の場合は奇数にした方がよいでしょう。
(=>つまりサイズは4桁(+1)=5にしろって言ってるんだと思います)
(3)数値はレンガの真ん中に位置するようにしなさい。
(4)入れ子のコンテナを使用しなさい。(例 vector<vector<int>>)

よろしるおねがいします



601 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 15:22:37 ]
>>600
ぐぐれ

602 名前:600 mailto:sage [2009/04/05(日) 15:38:41 ]
>>601
ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。
ttp://www.daniweb.com/forums/thread49939.html
とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、
というわけでよろしるおねがいします

603 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 16:53:55 ]
あなたは、10とか1000の桁数偶数の場合は、5桁の中央にどう配置するのか?

604 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:36:04 ]
_1_0_
10_00

605 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 17:57:49 ]
>>604 OK. あと、STL使うみたい。
#include <iostream>
int main(void){ std::cout <<
"_______________________________________________1__ \n" <<
"____________________________________________1_____1__ \n" <<
"_________________________________________1_____2_____1__ \n" <<
"______________________________________1_____3_____3_____1__ \n" <<
"___________________________________1_____4_____6_____4_____1__ \n" <<
"________________________________1_____5____1 0___1 0____5_____1__ \n" <<
"_____________________________1_____6____1 5___2 0___1 5____6_____1__ \n" <<
"__________________________1_____7____2 1___3 5___3 5___2 1____7_____1__ \n" <<
"_______________________1_____8____2 8___5 6___7 0___5 6___2 8____8_____1__ \n" <<
"____________________1_____9____3 6___8 4___126___126___8 4___3 6____9_____1__ \n" <<
"_________________1____1 0___4 5___120___210___252___210___120___4 5___1 0____1__ \n" <<
"______________1____1 1___5 5___165___330___462___462___330___165___5 5___1 1____1__ \n" <<
"___________1____1 2___6 6___220___495___792___924___792___495___220___6 6___1 2____1__ \n" <<
"________1____1 3___7 8___286___715__12 87_17 16_17 16_12 87__715___286___7 8___1 3____1__ \n" <<
"_____1____1 4___9 1___364__10 01_20 02_30 03_34 32_30 03_20 02_10 01__364___9 1___1 4____1__ \n" <<
"__1____1 5___105___455__13 65_30 03_50 05_64 35_64 35_50 05_30 03_13 65__455___105___1 5____1__ \n" ;
}

606 名前:600 mailto:sage [2009/04/06(月) 00:52:27 ]
↑こんな感じで表示出来ると助かるのですが
どなたかコンテナを使ったプログラムでお願い出来ないでしょうか

607 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:06:27 ]
これって正三角形じゃなくて二等辺三角形だよな

608 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:16:04 ]
教員の端末がプロポーショナルフォントだったら・・・

609 名前:600 mailto:sage [2009/04/06(月) 01:28:10 ]
「正」じゃなくて二等辺でもたぶん大丈夫です

610 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:42:20 ]
printf("%*d",WID,NUM);
WID 文字数の指定
NUM 値



611 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:43:05 ]
C++でも書式の指定ができるものがあったような・・・

612 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 01:44:52 ]
#include <vector>

typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;

void main()
{
VecVecInt vvi;

vvi[0][0] = 1;

vvi[1][0] = 1;
vvi[1][1] = 1;

vvi[2][0] = 1;
vvi[2][1] = 2;
vvi[2][2] = 1;
}

613 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:14:45 ]
#include <stdio.h>
#include <vector>

typedef std::vector<int> VecInt;
typedef std::vector<VecInt> VecVecInt;

void main()
{
VecVecInt vvi;
VecInt vi;
int iRow, iCol;
int iStep = 10;

vi.push_back(1);
vvi.push_back(vi);
for (iRow = 0; iRow < iStep; iRow++) {
vi.clear();
vi.resize(iRow + 2, 0);
vvi.push_back(vi);
for (iCol = 0; iCol <= iRow; iCol++) {
vvi[iRow + 1][iCol] += vvi[iRow][iCol];
vvi[iRow + 1][iCol + 1] += vvi[iRow][iCol];
}
}

for (iRow = 0; iRow < iStep; iRow++) {
for (iCol = 0; iCol <= iRow; iCol++) {
printf("%d,", vvi[iRow][iCol]);
}
printf("\n");
}
}

614 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:16:20 ]
1,
1,1,
1,2,1,
1,3,3,1,
1,4,6,4,1,
1,5,10,10,5,1,
1,6,15,20,15,6,1,
1,7,21,35,35,21,7,1,
1,8,28,56,70,56,28,8,1,
1,9,36,84,126,126,84,36,9,1,

615 名前:600 mailto:sage [2009/04/06(月) 02:27:33 ]
毎行左端からスタートではない左辺と右辺の二等辺である三角形に出来ませんか?
(イメージ的に605みたいな)

616 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:33:38 ]
#include <stdio.h>
#include <string.h>

char* NumFmt(unsigned int uiNum)
{
static int aiPos[][5] = {{2},{1,3},{1,2,3},{0,1,3,4},{0,1,2,3,4}};
static char acRet[6];
char acBuf[16];
size_t uiLen;
unsigned int ui;

sprintf(acBuf, "%u", uiNum);
uiLen = strlen(acBuf);
if (5 < uiLen) return NULL;
strcpy(acRet, "_____");
for (ui = 0; ui < uiLen; ui++) {
acRet[aiPos[uiLen - 1][ui]] = acBuf[ui];
}
return acRet;
}

void main()
{
printf("%s\n", NumFmt(5));
printf("%s\n", NumFmt(55));
printf("%s\n", NumFmt(555));
printf("%s\n", NumFmt(5555));
printf("%s\n", NumFmt(55555));
}

617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 02:35:52 ]
__5__
_5_5_
_555_
55_55
55555

一応、骨格と部品は用意したんで
適当に加工してちょ
もっと綺麗に書けたらなぁw

618 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 03:51:43 ]
>>600
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9015.cpp

619 名前:600 mailto:sage [2009/04/06(月) 04:00:09 ]
>>618
完璧です。。ほんとに感謝です!
ありがとうございました!

620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:00:45 ]
#include <stdio.h>
#include <string.h>
#include <vector>

#define N 14

using namespace std;

void main()
{
vector< vector<int> > vvi;
vector<int> vi;
char acBuf[16];
int iRow, iCol, iMax = 0, iMaxLen, i, iSpc;

for (iRow = 0; iRow < N; iRow++) {
vi.push_back(1);
for (iCol = iRow - 1; 0 < iCol; iCol--) {
vi[iCol] += vi[iCol - 1];
iMax = __max(iMax, vi[iCol]);
}
vvi.push_back(vi);
}



621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:02:04 ]
sprintf(acBuf, "%d", iMax);
iMaxLen = strlen(acBuf);
iMaxLen |= 1; // 奇数に繰り上げ

for (iRow = 0; iRow < N; iRow++) {
for (i = 0; i < (iMaxLen / 2 + 1) * (N - 1 - iRow); i++) putchar(' ');
for (iCol = 0; iCol <= iRow; iCol++) {
sprintf(acBuf, "%d", vvi[iRow][iCol]);
iSpc = iMaxLen - strlen(acBuf);
for (i = 0; i < iSpc / 2; i++) putchar(' ');
printf(acBuf);
for (i = 0; i < (iSpc + 1) / 2; i++) putchar(' ');
putchar(' ');
}
putchar('\n');
}
}

もう解答は上がってるけど、別解として

622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:30:13 ]
くせぇくせぇ、後出し麻呂の臭いがぷんぷんすんぜ
こりゃ〜クソースだぁ〜クソースは消毒だぁ〜

623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 09:38:04 ]
g++ だと、void main はコンパイルエラーになる。
#define __max(a,b) a>b?a:b
どれだけ花がいいんだ。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 10:31:46 ]
ttp://www.dotup.org/uploda/www.dotup.org26594.zip.html

四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン)
を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目)
あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします

625 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 11:23:42 ]
template<class T>
struct power : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const {
return x + y * y;
}
};

sum=std::accumulate(new_vec.begin(), new_vec.end(), 0, power<float>());

こんな感じにすればいいんじゃね?よく分からんが

626 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:49:20 ]
>>618 #define N 17 だと、なぜかダメ。

627 名前:デフォルトの名無しさん [2009/04/06(月) 15:25:28 ]
>>626
最大表示桁数が5桁を超えるからじゃないの?

628 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 15:28:48 ]
>>578
new delete 等の C++ キーワードを変数名に

629 名前:624 mailto:sage [2009/04/06(月) 16:10:26 ]
>>625
おぉ!すごいできました。
ありがとうございました。(^人^)感謝♪

630 名前:569 mailto:sage [2009/04/08(水) 19:10:27 ]
>>572のプログラムについてなんですが、
各行にコメントをつけなきゃなくて、さらに提出するときに説明しなきゃないんですけど、
while(!n || data[n-1] != 0.0){ scanf("%lf", data+n); n++; }の文について誰か詳しく教えてくれませんか?
あとこのプログラムだと平均値が終了データの0まで件数にカウントされているらしく、
例えば1、2、3の平均値は2になるはずが、(1+2+3+0)÷4=1.5となってしまっているので、
修正の仕方を教えてくださいm(_ _)m



631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 19:35:20 ]
while (n < 1024) {
if (scanf("%lf", &data[n]) != 1) { // 入力
scanf("%*s"); // 入力バッファ読み捨て
printf("error\n");
continue;
}
if (data[n] == 0.0) { // 0なら入力終了
break;
}
n++;
}

改良案

632 名前:デフォルトの名無しさん mailto:age [2009/04/08(水) 20:05:04 ]
[1] 授業単元: ファイルの入出力(fprintf文の高度な使用法)
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9019.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc )
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 来週の月曜日まで
[5] その他の制限: 特に無し


633 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 21:26:26 ]
問題文正確か?

634 名前:632 mailto:age [2009/04/08(水) 21:40:51 ]
>>633
一応正確ですよ
よろしくお願い致します。

635 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 22:50:27 ]
まだ4月初めなのにもう課題がでてるの?
どういう学校だろうか。

うちなんかこれから講義資料作りますよ。
自分が出した問題がここに出てくるかwktkしながら見ることにします。

636 名前:632 mailto:age [2009/04/08(水) 23:12:35 ]
>>635
専門学校ですのでカリキュラムがギュウギュウなんですよ
出来るようならお願い致します

637 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:15:23 ]
いったい何のために専門学校に入ったの?

638 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 23:17:29 ]
>>636
カリキュラムがギュウギュウって本当か?
卒業時にバブルソートがなんとかできるとかじゃないよな?

639 名前: ◆zQ5xe/OcaA mailto:sage [2009/04/08(水) 23:20:42 ]
>>632
int main()
{
  output=fopen("vib1.inp","w");
  t=0.0, x[1]=1.0; x[2]=0.0;

  printf("%10.5lf\n",t);
  printf("%10.5lf%10.5lf\n",x[1],x[2]);

  fprintf(output,"♯AVS field file\n");
  fprintf(output,"%d\n",NMAX+1);
  fprintf(output,"data_geom\n");
  fprintf(output,"step%d step%d\n%d %d\n%d",1,1,1,1,1);
  fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
  fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
  fprintf(output,"radius,\n%d%4.1f\n",1,1.0);

  for(i=1; i<=NMAX;i++){
    t=((double) i)*h;
    fprintf(output,"step%d step%d\n%d %d\n%d",i+1,i+1,1,1,1);
////////////////////////////////////////////////////////////////////////////////
    runge( vib,x,f,wrk1,wrk2,t,h,n);
////////////////////////////////////////////////////////////////////////////////
    fprintf(output,"%9.6lf%9.6lf%9.6lf\n",x[1],0.0,0.0);
    fprintf(output,"%d 1 pt %d\n%d %d\n%d %d\n",1,1,1,0,1,1);
    fprintf(output,"radius,\n%d%4.1f\n",1,1.0);
    printf("%10.5lf\n",t);
    printf("%10.5lf%10.5lf\n",x[1],x[2]);
  }
}

640 名前:632 mailto:age [2009/04/08(水) 23:21:05 ]
>>637
プログラムの勉強をするためです
>>638
卒業時には立派なプログラマー予備軍?になってるだろうと先生から言われています



641 名前:632 mailto:age [2009/04/08(水) 23:27:17 ]
>>639
このままだとエラーが結構出ますがこれを参考にしろってことですね
ありがとうございます。やってみます

642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 00:42:36 ]
プログラムの勉強をするために専門学校に入って、ここで宿題解いてもらうのか。

とりあえずうちの会社には来ないでね。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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