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

488 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 09:42:53 ]
>>476>>484
おいキャストするな。
c_strを元にコピーすることを薦める次第だ。

489 名前:デフォルトの名無しさん [2009/03/25(水) 20:07:37 ]


490 名前:デフォルトの名無しさん [2009/03/27(金) 04:12:17 ]
初歩的な問題だと思いますが、勉強し始めでわかりません。どうかよろしくお願いします

下記のソースを記述しコンパイルと実行を確認しなさい
/** データ型 */
#include<stdio.h>

void printDataType1();

main(){
printDataType1();
}
/**
* データ型の表示
* 単純に表示
*/
void printDataType1(){
int intData = 10;


491 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 04:21:13 ]
ごめん、難解すぎる

492 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:04:15 ]
printf("dec %d\n", intData);
printf("hex %x\n", intData);
printf("oct %o\n", intData);
}
と、後ろに追加する。コンパイルのしかたは、調べれば分かるので省略する。

493 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 08:09:41 ]
ソースの書き方とコンパイルの仕方を質問しているんじゃないかとエスパーする
どっちにしてもこれ以上のエスパーは無理だが

494 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 13:20:00 ]
一番下に"}"を付けるだけでいいんじゃね

495 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 15:59:32 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):ファイル出力で二つ以上の関数が同じファイルに続けて出力させるにはどうすればいいですか?
毎回file openさせてやってみたら、途中まで上書きになってしまいました。
[3] 環境
 [3.1] OS:Win xp
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:

496 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:11:04 ]
>>495
二回目はアペンドモード"a"で開くしかないよ
ただしXPならMS-DOSの系統なのでテキストモードだと
EOFが最後に入っているのでこれを1バイト切り詰めてから
アペンドしないといけない



497 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:13:52 ]
「途中まで上書き」と言ってるから、俺はfseekで解決と予測。

498 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:19:26 ]
>>495
ファイルポインタを関数で使いまわす
FILE* fp = fopen("***", "w");
func1(fp);
func2(fp);
fclose(fp);

499 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 16:25:10 ]
>>498
それあかんよ
FILE構造体にはデータも書き込むので

func1(&fp);
func2(&fp);

としておき

受ける側は

func1(FILE **fp)
func2(FILE **fp)

としないといけない
実際に実験してみればわかる

500 名前:495 mailto:sage [2009/03/27(金) 16:26:59 ]
みなさんありがとうございます。
やってみます。

501 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:40:12 ]
>>499
どういう実験か書いてみそ

502 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:56:08 ]
実験してないし流れも読めないが、
>>499の主張は間違っている気がする。
だって、FILE* fpなんでしょ?
> FILE構造体にはデータも書き込むので
FILEへのポインタの値を変えたりするつもりは無いはず。

503 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:00:09 ]
C++のifstreamとかofstreamのようなオブジェクトなら
リファレンス渡しまたはアドレス渡しをしなければいけないのは
わかるが、CのFILE*ってポインタなんだからそのまま渡していいと思う

504 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:14:38 ]
>>499 への容赦ない怒涛のツッコミにワロタww
本人ではないが、func1() や func2() の中で fopen する場合と
勘違いしたんじゃないか、とフォローしてみる。

505 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:53:06 ]
void foo(FILE *fp) {
fputs("foo\n", fp);
}
void bar(FILE *fp) {
fputs("bar\n", fp);
}
int main() {
FILE *fp = fopen("124-495.txt", "w");
foo(fp);
bar(fp);
fclose(fp);
return 0;
}
出力結果は
foo
bar

506 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:31:46 ]
>>504
>>498にfopenも書いてあるからその勘違いは無いんじゃね?



507 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:57:18 ]
499> それあかんよ
あかんって何が?

508 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 02:35:51 ]
992 名前:デフォルトの名無しさん 投稿日:2009/03/26(木) 23:10:42
世界的には日本語を使う人よりも英語を使う人の方が多い

前スレのこいつが必死なんだろ。日本語よりと比較したら間違いでもないんだが。

509 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 10:52:35 ]
誤爆としてもワロた

510 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:28:32 ]
>>498
そらあかんわ
FILE *fp = fopen("***", "w");

