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

このエントリーをはてなブックマークに追加
952951:2007/05/25(金) 06:48:54
あー
returnがなにも返してない
一応修正しといて
953デフォルトの名無しさん:2007/05/25(金) 06:58:01
>>930
# include <stdio.h>
#define N 7
void swap(int *a, int *b){
  int c;
  c=*a;*a=*b;*b=c;
}
int main(void){
  int value[N][N]={{0}}, width[N], i, j;
  char tmp[20];
  // パスカルの三角形を計算する(左詰)
  for(i=0;i<N;i++){
    value[i][0]=1;
    for(j=1;j<=i;j++) value[i][j]=value[i-1][j-1]+value[i-1][j];
  }
  // パスカルの三角形を右詰にする
  for(i=0;i<N;i++)
    for(j=0;j<N/2;j++) swap(&value[i][j], &value[i][N-1-j]);
  // それぞれの項の表示に必要な幅を計算する
  for(i=0;i<N;i++) width[i]=sprintf(tmp, "%d", value[N-1][i]);
  // 表示
  for(i=0;i<N;i++){
    for(j=0;j<N;j++){
      if(value[i][j]!=0) printf(" %*d", width[j], value[i][j]);
      else printf(" %*s", width[j], "");
    }
    printf("\n");
  }
  return 0;
}
954デフォルトの名無しさん:2007/05/25(金) 07:06:03
955デフォルトの名無しさん:2007/05/25(金) 07:19:01
>>910

>>929
>>938
ありがとうございました!
956次スレテンプレ:2007/05/25(金) 08:29:48
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 87代目
http://pc11.2ch.net/test/read.cgi/tech/1179025919/
957デフォルトの名無しさん:2007/05/25(金) 08:34:42
そろそろ誰か、ありきたりなパターンな課題をまとめてくれYO!
言いだしっぺの法則はなしな。
958デフォルトの名無しさん:2007/05/25(金) 08:37:14
以前誰かがwiki作ったんじゃなかったっけか?
959デフォルトの名無しさん:2007/05/25(金) 08:38:40
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
以下のような括弧付き中記記法の数式を入力とし,次のようなプログラムを作成し,実行例を
示せ.
(((3 ∗ 2) − (4 ∗ (5 − 1))) ∗ (6 ∗ 8))
1. 後置記法(逆ポーランド記法,例は以下) を出力するプログラム.ただし,入力となる数字は一桁としてよい.
32 ∗ 451−∗−68 ∗ ∗
2. 計算結果を出力するプログラム.ただし,入力となる数字は一桁としてよい.
3. 2 の計算結果を出力するプログラムを拡張せよ.例えば入力の数字の桁数を増やす,前置記法も出力する,冗長なかっこがなくても計算できるようにするetc...

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007/05/26
[5] その他の制限: ポーランドまで
960デフォルトの名無しさん:2007/05/25(金) 08:40:37
>>958 性帝トーマス氏がウィッキーさんだったか忘れたがサイトを持っていたかと。
961デフォルトの名無しさん:2007/05/25(金) 08:44:26
>>1 のテンプレに…
962デフォルトの名無しさん:2007/05/25(金) 08:44:29
963デフォルトの名無しさん:2007/05/25(金) 08:53:55
そこはやめとけ
964デフォルトの名無しさん:2007/05/25(金) 08:58:18
>>957
>>958
すまん、一応ごく稀に更新はしているが、
あまり真剣にまとめてない・・・もっと努力する
965デフォルトの名無しさん:2007/05/25(金) 08:59:01
ファイルのダンプ松本追加しといて
966デフォルトの名無しさん:2007/05/25(金) 09:01:28
wikiなんだからできれば自分で追加して欲しい
967デフォルトの名無しさん:2007/05/25(金) 09:03:31
ウィッキーさんの編集はちと俺みたいな日本語の不自由な奴には向いていない orz
かといって英語が得意なわけでもない。けど、ソースをそのまま載せるのは簡単でそ?
968デフォルトの名無しさん:2007/05/25(金) 09:21:15
簡単だから自分で追加しろって話じゃないの?
969デフォルトの名無しさん:2007/05/25(金) 09:33:24
>>931
getline()は例題と同じもので。
#include <stdio.h>
#include <ctype.h>
int main(void)
{
  char line[0x2000];
  int i, len, state;
  enum { NONE = 0, IN_TAG = 1, IN_BLANK = 2 };
  while ((len = getline(line, sizeof line)) > 0) {
    for (i = 0; i < len; ++i) {
      unsigned char c = (unsigned char)line[i];
      if (state == IN_TAG) {
        if (c == '>') state = NONE;
      } else if (c == '<') {
        state = IN_TAG;
      } else if (isspace(c)) {
        if (state != IN_BLANK) putchar(c);
        state = IN_BLANK;
      } else {
        state = NONE;
        putchar(c);
      }
    }
  }
  return 0;
}
970デフォルトの名無しさん:2007/05/25(金) 10:52:19
>>967
wikiはsandboxとか適当な凍結されてないページを「編集」して、
その結果とレイアウト後のページを見比べれば、
大体何やれば表示できるか解る
あと大抵は文法説明のページが存在する

