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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 06:27:59 ]
あなたが解けない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++の宿題片付けます 136代目
pc12.2ch.net/test/read.cgi/tech/1274827528/

45 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:08:59 ]
復号したらそのままコンパイル出来るものを、添付書類無し
で再頒布するのはGPLに抵触しかねないから、
コメントとか外したりいろいろ細工してる可能性もあるだろ

46 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:15:28 ]
>>44
ああー、なるほど。そういう理由だったのか。スマソ。

47 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:57:17 ]
この行より前は >>41 と一致する
YCvXRg("クォートされた部分も暗号化対象外\n",wYkyL);

48 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 21:58:17 ]
>>45
この場合頒布してるのは質問者?回答者?

49 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:12:23 ]
該当箇所に printf("", inode); を挿入したら完全に一致した

50 名前:デフォルトの名無しさん [2010/06/18(金) 22:38:46 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):図1のプログラムを参考に、文字配列とアドレスの関係、すなわち、
char str[ ] = “abc”とアドレスの関係を調べよ。特にアドレスが幾つずつ変化するかを理解すること。
尚、char型変数へのポインタ変数は、char *ptr;になることを注意すること。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる
図1
#include<stdio.h>

int main(void){

int a[4];
int *p;
p = &a[0];
for(i=0;i<4;i++){
a[i] = i;
}
for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}



51 名前:デフォルトの名無しさん [2010/06/18(金) 22:40:07 ]
>>50
図1の実行例

a[0]=0
p = 0x22ccd0
*p = 0

a[1]=1
p = 0x22ccd4
*p = 2

a[2]=2
p = 0x22ccd8
*p = 2

a[3]=3
p = 0x22ccdc
*p = 3

つまり、int型では4byteずつ変化する。これをchar型は1byteずつ変化するということを示しなさいということです。

52 名前:デフォルトの名無しさん mailto:sage [2010/06/18(金) 22:43:49 ]
>>51
charに変えるのが出来ないっていってますか?

53 名前:デフォルトの名無しさん [2010/06/18(金) 22:50:29 ]
>>52
そうです。
それから、もうひとつ
図1をdouble型に変えるのもお願いします。



54 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 01:54:57 ]
こういうこと?
#include <stdio.h>
int main(void) {
char str[] = "abc", *ptr;
int i;

ptr = &str[0];

for(i = 0; str[i]; i++, ptr++) {
printf("str[%d] = %c\n", i, str[i]);
printf("ptr = %p\n", ptr);
printf("*ptr = %c\n\n", *ptr);
}

return 0;
}

55 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 02:49:18 ]

[1] 授業単元:
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10719.zip
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: ([2010年06月20日23:59まで]
[5] その他の制限:


56 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 03:00:29 ]
>>55
#include <stdlib.h>
#include <time.h>

void random_format(int num_data, int array[])
{
int i;
srand(time(NULL));
for(i = 0; i < num_data; i++)
array[i] = (int)( (double)rand() / RAND_MAX * 100.0 );
}

57 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 05:15:59 ]
>>55
0〜99の数値が全て1回ずつ必要なら、以下でok。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NMAX 100

int main(void)
{
    int i, a[NMAX], tmp, w;

    srand(time(NULL));
    for (i = 0; i < NMAX; i++)
a[i] = i;

    for (i = 0; i < NMAX; i++) {
w = rand() % (NMAX - i) + i;
tmp = a[w];
a[w] = a[i];
a[i] = tmp;
    }

    return 0;
}

58 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 05:33:12 ]
>11
>min = 10000000;
10000000って数字はどっから出てきたの?

59 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 06:19:17 ]
>>58
有り得ないほどの大きい数字なら何でも良かったんじゃないかな?
min = num/coins[0];
でいいと思う。

60 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:42:30 ]
>>28
バージョンは分からんが、Linuxカーネルのfs/buffer.cをエンコードしてるのか?

61 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:43:06 ]
for(i = 0; i < NMAX; i++) {
w = rand() % (i + 1);
a[i] = a[w];
a[w] = i;
}