FILE* fp, fl; は同じように見えるが2つの変数は型が違う。
FILE *fp, *fl; と書く。Javaではない。

511 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 12:33:19 ]
だれか>>501を翻訳してくれ

512 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 13:38:41 ]
どういう実験か書いてみてください

513 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 14:01:25 ]
ところでこのゴミ、
どこに捨てたらいい?
   ∧_∧
  (´∀`)
  /⌒  丶
 / /   \_M
( /|  |\__E)
 \/  | / \
  (  イ / ウワァァン丶
  | /|ハ( `Д)ノ|
  | / / 丶(>>510) ノ
  ( 丿丿   ̄ ̄ ̄
  |||
  |||
  / ト、\
 /_ノ  ̄

514 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 17:50:42 ]
>>513
pc12.2ch.net/test/read.cgi/tech/1179394713/
pc12.2ch.net/test/read.cgi/tech/1179424842/

515 名前:デフォルトの名無しさん [2009/03/29(日) 15:19:16 ]
初めまして。
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlに記載されている2006年の本選問題の
問7のヘビの問題と問8のバス路線の問題をお願いします。
お手数だと思いますが、よろしくお願いします。
単元;c言語
期限なんですがなるべく早めによろしくお願いいたします。
環境;os xp
コンパイル名;gcc



516 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:40:40 ]
>>515
C/C++の宿題片付けます 122代目
pc11.2ch.net/test/read.cgi/tech/1232029287/449

ヘビもあったな



517 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 15:58:17 ]
ヘビのは正規表現使えたらすごく楽なんだけどな…。

518 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 16:09:07 ]
問8
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8863.txt
どこが仕様を満たしてない!

519 名前:デフォルトの名無しさん [2009/03/29(日) 16:19:50 ]
いろいろ回答ありがとうございます。
問題文通りでお願いします。




520 名前:デフォルトの名無しさん [2009/03/29(日) 16:36:39 ]
すいません。追加なんですけど、2007年度の本選の問9、12をよろしくお願いします。
問題通りの出力、入力でお願いします。
後、先程の問題の回答も引き続きお願いします。
もし、何か質問で至らない点があったらこちらですぐに回答します。

521 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 17:19:24 ]
問題文どおりか、ありがと、蛇の問題は考えておく。ところで、問題のタイトルは
問題9 円に内接する多角形の面積
問題12 ブラックジャック・ゲーム

522 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:08:07 ]
>>520
#include <stdio.h>
int getLine(int*a){
int temp = 0;int i=0;int c;
while(c = getchar(),c!='\n'){
if(c==' '){
a[i]=temp<10?temp:10;i++;temp = 0;
}else{
temp*=10;temp+=c-'0';
}
}
a[i]=temp<10?temp:10;i++;
return i;
}
int main(){
int a[21];int len;
while(len = getLine(a),a[0]!=0){
int sum = 0;int cnt = 0;
for(int i=0;i<len;i++){
if(a[i]==1)cnt++;
sum+=a[i];
}
for(int i=0;i<cnt;i++){
if(sum+10<=21)sum+=10;
}
if(sum>21)sum=0;
printf("%d\n",sum);
}
return 0;
}

523 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 18:37:10 ]
>>515 ヘビ
#include<stdio.h>
#include<string.h>

int is_typeA(const char *p){
int i, j;
if(strncmp(p, ">'", 2)!=0) return 0;
for(i=0,p+=2;*p=='=';i++,p++);
if(i<1 || *p++!='#') return 0;
for(j=0;j<i && *p=='=';j++,p++);
return !(j<i || strcmp(p, "~"));
}

int is_typeB(const char *p){
int i;
if(strncmp(p, ">^", 2)!=0) return 0;
for(i=0;strncmp(p+=2, "Q=", 2)==0;i++);
return !(i<1 || strcmp(p, "~~"));
}

int main(void){
char buf[100+1];
int n=0, i;
scanf("%d\n", &n);
for(i=0;i<n && gets(buf);i++){ // gets!
if(is_typeA(buf)) printf("A\n");
else if(is_typeB(buf)) printf("B\n");
else printf("NA\n");
}
return 0;
}