日本語不自由でもこの板に居る以上なんか言語使えるんだろ?
だったら問題ねーよw
971デフォルトの名無しさん:2007/05/25(金) 10:56:28
ちゅんごくごで朝鮮してにdか?
972908:2007/05/25(金) 12:23:38
>>909
お速い解答ありがとうございますm(_ _)m
973デフォルトの名無しさん:2007/05/25(金) 12:44:29
>>953
大変ありがたいんですが、swapを使わないで右詰にする方法はありますでしょうか?
974デフォルトの名無しさん:2007/05/25(金) 13:17:47
あります。自分で左側に空けるべき空白の個数を計算すればよろし。
975デフォルトの名無しさん:2007/05/25(金) 14:13:34
次スレ立てるよ。
976デフォルトの名無しさん:2007/05/25(金) 14:18:05
次スレ
C/C++の宿題を片付けます 88代目
ttp://pc11.2ch.net/test/read.cgi/tech/1180070116/
977デフォルトの名無しさん:2007/05/25(金) 17:13:01
>>976
次スレ立て乙
978デフォルトの名無しさん:2007/05/25(金) 18:49:47
>>974
理解できました。ありがとうございました
979和田っちあっちゃん:2007/05/25(金) 20:03:54
[1] 授業単元:コンピュータ基礎
[2] 問題文(含コード&リンク):
<条件>
・ビリヤード台がおいてある
・台の左下端の座標は(0,0)、右上端の座標は(2,1)とする
・位置(x0、y0)に手玉
・手玉の初速度(v0x,v0y)
  ・手玉の位置、初速度はscanfをつかって入力する
<問題>
・手玉はどこに衝突するか?
  ・衝突位置の座標を表示する
  ・ポケットにおちることは考えなくてもよい
  ・手玉の大きさ、摩擦等は考えない
  ・20回のバンクを考慮して21カ所解答
[3] 環境
C言語で
[4] 期限: [2007年6月1日まで]
[5] その他の制限: if,while,for構文まで

おねがいします。。
980デフォルトの名無しさん:2007/05/25(金) 20:42:26
>>979
マルチは良くない。
981デフォルトの名無しさん:2007/05/25(金) 20:43:17
マルチ死ねカス
982デフォルトの名無しさん:2007/05/25(金) 20:48:53
はわわ、死ねなんていくないです
983デフォルトの名無しさん:2007/05/25(金) 21:33:17
由真が一番だから、黙ってろ、この古典!
984デフォルトの名無しさん:2007/05/25(金) 22:22:19
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4060.txt
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 5月27日
[5] その他の制限: なし

よろしくお願いします。
985デフォルトの名無しさん:2007/05/25(金) 22:29:09
>>984
>そこでdata1〜6までのファイルを一度に読み込んで一括で結果を表示するものにしたいのです。
微妙に方向が間違ってる

