C/C++の宿題片付けま ..
545:デフォルトの名無しさん
09/03/30 19:55:03
>>526
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void){
int hito, atari;
int i, j;
printf("参加者の人数 : ");
scanf("%d", &hito);
printf("当たりの数 : ");
scanf("%d", &atari);
srand(time(NULL));
printf("\n");
for(j=0;j<15;j++){
if(j%2) printf("│");
for(i=j%2;i<hito-1;i+=2) printf("%s", (rand()%3)?"├┤":"││");
if(i<hito) printf("│");
printf("\n");
}
for(i=0;i<hito;i++){
if((rand()%(hito-i))<atari){
atari--;
printf("◎");
}else printf("×");
}
printf("\n");
return 0;
}
546:デフォルトの名無しさん
09/03/30 21:40:37
[1] 授業単元:C言語
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1]OS:Windows
[3.2] VC6.0
[3.3]言語:C言語
[4]期限:4月1日
[5]その他の制限:ユーザ定義関数を利用する
どなたかよろしくお願いします。
547:デフォルトの名無しさん
09/03/30 21:47:58
URLリンク(www.pref.fukushima.jp)にある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc
548:デフォルトの名無しさん
09/03/30 21:49:07
URLリンク(www.pref.fukushima.jp)にある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc
549:デフォルトの名無しさん
09/03/30 22:00:29
#include <stdio.h>
double abs(double d){ return d < 0 ? -d : d; }
double BMI(int h, int w){ return 10000.0 * w / h / h; }
void main(){
int n, i, h, w, j;
double d;
while(scanf("%d", &n) && n){
d = 2000000; /* BMI(1,200) */
while(n--){
scanf("%d %d %d", &i, &h, &w);
if(abs(BMI(h,w)-22) < d){
j = i;
d = abs(BMI(h,w)-22);
}
}
printf("%d\n", j);
}
}
550:デフォルトの名無しさん
09/03/30 22:29:36
>>547
#include <stdio.h>
int judge(int p){
return (p & 7) == 7 || (p & (7<<3)) == (7<<3) || (p & (7<<6)) == (7<<6) ||
(p & 73) == 73 || (p & (73<<1)) == (73<<1) || (p & (73<<2)) == (73<<2) ||
(p & 273) == 273 || (p & 84) == 84;
}
void main(){
char c;
int n = 0, b = 0, w = 0;
while(scanf("%c ", &c) && c != '0'){
b <<= 1; b |= c == 'b' ? 1 : 0;
w <<= 1; w |= c == 'w' ? 1 : 0;
if(++n == 9){
if(judge(b)) printf("b\n");
else if(judge(w)) printf("w\n");
else printf("NA\n");
n = 0; b = 0; w = 0;
}
}
}
551:デフォルトの名無しさん
09/03/30 22:53:30
URLリンク(www.pref.fukushima.jp)に記載されている
2007年の本選の問12 ブラックジャックの問題よろしくお願いします。
あと、問題を解く上でどのようなアルゴリズム、データを利用したか。と何の
処理を関数としたのかを付け加えてお手数だと思いますがよろしくお願いします。
OS xp
C言語
コンパイル gcc
552:デフォルトの名無しさん
09/03/30 23:58:22
春休みに宿題があるわけが無いとはいえ、
大学生ならともかく、高校生の問題を解くのは飽きた・・・
553:デフォルトの名無しさん
09/03/31 00:58:19
>>552
マトリョーシカの問題が結構難しいよ
554:デフォルトの名無しさん
09/03/31 01:38:05
>>551
URLリンク(kansai2channeler.hp.infoseek.co.jp)
説明ぐらい自分で見て考えろ。
555:デフォルトの名無しさん
09/03/31 10:09:51
どなたか>>546をお願いできませんか?
556:デフォルトの名無しさん
09/03/31 10:20:48
>>546 だ
557:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/03/31 15:29:51
>>558
>受付番号の小さい方を出力することとします。
忘れてた
560:デフォルトの名無しさん
09/03/31 15:39:46
>>559
>>1
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
そのくらいの修正は自分でやればいいとおもうんだな
561:デフォルトの名無しさん
09/03/31 16:03:22
>>560
いや、問題文に書かれている文言で、
>>558は仕様を満たしてないってこと。
562:デフォルトの名無しさん
09/03/31 16:06:28
>>561
ああ、失敬失敬
早計だった
563:デフォルトの名無しさん
09/03/31 17:58:12
>>553
h優先とr優先の二系統で組み入れられる人形の多い方をとればいいよ。
564:デフォルトの名無しさん
09/03/31 18:31:37
いちおー>>549は>>546の回答なんやけどな。アンカ付け忘れたけど。
見て分からんのは、本人、問題読んでないんちゃうやろか?
読んでたらBMIって関数ある時点で判断できるやろ。すぐ下やし。
565:デフォルトの名無しさん
09/03/31 19:53:11
>>564
C/C++系のスレで一番バカでやる気の無い質問者の溜まり場だからな
566:デフォルトの名無しさん
09/04/01 04:35:17
ここで描かれたプログラム甲子園の回答は不合格とします
567:デフォルトの名無しさん
09/04/01 13:28:50
[1] 授業単元:ばば抜きの者です
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Redhat, Win Xp Pro
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:いつもお世話になっています。153さんのソースを丸々使わせてもらいながらやっています。ほかにもいろいろ伺いながらやっています。
シミュレータなので何回か実行させて結果を比べたいのですが、どうも、最初の配る段階でいつも同じようにしか配ってくれない(並び替えが最初のまま)様です。
srandのtime(NULL)にプレイ回数をかけて見たら変わるかなとも思ったのですがどうやら変わらないようです。
何かヒントがあればよろしくお願いします。
今後書き出し方を変えてRで読み込めるようにしていこうと思っています。
568:デフォルトの名無しさん
09/04/01 13:41:05
宿題じゃないなら続きはこっちでやってくれ
C言語でトランプゲームを作りたい
スレリンク(tech板)
569:デフォルトの名無しさん
09/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
09/04/01 15:10:44
細く
↑のC言語のプログラムを教えてください。
571:569
09/04/01 15:12:05
○補足
×細く
572:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/03 04:04:53
[1] 授業単元:基礎
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:4月5日
[5] その他の制限:上記のソースに最低一つユーザ定義関数をつける
上記のソースにユーザ定義関数をつけてくださいorz
574:デフォルトの名無しさん
09/04/03 04:22:43
>>573
それ以前に、そのプログラムは何をするプログラム?
575:デフォルトの名無しさん
09/04/03 04:49:45
>>574
A君、Bさん、C君でバドミントンをします。
A君 VS Bさんの勝負をC君が記録しましたが、記録していたのはサーブの順番だけでした。
1セット3ゲーム11点先取で行い、デュースを適用しました。
C君が残した記録から得点を出力するプログラムを作成してください。
1ゲーム目は必ずA君から始まり、以降は最終ゲームの勝者からです。
また、1ゲーム中のサーブ回数は必ず100回以内です。
こういうものです。
576:デフォルトの名無しさん
09/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
09/04/03 15:05:12
>>572
ありがとうございましたm(_ _)m
578:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/04 14:01:10
>>578
スレを勃てるまでもないC/C++の質問はここで 8
スレリンク(tech板:489番)
489 名前:デフォルトの名無しさん[sage] 投稿日:2009/03/23(月) 09:24:50
char hoge[4] = "ABCD"; // これがエラーになるかどうか
580:デフォルトの名無しさん
09/04/04 14:40:46
なそなぞではなく、C++ 優位
int main(void)
{
char data;
char pointer = &data;
pointer = &data;
}
581:デフォルトの名無しさん
09/04/04 14:47:29
>>578
関数プロトタイプのない関数の呼び出し
void* からの暗黙のポインタ変換
582:デフォルトの名無しさん
09/04/04 15:40:42
[1] 授業単元:上級C++
[2] 問題文:URLリンク(www.dotup.org)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語: C++
[4] 期限:4月6日
[5] その他の制限:
初回の宿題から難しく全く理解出来ないのでよろしくお願いします
サンプルコードを使って書くのか、単純にこれは参考に使うものなのかすらわかっていませんがよろしくおねがいします
583:578
09/04/04 16:21:13
>>579, 580, 581
ありがとうございました
584:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/04 16:43:58
>>584
URLリンク(www.geocities.jp)
586:デフォルトの名無しさん
09/04/04 20:17:52
>>582
使えってかいてあるからとりあえず使うだけのコード
URLリンク(kansai2channeler.hp.infoseek.co.jp)
587:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/05 00:55:26
>>586
助かりました!有り難うございました。
589:584
09/04/05 01:55:15
>>587
ありがとうございました!これから解読します
590:デフォルトの名無しさん
09/04/05 03:21:24
解読する価値ねーだろ
591:デフォルトの名無しさん
09/04/05 03:23:05
価値というか、問題文そのまま書き下しただけだな
592:デフォルトの名無しさん
09/04/05 03:29:26
お前引っこんでろ
593:デフォルトの名無しさん
09/04/05 03:33:04
>>589
あんまいじると可哀想だろ
そのへんでやめとけ
594:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/05 13:02:59
1,2,3,4に入る解答を教えて
597:デフォルトの名無しさん
09/04/05 13:13:16
>>595-596 3回もしなくても、1回で投稿できるだろう。
#include <string.h>
!fig
passCheck(buff)
!fig
598:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/05 13:26:16
>>598
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
#include <string.h>
cnt<=3 && flg==FALSE
passCheck(buff)
flg == 0
600:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/05 15:22:37
>>600
ぐぐれ
602:600
09/04/05 15:38:41
>>601
ぐぐると似た者はたくさんあるのですが制限事項を満たした者がありませんでした。
URLリンク(www.daniweb.com)
とかは6行目くらいから正三角形が崩れて来るし、最終的に微妙な三角形になるし、
というわけでよろしるおねがいします
603:デフォルトの名無しさん
09/04/05 16:53:55
あなたは、10とか1000の桁数偶数の場合は、5桁の中央にどう配置するのか?
604:デフォルトの名無しさん
09/04/05 17:36:04
_1_0_
10_00
605:デフォルトの名無しさん
09/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
09/04/06 00:52:27
↑こんな感じで表示出来ると助かるのですが
どなたかコンテナを使ったプログラムでお願い出来ないでしょうか
607:デフォルトの名無しさん
09/04/06 01:06:27
これって正三角形じゃなくて二等辺三角形だよな
608:デフォルトの名無しさん
09/04/06 01:16:04
教員の端末がプロポーショナルフォントだったら・・・
609:600
09/04/06 01:28:10
「正」じゃなくて二等辺でもたぶん大丈夫です
610:デフォルトの名無しさん
09/04/06 01:42:20
printf("%*d",WID,NUM);
WID 文字数の指定
NUM 値
611:デフォルトの名無しさん
09/04/06 01:43:05
C++でも書式の指定ができるものがあったような・・・
612:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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
09/04/06 02:27:33
毎行左端からスタートではない左辺と右辺の二等辺である三角形に出来ませんか?
(イメージ的に605みたいな)
616:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/06 02:35:52
__5__
_5_5_
_555_
55_55
55555
一応、骨格と部品は用意したんで
適当に加工してちょ
もっと綺麗に書けたらなぁw
618:デフォルトの名無しさん
09/04/06 03:51:43
>>600
URLリンク(kansai2channeler.hp.infoseek.co.jp)
619:600
09/04/06 04:00:09
>>618
完璧です。。ほんとに感謝です!
ありがとうございました!
620:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/06 09:30:13
くせぇくせぇ、後出し麻呂の臭いがぷんぷんすんぜ
こりゃ〜クソースだぁ〜クソースは消毒だぁ〜
623:デフォルトの名無しさん
09/04/06 09:38:04
g++ だと、void main はコンパイルエラーになる。
#define __max(a,b) a>b?a:b
どれだけ花がいいんだ。
624:デフォルトの名無しさん
09/04/06 10:31:46
URLリンク(www.dotup.org)
四つの引数をとるバージョンのaccumulateを使用して、26行目、27行目のtransformとaccumulate(三つの引数バージョン)
を合体するにはどうしたらいいですか?単純に繋いだらコンパイルエラーになりますた(28行目)
あっそれとinnerproductは使っちゃいけないみたいなのであくまでも4つの引数をとるaccumulateバージョンでお願いします
625:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/06 14:49:20
>>618 #define N 17 だと、なぜかダメ。
627:デフォルトの名無しさん
09/04/06 15:25:28
>>626
最大表示桁数が5桁を超えるからじゃないの?
628:デフォルトの名無しさん
09/04/06 15:28:48
>>578
new delete 等の C++ キーワードを変数名に
629:624
09/04/06 16:10:26
>>625
おぉ!すごいできました。
ありがとうございました。(^人^)感謝♪
630:569
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/04/08 20:05:04
[1] 授業単元: ファイルの入出力(fprintf文の高度な使用法)
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc )
[3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 来週の月曜日まで
[5] その他の制限: 特に無し
633:デフォルトの名無しさん
09/04/08 21:26:26
問題文正確か?
634:632
09/04/08 21:40:51
>>633
一応正確ですよ
よろしくお願い致します。
635:デフォルトの名無しさん
09/04/08 22:50:27
まだ4月初めなのにもう課題がでてるの?
どういう学校だろうか。
うちなんかこれから講義資料作りますよ。
自分が出した問題がここに出てくるかwktkしながら見ることにします。
636:632
09/04/08 23:12:35
>>635
専門学校ですのでカリキュラムがギュウギュウなんですよ
出来るようならお願い致します
637:デフォルトの名無しさん
09/04/08 23:15:23
いったい何のために専門学校に入ったの?
638:デフォルトの名無しさん
09/04/08 23:17:29
>>636
カリキュラムがギュウギュウって本当か?
卒業時にバブルソートがなんとかできるとかじゃないよな?
639: ◆zQ5xe/OcaA
09/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
09/04/08 23:21:05
>>637
プログラムの勉強をするためです
>>638
卒業時には立派なプログラマー予備軍?になってるだろうと先生から言われています
641:632
09/04/08 23:27:17
>>639
このままだとエラーが結構出ますがこれを参考にしろってことですね
ありがとうございます。やってみます
642:デフォルトの名無しさん
09/04/09 00:42:36
プログラムの勉強をするために専門学校に入って、ここで宿題解いてもらうのか。
とりあえずうちの会社には来ないでね。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5302日前に更新/195 KB
担当:undef