524 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:21:57 ]
>>520 あってるかどうか・・・
//09 gcc -std=gnu99 main.c -o main.exe
#include <stdio.h>
#include <math.h>
double s(int n){
double sum = 0;
for(int i=0;i<n;i++){
int in=0;
scanf("%d",&in);
double theta =3.14 * (90-(in/2))/180;
sum += sin(theta)*cos(theta)*sin(theta)*cos(theta);
}
return sum;
}
int main(){
int n;
while(scanf("%d",&n),n!=0){
double sum1 = s(n);
scanf("%d",&n);
double sum2 = s(n);
//
if(sum1==sum2){
printf("0\n");
}else if(sum1>sum2){
printf("1\n");
}else{
printf("2\n");
}
}
return 0;
}

525 名前:521 mailto:sage [2009/03/29(日) 19:40:11 ]
>>523
短いコード!しかし、gets() を使うから、100文字を超えても一致してしまう。
バスの再掲
#include <stdio.h>
void myfunc(int, int);
int main(){
  int x, y;
  scanf("%d %d", &x, &y);
  myfunc(x, y);
}
void myfunc(int x, int y){
  int t, i;
  t = 1;
  i = x;
  if(i <= 5)
    t *= (x < y)? 1: -1;
  putchar(i+'0');
  while(i != y){
    i += t;
    if(i == 0)
      t *= -1;
    if(i == 10){
      i = 5;
      t *= -1;
    }
    putchar(' ');
    putchar(i+'0');
  }
  putchar('\n');
}

526 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:43:02 ]
あみだくじを自動的に生成するプログラムをお願いします。

参加者の人数と当たりの数を入力し、当たり部分には◎ハズレには×
となるようにお願いします。



527 名前:デフォルトの名無しさん [2009/03/29(日) 19:43:46 ]
本当に助かります。ありがとうございます
申し訳ないですけど2007年本選の6と7、2007年予選10番もお願いします

528 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 19:54:30 ]
ってかもう全部の問題をお願いしますね

529 名前:デフォルトの名無しさん [2009/03/29(日) 20:02:14 ]
527番の者ですが
528番の回答は自分の発言ではありません

530 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:10:49 ]
>>529
言ってることは同じ

531 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:13:45 ]
後からちょこちょこ追加されるよりは>>528のほうがマシ

532 名前:デフォルトの名無しさん [2009/03/29(日) 20:23:27 ]
すいませんでした。しかし期限が詰まっているもので527番の回答なんですが、引き続き回答のほう
よろしくお願いします。今回はちょこちょこと付け加えてしまい迷惑をかけました。

533 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:28:01 ]
>>532
過去ログくらい読めカス

534 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:29:02 ]
解き方問題文中で丁寧に説明してるのになんで解けないのか理解できない

535 名前:527 mailto:sage [2009/03/29(日) 20:30:04 ]
お前らガタガタ抜かさんととっとと答えんかい!!

536 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 20:38:01 ]
527さん、偽者が現れ始めているのでfusianasanやった方がいいですよ



537 名前:IP address mailto:sage [2009/03/29(日) 20:40:22 ]
問題10 マトリョーシカ
問題6 有料道路料金
問題7 おはじき取り

>>蛇の模様
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9003.txt

538 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 21:21:48 ]
>>524
theta=3.14*in/180.0;
sum+=0.5*sin(theta);

じゃないかな?


539 名前:IP address mailto:sage [2009/03/29(日) 21:42:56 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
  int i, r, atari, deta=0, hito, honn;

  atari = 1; // printf("あたりの本数を入力:%d\n", atari);
  printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito);
  printf("あみだくじの本数を入力:"); scanf("%d", &honn);
  if(honn < atari) {
    printf("あたりの数が多すぎます\n"); return 2;
  }
  if(honn < hito) {
    printf("くじの本数が足りません\n"); return 2;
  }
  srand(time(NULL));
  for(i=1; i<=hito; i++) {
    r = rand();
// printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn );
    if(r/(RAND_MAX/honn) >= 0 && r/(RAND_MAX/honn) <= atari-1) {
      printf("%d 番の人◎\n", i);
      atari--; honn--;
    } else {
      printf("%d 番の人×\n", i);
      honn--;
    }
  }
  return 0;
}