今のmainを単なる「一つのファイルを読み込んで結果を得る関数」にして、
それを呼びだす上位の関数を作成し、これをmainにすればよい
全てのファイルについて、呼出と結果取得を行い、
この結果を表示すれば、「全ファイルを一度に読む」なんてしなくても、
現状の流用で解決可能だ
986デフォルトの名無しさん:2007/05/25(金) 23:13:43
>>979
完全弾性衝突?
987デフォルトの名無しさん:2007/05/26(土) 01:11:40
>>985
無事に解決しました。ありがとうございました。
988デフォルトの名無しさん:2007/05/26(土) 10:56:56
>>947はまだ提出してないのか?またつき返されたのか?
989デフォルトの名無しさん:2007/05/26(土) 11:53:19
まだ解答貰ってない奴居るか?ただし期限過ぎたものは除く。
スレが終る前に、未解決問題さがしてやろうと思ったけど
探すのマンドクセ〜
990デフォルトの名無しさん:2007/05/26(土) 12:30:19
未解決のを拾ってみた。
>>16 >>711 >>844 >>887 >>959 >>979
991デフォルトの名無しさん:2007/05/26(土) 12:33:50
>>990
>>887は次スレで解決してるみたいだな
992デフォルトの名無しさん:2007/05/26(土) 12:42:03
844は直後に解決してるじゃねーか
993デフォルトの名無しさん:2007/05/26(土) 13:05:26
>>711
#include<stdio.h>
double f_internal(int a, int b, int c, double x, int is_init){
    static int sa, sb, sc; // a, b, c を外部変数にするべきかな?
    if(is_init){sa=a;sb=b;sc=c;}
    return sa*x*x+sb*x+sc;
}
void f_init(int a, int b, int c){f_internal(a, b, c, 0, 1);}
double f(double x){return f_internal(0, 0, 0, x, 0);}
int main(void){
    int a, b, c;
    double x1, x2, xx, xmin, xmax, ymin, ymax;
    printf("\nInput value of a, b, c : ");
    scanf("%d %d %d", &a, &b, &c);
    printf("\nInput value of x1, x2 : ");
    scanf("%lf %lf", &x1, &x2);
    if(x1>x2){xx=x1;x1=x2;x2=xx;}
    f_init(a, b, c);
    xx=(a!=0)?(double)-b/(2*a):x1; // y'=2*a*x+b -> x=-b/(2*a) の時,極値をとる
    if(xx<x1) xx=x1;
    if(xx>x2) xx=x2;
    xmax=xmin=x1;
    ymax=ymin=f(x1);
    if(ymax<f(xx)){ymax=f(xx);xmax=xx;}
    if(ymin>f(xx)){ymin=f(xx);xmin=xx;}
    if(ymax<f(x2)){ymax=f(x2);xmax=x2;}
    if(ymin>f(x2)){ymin=f(x2);xmin=x2;}
    printf("maximum : x=%g y=%g\n", xmax, ymax);
    printf("minimum : x=%g y=%g\n", xmin, ymin);
    return 0;
}
994デフォルトの名無しさん:2007/05/26(土) 16:27:34
>>16
もうダメポ、cygwinがご機嫌斜めだし、難しくて頭が爆発しそう。
乗算合同法のパラメタとか適当、未完成だが勿体無いので上げとく
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4068.c

>>990
Thx
995tomcat:2007/05/26(土) 17:00:47
下記の関数は、ある条件下において不明瞭な値を返す場合がある。
*それはどの様な条件なのか????????


int func_A(int x, int a[], unsigned int c, unsigned int d)
{
unsigned int m;

while (c < d) {
m = (c + d) >> 1;
if (a[m] >= x) d = m;
else c = m + 1;
}
if (a[c] == x) return c;
return 0;
}
996デフォルトの名無しさん:2007/05/26(土) 17:40:16
>>16
問題の意味を取り違えてるかも知れないが一応うp
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4070.c
997デフォルトの名無しさん:2007/05/26(土) 17:54:01
>>995
何を不明瞭な値というのかが分からないんだが…

「二分探索がうまくいかないよー」というのであれば
検索元のデータがソート済みで無いか
引数のcまたはdが配列の範囲を超えてるとか
そういうこと?
998デフォルトの名無しさん:2007/05/26(土) 17:59:57
>>995
c==0 で x が見つからなかった時
0 を返すから見つかったのかどうか分からないってこと?
999デフォルトの名無しさん:2007/05/26(土) 20:04:27
次スレ

C/C++の宿題を片付けます 88代目
http://pc11.2ch.net/test/read.cgi/tech/1180070116/
1000デフォルトの名無しさん:2007/05/26(土) 21:04:18
千!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。