62 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 12:48:14 ]
>>20
一応MFCでデコードしながら、分からなくなったらユーザに聞いてくるアプリにしてみた。
コメントとかリテラルとか、まだ一回も動いてないコードとか有るし、
デコードした文字列をエディットに出力して、ユーザが判断する材料にさせてるんだが、
うまくエディットコントロールスクロールさせられなくて面倒くさくなって放置してる。
(メインスレッドでループしながらエディットに出力して、且つスクロールさせようってのがダメなんだろうが。。)
需要があればうpします。
一旦入力した候補はhistファイルに取っておくので、これを使って地道にやってけばいずれデコード出来ると思う。

63 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 16:02:35 ]
>>20 のエンコード部分
typedef unsigned char uchar;

void encode_output(int moji)
{
static int is_first=1;
static uchar next_table[256], table[256];

if(is_first)
{
int i;

for(i=0;i<256;i++) next_table[i]=table[i]=i;

for(i='A';i<'Z';i++) next_table[i]=i+1;
next_table[i]='a';
for(i='a';i<'z';i++) next_table[i]=i+1;
next_table[i]='A';
for(i='0';i<'9';i++) next_table[i]=i+1;
next_table[i]='0';
is_first=0;
}

putchar(table[moji]);
table[moji]=next_table[table[moji]];
}



64 名前:デフォルトの名無しさん [2010/06/19(土) 16:26:50 ]
>>54
ありがとうございました。

65 名前:デフォルトの名無しさん [2010/06/19(土) 16:49:54 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):以下のプログラムをdouble型にせよ。
尚、double型変数へのポインタ変数は、double *ptr;になることに注意すること。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる

#include<stdio.h>
int main(void){
int a[4];
int *p;
p = &a[0];

for(i=0;i<4;i++){
a[i] = i;
}

for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}

実行例は>>51と同じです


66 名前:023 mailto:sage [2010/06/19(土) 17:08:52 ]
#include <stdio.h>
void encode_output(int moji);
int main(void){  int c, slash = 0;
while((c = getchar()) != EOF) {
  if(c>='a' && c<='z' || c>='A' && c<='Z' || c>='0' && c<='9'){
    if(slash){ /* /X は、同じ文字で2回出力 */
      encode_output(c); slash = 0; }
    encode_output(c);
  } else if(c == '*') {
    if(slash){ /* /*のコメントは読み飛ばす */
      do { while(getchar() != '*'); } while(getchar() != '/');
      slash = 0;
    } else putchar(c);
  } else if(c == '/') {
    if(slash) { /* // comment は、そのまま出力 */
      putchar(c);
      do putchar(c); while((c = getchar()) != '\n');
      putchar(c);
      slash = 0;
    } else slash = 1;
  } else if(c == '"') { /* "string" は、そのまま出力 */
    if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
    do {
      if(c == '/') {slash = 1; continue;}
      if(slash) {slash = 0; putchar(c);}
      putchar(c);
    } while((c = getchar()) != '"');
    putchar(c);
  } else {
    if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
    putchar(c); }
}}

67 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:05:22 ]
>>5
亀ですがこういうのはどうなんでしょう?
#include <stdio.h>
int coin(int m,int i,int sum)
{ int a[]={1,5,8,10,15};
sum=sum+m/a[i];m=m%a[i];
if (m==0)return sum;
if (!i){sum+=m;return sum;}
if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
return coin(m,i-1,sum);}
int main(void){
int x;
printf("金額を入力してください:");
scanf("%d",&x);
printf("最小枚数は%d枚です。\n",coin(x,4,0));
return 0;}

68 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:15:54 ]
>>62
見せて見せて

69 名前:62 mailto:sage [2010/06/19(土) 21:54:03 ]
>>68
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10721.zip
うpしました。

input.txtに暗号化された内容をおいておきます。
hist.txtは履歴の入力。実行するとhistout.txtができるので、それをhist.txtに書き換えればおk。
deb.txtにデバッグログ
dec.txtに復号化したもの
enc.txtは今のところ何も出ない。

です。
一応7行目くらいまでやって放置してます。
バグもいっぱいあると思うんで、実行しながら候補を入れていき、バグ取りしてけば・・というレベルです。

70 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 21:55:47 ]
>>67
興味深いな。
> if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
3,4になるプロセスが判らない。

71 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 22:22:38 ]
特定の組み合わせ限定だからだろ