540 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:07:53 ]
>>527 2007年本選の6 有料道路料金
#include<stdio.h>
void swap(int *a, int *b){int c;c=*a;*a=*b;*b=c;}
int get_distance(int from, int to){
static const int distance[]={0, 6, 13, 18, 23, 43, 58};
if(from>to) swap(&from, &to);
return distance[to-1]-distance[from-1];
}
int get_normal_price(int from, int to){
static const int price[][6]={
{ 300}, { 500, 350}, { 600, 450, 250}, { 700, 600, 400, 250},
{1350,1150,1000, 850, 600}, {1650,1500,1350,1300,1150, 500} };
if(from>to) swap(&from, &to);
return price[to-2][from-1];
}
int is_special_time(int hour, int min){
return (1730<=(hour*100+min) && (hour*100+min)<=1930);
}
int get_price(int from_ic, int from_hour, int from_min, int to_ic, int to_hour, int to_min){
int price=get_normal_price(from_ic, to_ic);
if(get_distance(from_ic, to_ic)<=40 && (is_special_time(from_hour, from_min) || is_special_time(to_hour, to_min))) price=((price/2)+50-1)/50*50;
return price;
}
int main(void){
int from_ic=0, from_hour, from_min, to_ic, to_hour, to_min;
for(;;from_ic=0){
scanf("%d %d %d %d %d %d", &from_ic, &from_hour, &from_min, &to_ic, &to_hour, &to_min);
if(from_ic==0) break;
printf("%d\n", get_price(from_ic, from_hour, from_min, to_ic, to_hour, to_min));
}
return 0;
}

541 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:25:36 ]
>>527 2007年本選の7 おはじき取り
#include<stdio.h>

int main(void){
int strategy_size, strategy[25];
int i, j, rest;

for(;;){
strategy_size=0;
scanf("%d", &strategy_size);
if(strategy_size<1) break;
for(i=0;i<strategy_size;i++) scanf("%d", &strategy[i]);
for(rest=32,j=0;rest>0;j++)
{
rest-=(rest-1)%5;
printf("%d\n", rest);
rest-=strategy[j%strategy_size];
if(rest<0) rest=0;
printf("%d\n", rest);
}
}
return 0;
}

542 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:43:14 ]
int main(void)
{ return 0; }

543 名前:デフォルトの名無しさん [2009/03/29(日) 23:01:52 ]
回答ありがとうございました。

544 名前:IP address mailto:sage [2009/03/30(月) 00:05:18 ]
>>539 問題文の読み違いがあったので、修正します。
printf("あたりの本数を入力:", atari); scanf("%d", &atari);
printf("あみだくじに参加する人数を入力:"); scanf("%d", &hito);
honn = hito; // printf("あみだくじの本数を入力:%d\n", honn);
if(honn < atari) {
 :
// printf("%d/%d=%d 残り%d本\n", r, RAND_MAX/honn, r/(RAND_MAX/honn), honn );
if(r/(RAND_MAX/honn) <= atari-1) {

545 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/03/30(月) 21:40:37 ]
[1] 授業単元:C言語
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9005.txt
[3] 環境
 [3.1]OS:Windows
 [3.2] VC6.0
 [3.3]言語:C言語
[4]期限:4月1日
[5]その他の制限:ユーザ定義関数を利用する

どなたかよろしくお願いします。



547 名前:デフォルトの名無しさん [2009/03/30(月) 21:47:58 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlにある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc 

548 名前:デフォルトの名無しさん [2009/03/30(月) 21:49:07 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlにある2008年本選の
問1の三目並べの答えお願いします。
c言語 コンパイル gcc 

549 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん [2009/03/30(月) 22:53:30 ]
www.pref.fukushima.jp/pc-concours/2009/03/03_reidai.htmlに記載されている
2007年の本選の問12 ブラックジャックの問題よろしくお願いします。
あと、問題を解く上でどのようなアルゴリズム、データを利用したか。と何の
処理を関数としたのかを付け加えてお手数だと思いますがよろしくお願いします。
OS xp
C言語
コンパイル gcc


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
助かりました!有り難うございました。






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

前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