72 名前:デフォルトの名無しさん [2010/06/19(土) 22:56:00 ]
>>65です
誰かよろしくお願いします。

73 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:02:49 ]
>>70
最初の3,4以外の、8以上のm%5で3,4になる数字は最小枚数を求める時必ず8が入るので
15と10で割り過ぎないように先に8で割るようにしました。




74 名前:73 mailto:sage [2010/06/19(土) 23:07:36 ]
×先に8で割るように ○後で8で割れるように

75 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 23:12:30 ]
>>65
#include<stdio.h>
int main(void){
int i;
double a[4];
double *p;
p = a;

for(i = 0; i < 4; i++){
a[i] = i;
}

for(i = 0; i < 4; i++, p++){
printf("a[%d]=%f\n", i, a[i]);
printf("p = %p\n", p);
printf("*p = %f\n\n", *p);
}
return 0;
}


76 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 01:10:03 ]
>>73
なるほど。
オーソドックスな解法は、>>17のようなDPだろうけど、>>67でも出来る、
という事は、条件付きで数学的に等価なのかもな。

77 名前:デフォルトの名無しさん [2010/06/20(日) 02:55:07 ]
>>75
ありがとうございました

78 名前:デフォルトの名無しさん [2010/06/20(日) 02:57:10 ]
[1] 授業単元:オブジェクトプログラミング
[2] 問題文(含コード&リンク):以下のプログラムをdouble型について調べるプログラムを作成せよ。
尚、単純ポインタが指す値をprintf(“%p) =0x%x\n”, ptr_d, *ptr_d);
を用いて表示すると図1のような実行結果を得るが、図2のように表示をするようにしなさい。
[3] 環境
 [3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年6月20日[5] その他の制限:int main(void){から始まる


79 名前:デフォルトの名無しさん [2010/06/20(日) 02:58:58 ]
#include <stdio.h>
int main(void){
char src[32], dst[32];
char *ptr_c;
int *ptr_i, *ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
//配列の出力
for(i=0; i<32; i++){
printf("dst[%d]=0x%x\n", i, dst[i]);
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_c = src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<32; i++){
printf("%p) = 0x%x\n", ptr_c, *ptr_c);
ptr_c++;
  }
}


80 名前:デフォルトの名無しさん [2010/06/20(日) 03:00:45 ]
図1
0x22ccc0) = 0.3020100
0x22ccc8) = 0.b0a0306
0x22ccd0) = 0.13121110
0x22ccd8) = 0.1b1a1918

図2
ptc_d:0x22ccc0) = 0.3020100
   0x22ccc4) = 0.7060504
ptr_d:0x22ccc8) = 0.b0a0306
 0x22cccc) = 0.f0e0d0e
ptr_d:0x22ccd0) = 0.13121110
0x22ccd4) = 0.17161514
ptr_d:0x22ccd8) = 0.1b1a1918
0x22ccdc) = 0.1f1e1d1c


81 名前:023 mailto:sage [2010/06/20(日) 13:34:27 ]
>>069
VS2005で動かしてみました。
ゲームとしては7行くらいでゲームオーバーでもかまいません。
ただ、/を入れた後の文字選択が2回必要なのはなぜでしょうか。

82 名前:デフォルトの名無しさん [2010/06/20(日) 14:57:39 ]
>>78です
どなたか、よろしくお願いします。


83 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 15:06:53 ]
以前のヤツからそうなんだけど、書いてあるコード実行しても図の例と同じにはならないんだよな



84 名前:デフォルトの名無しさん [2010/06/20(日) 15:49:25 ]
すみません。説明不足でした。
ソースコードは、int型で書かれています。これを、double型に書き換えていただきたいんです。
そして、double型に書き換えたものを実行すると、図2のように表示せよという問題です。
よろしくお願いします。


85 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 16:16:30 ]
>>78
#include<stdio.h>
#define SIZE 4
int main(void){
int i;
double src[SIZE], dst[SIZE];
double *ptr_d;
// データ格納?
for (i = 0; i < SIZE; i++) {
src[i] = i;
dst[i] = src[i];
}
// 配列の内容を出力
for (i = 0; i < SIZE; i++) {
printf("%p) = %f\n", &dst[i], dst[i]);
}
// ポインタと配列を使って内容を出力
for (ptr_d = src, i = 0; i < SIZE; ptr_d++, i++) {
printf("ptr_d :%p) = %f\n", ptr_d, *ptr_d);
printf("src[%d]:%p) = %f\n", i, &src[i], src[i]);
}
return 0;
}

すいません。
問題のゴールが明確には分からなかったので適当に書いてます。
大枠はこれでいいと思うので書き換えて使ってください。

86 名前:62 mailto:sage [2010/06/20(日) 16:49:11 ]
>>81
入力しても時々無視されちゃってます。
バグですが、もう一度入れれば入るみたいなんで、無視しちゃってください。
(直して^^;)

87 名前:023 mailto:sage [2010/06/20(日) 17:16:35 ]
int ch, ch2, ch3;
bool slash = false;
/****/
try{
/****/
while(1){
  ch = skip();
  if(ch == EOF) break;
  plane_put(ch);
  kouhosu = 0;
  bslash = 0;
  ch2 = fgetc(fp1);
  if(!kigou(ch2) && (ch2 == ch + 1)){
    bslash=1;}
  ungetc(ch2, fp1);
  if(slash) { // add 2010.6.20
    ch = ch3;
    slash = false;
  }else{
    ch = fukugou(ch);}
  dec_put(ch);
  fputc(ch, fp3);
  if(ch=='/'){
    ch3 = fukugou(ch2 - 1);
    angou(ch3);
    slash = true; // add 2010.6.20
  }else{
    deb("angou=%c\n",ch);
    angou(ch);
  }
}}

88 名前:62 mailto:sage [2010/06/20(日) 18:08:56 ]
>>87
ありがとうございます!!

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10722.zip
に更新しました。
スクロール出来なくて今何をデコードしてるのか分からなくなってた問題は
別スレッドのポップアップウインドにしたので解消しました。


なんか'/'の扱いが難しいすね。よく考えると、'/'と見なしたら、その次の文字を-1して復号化するんだけど、
その復号化において、さらに、'/'と見なすべき場合は再帰でやらないと出来ないんじゃないだろうか。。という気がしてきた。

89 名前:62 mailto:sage [2010/06/20(日) 18:31:48 ]
っていうか、ほぼ毎回、候補が複数出てくる。
これほとんど無理だよねw

90 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:24:13 ]
?1から10までの積を計算するプログラムを書け。このとき,whileループを用いて、
画面に 1*2*3*・・・・*10 = という風に表示されるようにすること。

期限は6/22までです。お願いします。

91 名前:デフォルトの名無しさん [2010/06/20(日) 20:24:33 ]
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)

I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)

ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。

この問題を解ける方教えていただけませんか?

92 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:35:12 ]
>>90
#include <stdio.h>
int main(void)
{
int i=10,sum=1;
while(i--)printf(i?"%d*":"%d=%d\n",i+1,sum*=(i+1));
return 0;
}

93 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:41:29 ]
>>1
>>1
大事なことなので2回言いました。最近守らないやつが多すぎる。



94 名前:デフォルトの名無しさん mailto:sage [2010/06/20(日) 20:44:42 ]
>>78
char src[32], dst[32];
int *ptr_i,*ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_d = (double *)src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<4; i++){
printf("ptc_d:%#6x) = 0.%x\n", ptr_d, *ptr_d);
ptr_i = (int *)ptr_d;
printf(" :%#6x) = 0.%x\n", (ptr_i+1), *(ptr_i+1));
ptr_d++;
}
図2 ptr_d:0x22ccc8) = 0.b0a0306 は>>79のソース内容から外れるので考慮していない

95 名前:91 [2010/06/20(日) 20:58:11 ]
[1] 授業単元:数値計算法
[2] 問題文(含コード&リンク):
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)

I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)

ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。
[3] 環境
 [3.1] OS:vista
[4] 期限: 無期限


96 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 05:37:05 ]
>>89
適当に選ぶと正解じゃない場合は常に行き詰まる模様

97 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 07:33:49 ]
エロゲの選択肢よりシビアだな

98 名前:023 mailto:sage [2010/06/21(月) 09:02:14 ]
decrypt 窓が、文字の無いところを表示するから、常に横スクロールが必要。

99 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 13:31:35 ]
>>95
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10726.txt

100 名前:87 の修正を修正 mailto:sage [2010/06/21(月) 16:05:27 ]
int ch, ch2, ch3;
bool slash = false;
/****/
try{
while(1){
  ch = skip();
  if(ch == EOF) break;
  plane_put(ch);
  scroll(IDC_EDIT3); // add 2010.6.21 他のscroll()呼び出しは削除
  kouhosu = 0;
  bslash = 0;
  ch2 = fgetc(fp1);
  if(!kigou(ch2) && (ch2 == ch + 1)){
    bslash=1;}
  ungetc(ch2, fp1);
  if(slash) { // add 2010.6.20
    ch = ch3;
    slash = false;
  }else{
    ch = fukugou(ch);}
  dec_put(ch);
  fputc(ch, fp3);
  if(ch=='/'){
    kouhosu = 0; // add 2010.6.10 候補を消す
    ch3 = fukugou(ch2 - 1);
    angou(ch3);
    slash = true; // add 2010.6.20
  }else{
    deb("angou=%c\n",ch);
    angou(ch);
  }
}}

101 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:08:25 ]
そろそろ別にスレでも作ってそっち行ってくんないかな

102 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:17:56 ]
>>99
間違ってるぞw

103 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:33:42 ]
>>102
本からの丸写しなんだが。間違ってる点があるなら指摘よろしく



104 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:37:28 ]
本当に丸写しなら、出版社に言って謝礼をもらうべきw
どうせ問題にあわせていじったところでミスってるだけだろうけど。

105 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:38:51 ]
>>104
嫌味なら誰にでも言える
どこがどう間違っているのか具体的に指摘よろしく
それかお前が正しいプログラムを書いて示せ

106 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:40:47 ]
間違いの存在教えてもらっただけでも感謝して、自分で探せよw

107 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:41:28 ]
まあどこが間違っているか示せないだろうけどな

>>99は何度も検証したし結果も合ってる

ただケチを付けてみたいだけだろう>>102

108 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:45:23 ]
そんな検証の仕方じゃ話になんないなw

109 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:45:57 ]
以降放置勝手に言ってろ

110 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:46:36 ]
>h = b - a;
これはなんですか?w

111 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:49:57 ]
>>110
それで合ってんだよ

112 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:52:32 ]
え?w

113 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:29 ]
>>20 の問題だけでスレ立てるのもアレなのでこちらでどうぞ

スレ立てるまでもない質問はここで 106匹目
pc12.2ch.net/test/read.cgi/tech/1276215571/



114 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:29 ]
wてなに


115 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:53:30 ]
どうせ台形公式とかルンゲ・クッタ法のhと混同してるんだろうこの馬鹿は
ロンバーグ積分も知らない馬鹿は口出しすんな

116 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 16:58:01 ]
ロンバーグ積分は台形公式利用するものだし、hの意味は同じなんだがw

aとbは係数として関数に渡すもので、始点・終点じゃない
h = f - e;
が正しい。


117 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:05:21 ]
>>99のやり方はミス抜かしてもロンバーグ積分としては微妙だけどな。
毎回台形公式で求めなおしてるから計算回数無駄に多いし。

118 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:06:54 ]
>>116
確かにその通りだスマン

>>117
だから文句タラタラ言うなら自分でプログラムを書いて示せっつーの

119 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:09:36 ]
スマンですますなよ、この低脳がw
教えてくださいって土下座しろよこのマヌケ

120 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:11:47 ]
>>110で指摘されてもなお>>111と言える心の強さは素晴らしい

121 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:14:36 ]
>>113
まともに機能してるスレに関係ないもの誘導すんなよ。
過疎ってるスレがいくらでもあまってるんだから、そっちにしようぜ。

例えば
C言語を勉強しあおう
pc12.2ch.net/test/read.cgi/tech/1190599975/
とかさ

122 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:15:12 ]
そこまで言わなくてもいいと思うが、丸写しした本を教えてほしい。
それから、
> 何度も検証したし結果も合ってる
というところも詳しく。

123 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 17:30:15 ]
台形公式で刻み数を倍にするときは前回の計算結果を利用して、
関数の計算回数を減らすのが普通。
減らすって言っても、前回の計算がなかったとして直接計算したときと同じなんだけど。
少なくとも、前回の計算分丸々計算しなおすよりはマシになる。



124 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:01:03 ]
>>123
だから言葉で言わずにプログラムで書けっつーの
ここはプログラム板だ

125 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:03:59 ]
ググれカス

126 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:05:22 ]
>>124
先に>>122の質問に答えたら?

127 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 18:25:50 ]
>>90
#include <stdio.h>
int main(void)
{
    int i = 1, sum = 1;
    while (i < 10) {
sum *= i;
printf("%d*", i);
i++;
    }
    printf("%d = %d\n", i, sum *= i);

    return 0;
}

128 名前:113 mailto:sage [2010/06/21(月) 20:05:45 ]
>>121
了解した

>>20 の問題に関しては是非こちらへ

C言語を勉強しあおう
pc12.2ch.net/test/read.cgi/tech/1190599975/168-

129 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 00:46:57 ]
wってなに?

130 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 01:03:40 ]
waraiのw

131 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 04:04:39 ]
sumって変数名に乗算の結果を入れるのは気持ち悪い

132 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:09:40 ]
product

133 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:05:37 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
[1] 授業単元:
char buf[80];
int main(int ac, char ** av)
{
int i;
buf[0] = '\0';
for(i = 1; i < ac; i++){
printf("%3d \"%s\"\n", strlen(av[i]), av[i]);
strcat(buf, av[i]);
}
printf("%3d \"%s\"\n", strlen(buf), buf);

これを入力した文字列を逆順に表示できるように書き換えよ
[3] 環境
 [3.1] Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 本日三時
[5] その他の制限:なし

おねがいします





134 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:39:40 ]
for(i = strlen(buf) - 1; i >= 0; i--) printf("%c", buf[i]);

135 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:49:15 ]
配列a[n],配列b[n] と配列の大きさn を渡すと配列の
要素を入れ換えるプログラムをポインタを用いて作成せよ.
例えば,a[3]={1,2,3},b[3]={101,102,103}とすると
き,結果として,a[3]={101,102,103},b[3]={1,2,3}と
なるようにせよ.

よろしくお願いします!

136 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 11:50:29 ]
void f(int *a, int *b, int size)
{
while(size--) {
int temp = *a;
*a++ = *b;
*b ++ = temp;
}
}

137 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 12:06:39 ]
>>136
早速の回答感謝します
ありがとうございました!

138 名前:デフォルトの名無しさん [2010/06/22(火) 14:55:24 ]
1] 授業単元:システムコール
[2] 問題文(含コード&リンク):
コマンドライン引数で指定された文字列のいずれかと一致する名前の環境変数についてのみ、
#include <stdio.h>
#include <stdlib.h>
extern char **environ;
main()
{
char **p;
for (p = environ; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}

#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[], char *envp[])
{
char **p;
for (p = envp; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}
のように変数名と値を表示するプログラムを書け。
ただし、コマンドライン引数に重複があっても、対応する環境変数について複数回表示してはならない
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限:2010年5月24日12:59まで
[5] その他の制限:特になし
よろしくお願いします


139 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:05:45 ]
期限が過ぎているのでスキップされました

140 名前:デフォルトの名無しさん [2010/06/22(火) 15:17:58 ]
>>138
すいません!期限6/24です

141 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 17:56:42 ]
ワイルドカードのマッチを、正規表現使って行うにはどう変換すればいいですか。
. や * や ? で機能が違うのですが。



142 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:01:55 ]
ワイルドカード → 正規表現
? → .
* → .*

143 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 18:05:12 ]
サンクス。あと正規表現の特殊文字に\つけとけばいいですかね。



144 名前:デフォルトの名無しさん [2010/06/22(火) 18:47:03 ]
[1] 授業単元:C・プログラミング
[2] 問題文(含コード&リンク):
深さ優先探索をリスト表現で表すプログラムを作成せよ。
制限は特にないです。
[3] 環境
 [3.1] Windows 7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2010年6月25日迄
よろしくお願いします。

145 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 19:41:07 ]
>.144
めっちゃ抽象的だな…






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

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

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