トップページ⇒tech
1001コメント433KB

ぼるじょあがC/C++の宿題を片づけますYO! 47代目

■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU 2005/07/05(火) 09:19:12
(・3・)アルェー C++房のぼるじょあですYO!
わからない宿題を片づけますYO!

――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
・複雑なAAはスレが荒れたり問題が埋もれる原因になりますので使用を控えてください。
―――――――――――――――――――――――――――――――

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:Windows/Linux/等々
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか
[5] その他の制限:どこまで習っているか、等々

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

【前スレ】
C/C++の宿題を片付けます 46代目
http://pc8.2ch.net/test/read.cgi/tech/1119514274/

【歴代スレは>>2-13】
0002デフォルトの名無しさん2005/07/05(火) 09:20:27
45代目: http://pc8.2ch.net/test/read.cgi/tech/1118165596/
0003デフォルトの名無しさん2005/07/05(火) 09:20:47
44代目: http://pc8.2ch.net/test/read.cgi/tech/1116914132/
43代目: http://pc8.2ch.net/test/read.cgi/tech/1115794784/
42代目: http://pc8.2ch.net/test/read.cgi/tech/1113811213/
41代目: http://pc8.2ch.net/test/read.cgi/tech/1109542053/
40代目: http://pc5.2ch.net/test/read.cgi/tech/1107625122/
39代目: http://pc5.2ch.net/test/read.cgi/tech/1106650397/
38代目: http://pc5.2ch.net/test/read.cgi/tech/1105541524/
37代目: http://pc5.2ch.net/test/read.cgi/tech/1103913840/
36代目: http://pc5.2ch.net/test/read.cgi/tech/1102753497/
35代目: http://pc5.2ch.net/test/read.cgi/tech/1101568895/
34代目: http://pc5.2ch.net/test/read.cgi/tech/1100530682/
33代目: http://pc5.2ch.net/test/read.cgi/tech/1097932699/
32代目: http://pc5.2ch.net/test/read.cgi/tech/1097592876/
31代目: http://pc5.2ch.net/test/read.cgi/tech/1095075678/
30代目: http://pc5.2ch.net/test/read.cgi/tech/1091954342/
0004デフォルトの名無しさん2005/07/05(火) 09:21:17
29代目: http://pc5.2ch.net/test/read.cgi/tech/1090765027/
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
0005デフォルトの名無しさん2005/07/05(火) 09:22:29
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
09代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
08代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
07代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
06代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
05代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
04代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
03代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
02代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
01代目: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0006デフォルトの名無しさん2005/07/05(火) 10:34:49
[1] 授業単元:プログラミングb
[2] 問題文(含コード&リンク): 縦と横の整数を入力して*を使って長方形を作成するプログラムです。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
 [3.3] 言語:C ++
[4] 期限:日曜PM6:00まで
[5] できれば簡単な感じでお願いします。
0007デフォルトの名無しさん2005/07/05(火) 10:41:10
#include <iostream>

int main()
{
  using namespace std;
  
  int width, height;
  
  cout << "縦 = ";
  cin >> height;
  
  cout << "横 = ";
  cin >> width;
  
  for ( int y = 0; y < height; y ++ )
  {
    for ( int x = 0; x < width; x ++ )
      cout << "*";
    
    cout << endl;
  }
  
  return 0;
}
000872005/07/05(火) 10:43:19
しまった。*は全角にすべきだったか?
0009デフォルトの名無しさん2005/07/05(火) 12:24:52
001062005/07/05(火) 13:21:45
>>7

すいませんありがとうございます。
stuido.hから始まるやつでお願いします
0011デフォルトの名無しさん2005/07/05(火) 13:38:12
>>10
stdio.hね。
そういうのはC++ではなくCと書いてくれたほうがわかりやすかった。

#include <stdio.h>

int main()
{
  int width, height, x, y;
  
  printf( "縦 = " );
  scanf( "%d", & height );
  printf( "横 = " );
  scanf( "%d", & width );
  
  for ( y = 0; y < height; y ++ )
  {
    for ( x = 0; x < width; x ++ )
      printf( "*" );
    
    printf( "\n" );
  }
  
  return 0;
}
001262005/07/05(火) 13:41:05
>>11
ほんとにすいません。
ありがとうございます、
00139062005/07/05(火) 13:56:30
以下のプログラムの解説をお願いします。
C言語で、do whileを使った10進数→2進数変換プログラムです。
どの部分がどのような機能を果たしているかが本を読んでも理解できなかったので…
よろしくお願いします。
#include <stdio.h>
char* to_2(unsigned x, char* s) {
int index = 0, left = 0;
char temp;
do {
s[index++] = x % 2 + '0';
x = x / 2;
} while (x != 0);
s[index--] = '\0';
while (left < index) {
temp = s[left];
s[left] = s[index];
s[index] = temp;
++left;
--index;
}
return s;
}
int main(void) {
unsigned x;
char s[256];
printf("Enter Number:"); scanf("%u", &x);
printf("%u = %s", x, to_2(x, s));
}
0014デフォルトの名無しさん2005/07/05(火) 14:05:16
[1] 授業単元:プログラミングb
[2] 問題文(含コード&リンク):
�@4個の入力された整数に対し、最大値を表示するプログラム。
�AN個の入力された整数に対し、最大値を表示するプログラム。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5.1
 [3.3] 言語:C
[4] 期限:日曜PM6:00まで
[5] できれば簡単な感じでお願いします。
0015デフォルトの名無しさん2005/07/05(火) 14:26:25
>>13
仮に入力が10
最初のループ-こんな書き方だっけ
x    x%2
10  
5   | 0   
2   | 1   
_____|
1    0

xは0で終了だけど、そこは余計なのでぬるもじで上書き
おせっかいに
s[index--]='\0'は
s[index]='\0'
index--
という意味

結果s[] = "0101\0"
次のループ-配列を反転
結果s[] = "1010\0"
0016デフォルトの名無しさん2005/07/05(火) 14:32:58
>>14
あなたは>>6の人?

int main()
{
  int input, i , N, max;
  printf( "N = 4\n" );
  
  for ( i = 0; i < 4; i ++ )
  {
    printf( "%d個目の整数: ", i + 1 );
    scanf( "%d", & input );
    
    if ( i == 0 || max < input )
      max = input;
  }
  
  printf( "最大値は、%d\n", max );
  printf( "\nN = " );
  scanf( "%d", & N );

面倒くさくなってきた。
あとは似たようなこと書くだけだし自分でやってミソ。
00176 142005/07/05(火) 15:10:22
>>16 2回もすいません。
ほんとに助かりました、ありがとうございました。
0018デフォルトの名無しさん2005/07/05(火) 15:10:48
このスレッドが適切ではないかもしれませんが適切なスレッドが
分からなかったのでここで質問させて頂きます。
linux で名前付き pipe を使って通信をしております。
送信側は mkfifo で FIFO を作成し、binary data を write 文で送信し、
送信が終わったら作成した FIFOを消して終了しています。
受信側は read 文でデータを読んでいるのですが、伝送が終了した
事を知る方法が分からなく、永遠に終了しないため困っております。
受信側が伝送の終了を知るための良い方法をご存知の方がいらっしゃいましたら
ぜひご教授下さい。どうぞよろしくお願い致します m(__)m
0019デフォルトの名無しさん2005/07/05(火) 15:18:25
>>18
方法は色々あるが、
・パケット長を固定にする。
・パケット開始コード、終了コードを用意する。(一般的にSTX、ETX)
・送信総データ長を最初に送る。
・タイムアウトを利用する。
0020デフォルトの名無しさん2005/07/05(火) 15:29:04
早速どうもありがとうございます m(__)m
>・パケット長を固定にする。
私の例ではランダムな長さのデータを断続的に送る必要があり難しそうです。。
>・パケット開始コード、終了コードを用意する。(一般的にSTX、ETX)
バイナリデータなので。。
>・送信総データ長を最初に送る。
データ長も不定なので困っております。
>・タイムアウトを利用する。
とりあえず、今回はこれを使ってみようと思います。

どうやらTCP/IP 通信のようにコネクションを切るという概念はないのですね。
(FIFO のファイルを送信側で消去したら通信終了が可能なのかと思っておりました。)
色々なアイデアをご教授いただき大変参考になりました。
どうもありがとうございました。
0021デフォルトの名無しさん2005/07/05(火) 15:33:32
送信側がcloseして、受信側が全部読み取った状態で更にreadすれば、0が返るはずだけど。
0022デフォルトの名無しさん2005/07/05(火) 15:39:00
>>21
うまくいきました。。。。
お恥ずかしい限りです。大変助かりました。
どうもありがとうございました m(__)m m(__)m m(__)m
0023前スレ9252005/07/05(火) 15:49:16
次スレいってたんですね。
[1]授業単元:プログラミング中級
[2]問題文:1000以下の素数で、足しあわせると1000になるような二つの素数の組をすべて求めるプログラムを作れ
[3]環境
[3.1]OS:UNIX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4]期限:7/8
[5]制限特に無し
よろしくお願いします!
0024デフォルトの名無しさん2005/07/05(火) 16:02:02
>>23
#include <stdio.h>

int main(void)
{
  char  sieve[1001] = {1,1,};
  int   l, r;
  int   i;

  for (i = 0; i * i <= sizeof(sieve); i++) {
    int j;
    if (sieve[i])
      continue;

    for (j = i + i; j < sizeof(sieve); j += i) {
      sieve[j] = 1;
    }
  }

  for (l = 0, r = 1000; l <= r; l++, r--) {
    if (sieve[l] == 0 && sieve[r] == 0) {
      printf("%d, %d\n", l, r);
    }
  }

  return 0;
}
0025前スレ9252005/07/05(火) 16:15:16
ありがとうございます!
これは仕様説明しろと言われたらどういう感じに言えばいいですかね?
0026デフォルトの名無しさん2005/07/05(火) 16:23:58
仕様:足しあわせると1000になるような二つの素数の組をすべて求める

i * i <= sizeof(sieve) は i * i < sizeof(sieve) でいい。
0027デフォルトの名無しさん2005/07/05(火) 16:25:49
>>  char  sieve[1001] = {1,1,};
この書き方って残り 0 で埋められるって C言語 の仕様によって保証されているものなの?
0028デフォルトの名無しさん2005/07/05(火) 16:31:52
>>27
保証されてる
0029デフォルトの名無しさん2005/07/05(火) 16:39:41
>>27
JIS X3010 96ページの12行目
0030デフォルトの名無しさん2005/07/05(火) 16:40:51
>>28-29
thx
0031デフォルトの名無しさん2005/07/05(火) 16:51:28
JIS の規格の観覧って検索が出来ないのがネックだよな…
0032前スレ9522005/07/05(火) 16:52:40
ああすいません、仕様というか「ここでこれを宣言して、ここでこういう条件を指定して…」みたいなコメントが欲しいのでした。お願いできますか?m(_ _)m
0033デフォルトの名無しさん2005/07/05(火) 17:09:38
>>31
索引のところにページ数書いてくれると大分助かるんだけどな
俺は索引読んで目次見て探してる…て普通か

>>32
誰だよお前、ていうかお願いできません
0034デフォルトの名無しさん 2005/07/05(火) 17:13:50
[1] 授業単元:情報処理演習
[2] 問題文:閉路電流法の行列解法で直流電気回路を計算するプログラムを作成すること
      長くなるから詳しくはここ↓(大学がどこだかバレバレw
      http://home.kanto-gakuin.ac.jp/~fei/Teaching/IP/ip10-ex.pdf
[3] 環境
 [3.1] OS:FedoraCore
 [3.2] コンパイラ(バージョン):gcc
 [3.3] 言語:C
[4] 期限:2005年07月19日17時まで
[5] その他の制限:特にありません。もう手も足も出ませんorz
これで卒業できるかどうか決まるんでお願いいたしますm(__)m
0035デフォルトの名無しさん2005/07/05(火) 17:48:25
ご丁寧に手順まで書いてあるのに無理なの?
0036デフォルトの名無しさん2005/07/05(火) 18:52:56
留年決定。
0037デフォルトの名無しさん2005/07/05(火) 19:25:14
私新参者でわからないけど、前スレの人達ってここ読んでいるのかなぁ……
0038デフォルトの名無しさん2005/07/05(火) 19:50:38
[1]授業単元:プログラミング
[2]問題文:二つの整数の最大公約数を再帰を使って求めよ
[3]環境
[3.1]OS:LINUX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4]期限:7/10
よろしくお願いします
0039>>382005/07/05(火) 20:13:38
#include <stdio.h>
#include <stdlib.h>

int gcd(int m, int n) {
  if ((m % n) == 0) {
    return n;
  } else {
    return gcd(n, (m % n));
  }
}
    
int main(int argc, char **argv) {
  int num1 = 12;
  int num2 = 8;

  printf("gcd(%d,%d) = %d\n", num1, num2, gcd(num1, num2));

  return 0;
}
0040デフォルトの名無しさん2005/07/05(火) 20:15:16
>>38
エラーチェックは無し
#include <stdio.h>

int main(void)
{
  int   x, y;
  int   gcd(int x, int y) { return y ? gcd(y, x % y) : x; }
  while (printf("2整数を入力してください\n"), scanf("%i%i", &x, &y) == 2) {
    printf("最大公約数は %d\n", gcd(x, y));
  }

  return 0;
}
0041デフォルトの名無しさん2005/07/05(火) 21:16:11
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=653
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン):VC++ 6.0
 [3.3] 言語:C++
[4] 期限:7月6日まで
[5] その他の制限:配列、ポインタ、構造体を使用してください。
どなたかお願いしますm(__)m
0042デフォルトの名無しさん2005/07/05(火) 21:25:21
>>41
これは、割り勘なの?
0043デフォルトの名無しさん2005/07/05(火) 21:32:52
[1] 授業単元: 情報科学
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/667.txt
マージソートをするプログラムなのですが、ソートする要素数nを256より大きい値で入力すると
Segmentation fault(core dumped)になってしまいます。5万個ぐらいはソートできるように
このソースコードの改良をお願いします。
[3] 環境
 [3.1] OS:Windows/Linux/等々 Windows
 [3.2] コンパイラ(バージョン): gcc
 [3.3] 言語:C/C++/どちらでも可 のいずれか C
[4] 期限:yyyy年mm月dd日hh:mmまで または 無期限 のいずれか  7月6日まで
0044デフォルトの名無しさん2005/07/05(火) 21:37:53
[1] 授業単元:プログラミング
[2] 問題文:配列dtを関数に引数としてわたす。
関数部では平均値と分散と標準偏差を計算し、
平均値はreturn分を用いて、分散、標準偏差はポインタを用いてmain()文に
値を渡し、main()文では結果を画面に表示するプログラムを作成せよ
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:ポインタ関数を使う
どなたかおねがいします。
0045デフォルトの名無しさん2005/07/05(火) 21:44:32
>>43
Linux で試したら50000でも動作した。
0046デフォルトの名無しさん2005/07/05(火) 21:49:32
>>45
本当ですか?僕はWindowsなんですが、何が悪いんでしょうか。
コンパイラの性能とか?
0047デフォルトの名無しさん2005/07/05(火) 21:50:53
OSの性能
0048デフォルトの名無しさん2005/07/05(火) 21:52:34
Windows XPの間違いでした。
0049デフォルトの名無しさん2005/07/05(火) 21:54:07
int mid, i, j, k,temp[MAX_DATA];

領域が足りなくなってるんだと思うよ。
自動変数は呼び出しごとに別の実体が作られるから。

配列を静的変数にする
static int temp[MAX_DATA];
でどうだ?
0050デフォルトの名無しさん2005/07/05(火) 21:58:00
>>49
できました!
どうもありがとうございます。
0051デフォルトの名無しさん2005/07/05(火) 23:00:18
>>44
#include <stdio.h>
#include <math.h>
double calc(const double dt[], const size_t size,
                    double *decent, double *deflect)
{
  double sum = 0, ave, dec = 0;
  int i = 0;
  for(i = 0; i< size; ++i) sum += dt[i];
  ave = sum / (double)i;
  for(i = 0; i< size; ++i)  dec += (ave - dt[i]) * (ave - dt[i]);
  if( decent != NULL ) *decent = dec;
  if( deflect != NULL ) *deflect = sqrt(dec);
  return ave;
}
int main()
{
  double dt[] = {1.0, 3.2, 8.8, 10.9, 22.2, 5.4};
  double ave, dec, def;
  ave = calc(dt, sizeof(dt)/sizeof(dt[0]), &dec, &def);
  printf("平均 : %.5f\n", ave);
  printf("分散 : %.5f\n", dec);
  printf("偏差 : %.5f\n", def);
  return 0;
}
0052デフォルトの名無しさん2005/07/05(火) 23:27:58
>>51
ありがとうございます。
if( decent != NULL ) *decent = dec;
if( deflect != NULL ) *deflect = sqrt(dec);
の部分なんですけど、他にやり方ないですか??
*decent = dec;
*deflect = sqrt(dec);
ってしたのですが、分散と偏差が表示されなくて・・・
0053デフォルトの名無しさん2005/07/05(火) 23:50:35
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
1から1000の間に存在する9の倍数を表示
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ(バージョン): Borland C++ Compiler 5.5
 [3.3] 言語:C++
[4] 期限:7月6日の朝頃
[5] 単純な文で作れるはずなんだけど自分の頭だとうまくまとまらないです。help。
0054デフォルトの名無しさん2005/07/05(火) 23:51:08
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):イギリスの国旗を画面に表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:
[5] その他の制限:
どなたかお願いしますm(__)m
0055デフォルトの名無しさん2005/07/05(火) 23:53:17
>>52
>>51 で表示まで全部するはずだが。
表示されなかったのか?
0056デフォルトの名無しさん2005/07/05(火) 23:59:02
>>53
#include <iostream>
int main()
{
    int i;
    for (i = 9; i <= 1000; i += 9)
    {
        std::cout << i << std::endl;
    }
    return 0;
}
0057デフォルトの名無しさん2005/07/06(水) 00:10:10
>>56
即答ありがとうございます。
0058デフォルトの名無しさん2005/07/06(水) 08:36:12
>>54
#include <stdlib.h>
int main(void)
{
system("start http://www.uknow.or.jp/be/uk_japan/img/index_img.jpg");
return 0;
}
0059デフォルトの名無しさん2005/07/06(水) 10:28:46
>>58
不覚にもワロタwww
0060デフォルトの名無しさん2005/07/06(水) 11:36:58
>>58
日本の国旗が被りすぎw
0061ななすぃ2005/07/06(水) 11:51:28
[1] 授業単元:プログラミングC言語
[2] 問題文(含コード&リンク):配列のデータ構造を実現するプログラムを
  数パターン作成する
・データの挿入、削除、表示が可能であること。
・配列に代入するデータは整数型とする。
・プログラムの仕様(関数への入出力、表示方法など)は自由とする
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):Borland C++ Compiler5.5
 [3.3] 言語:C/C++/どちらでも可 のいずれか
[4] 期限:7月9日昼まで
[5] その他の制限: まだC言語始めて一ヶ月なんですけど宿題が出てしまい
初心者な自分には力不足でわかりません。できるだけ早くお願いします。それ
とよろしければ簡単な注釈も書いていただければうれしいです。
0062デフォルトの名無しさん2005/07/06(水) 11:56:31
前スレの644なんですが、コンパイル通りませんでした。
どうか、他のやり方を教えてください。お願いします。
0063デフォルトの名無しさん2005/07/06(水) 12:03:56
>>62
どれをどうコンパイルしたらどう通らなかったのか?
それとも、口の利き方から手取り足取り教えないといけないのか?
0064デフォルトの名無しさん2005/07/06(水) 12:04:59
だがしかしもう質問の仕方を指摘する親切っぷり
0065デフォルトの名無しさん2005/07/06(水) 12:16:59
ここで質問しなきゃ生きていけないなりの頭脳なのかと思わせるな。
0066デフォルトの名無しさん 2005/07/06(水) 12:32:22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):自分の名前を指定した回数だけ表示するプログラム namae.cを作成せよ。
例えば次のような形。何回表示しますか?: 10
(1)名前
(2)名前
 (途中省略)
(10)名前

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):
 [3.3] 言語:C
[4] 期限:今日中
[5] ほぼ初心者
0067ぼるじょあ ◆yBEncckFOU 2005/07/06(水) 12:49:02
>>66

#include <stdio.h>
#define NAMAE "北大路魯山人"
/* ↑自分の名前 */

int main()
{
int i,n;
printf("何回表示しますか?: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("(%d)%s\n",i,NAMAE);
return 0;
}
0068デフォルトの名無しさん2005/07/06(水) 13:01:19
>>54
どなたかおねがいします。
簡易グラフィック関数を用いてらしいのですが
0069デフォルトの名無しさん2005/07/06(水) 13:23:53
[1] 授業単元:情報基礎
[2] 問題文(含コード&リンク):二つの行列の要素をキーボードから読み込み、それらの行列の和を表示するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):VC++6.0
 [3.3] 言語:C++
[4] 期限:7日木曜0時まで
[5] その他の制限:

*表示例*
行列Aを入力してください
0 1 2
10 11 12
20 21 22
行列Bを入力してください
100 200 300
200 300 400
300 400 500

0.00 1.00 2.00 100.00 200.00 300.00 100.00 201.00 302.00
10.00 11.00 12.00 200.00 300.00 400.00 210.00 311.00 412.00
20.00 21.00 22.00 300.00 400.00 500.00 320.00 421.00 522.00
0070前スレ9882005/07/06(水) 13:38:39
>>前スレ996

ありがとうございます。とても助かりました。
0071デフォルトの名無しさん2005/07/06(水) 13:42:05
>>68
これじゃだめ?
#include <stdio.h>
int main(void){
char *england[]={"■□□■□□■",
"□■□■□■□",
"□□■■■□□",
"■■■■■■■",
"□□■■■□□",
"□■□■□■□",
"■□□■□□■",
NULL};
int i;
for(i=0;england[i]!=NULL;i++)printf("%s\n",england[i]);
}
0072前スレ4412005/07/06(水) 13:43:53
ホントにありがとうございます。マジ神降臨ですよ〜。とりあえずこれからいりいろ
チェックしてみます。
0073デフォルトの名無しさん2005/07/06(水) 13:49:34
>>68
>簡易グラフィック関数を用いてらしいのですが
それの仕様を提示せよ。
0074デフォルトの名無しさん2005/07/06(水) 13:51:59
まさかprintfでAAを書けなんて課題はだs
0075デフォルトの名無しさん2005/07/06(水) 14:19:48
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
typedefによる構造体型CPLXを使い複素数の絶対値を関数とする関数定義
double AbsComplex(CPLX x);と2つの複素数の積を関数値とする関数定義
CPLX ProdComplex(CPLX a,CPLX b);
を使い計算するプログラムを作成せよ
[3]
 [3.1] Linux
 [3.2] コンパイラ:gcc
 [3.3]C
[4]明後日まで
[5] その他の制限:構造体は始めたばかりです
よろしくお願いします
0076名無しさん2005/07/06(水) 14:25:07
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク): 2のn乗-2がnで割り切れるかどうか?
               割り切れた時その数はに素数であるか?
               という問題です。nは自然数です。お願いします。   
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ(バージョン):MSVC++6.0
 [3.3] 言語:C++
[4] 期限:2005年07月07日23:59まで
[5] その他の制限:初心者です。
0077デフォルトの名無しさん2005/07/06(水) 14:30:55
>>75
typedef struct {
double real;
double image;
} CPLX;

double AbsComplex(CPLX x) {
return sqrt(x.real * x.real + x.image * x.image);
}

CPLX ProdComplex(CPLX a, CPLX b) {
CPLX x;
x.real = a.real * b.real - a.image * b.image;
x.image = a.image * b.real + a.real * b.image;
return x;
}
0078超初心者ゴン2005/07/06(水) 14:43:36
初めてのカキコですがよろしくお願いします。
問題なんですけど、文字列を反転させることなんですけど
関数をを使わないで自作関数で処理しなきゃならないんですけど、
char szStr[]="ABCDEFG" //反転元文字列
int i=0;//インクリメント用 int len=0;//文字の長さ用
char tmp; //一時格納用(一文字分のみで反転)
       ・
  void rstrrrev(char* szStr)
       ・
・(各変数の宣言)
       ・
  while(pszStr[len]!='\0')
{
len++;
}
len--;
for(i=0;i<(len/2);i++)
{
tmp = *(pszStr+i);
*(pszStr+i) = *(pszStr+(len-i));
*(pszStr+(len-i)) = tmp;
}
}
これで反転するんですけど...例えば文字が"ABCDEFGH"まであったとするとDEが入れ替わらないんですけどどう直せばよろしいでしょうか?よろしくお願いします。
0079デフォルトの名無しさん2005/07/06(水) 14:45:15
>>77
ありがとうございました
0080超初心者ゴン2005/07/06(水) 14:45:44
見にくくてすみません・・
0081デフォルトの名無しさん2005/07/06(水) 14:49:49
len が奇数のときと偶数のときとでの、カウント数を整理すべし。
0082超初心者ゴン2005/07/06(水) 14:50:24
すみません反転の条件はこう書いてました。
for(i = 0; i < (len/2); i++)
0083デフォルトの名無しさん2005/07/06(水) 14:53:25
>問題なんですけど、文字列を反転させることなんですけど
>関数をを使わないで自作関数で処理しなきゃならないんですけど、
これだけ読んで、それ以上読む気をなくした。
0084超初心者ゴン2005/07/06(水) 14:57:13
>>83さん  なんでですか?
0085デフォルトの名無しさん2005/07/06(水) 14:59:10
>>84
バカ?
0086超初心者ゴン2005/07/06(水) 15:00:38
わからないから聞いてるんですけど!
0087デフォルトの名無しさん2005/07/06(水) 15:02:35
len--;
って必要か?
0088デフォルトの名無しさん2005/07/06(水) 15:06:18
>>73
#include<eglib.h>
void Graphmain(void)
{
int color;
color=EG_RGB(0,0,255);
EG_text("Hello#,10,15,color);
}
みたいな感じらしいのですが
0089デフォルトの名無しさん2005/07/06(水) 15:06:57
前スレからの課題です、すいません、期限今日の5時までですが、期限切れてもいいのでどなたかお願いします><


[1]C言語演習
[2]Gccコンパイラ
[3]期限 7月6日水
[4]環境RedHat Linux

問題
メニュー表示をし,ステップ「1」として,関数y = 2x2において,x = 0 – 10 ま
でを0.01 刻みで1001 個のx,yデータセットを作成して,ファイル名function.datで各自のホ
ームディレクトリ(または,カレントディレクトリ)にバイナリ形式で保存する.ステ
ップ「2」として,作成したfunction.datからn個目のx,yデータセットを抽出して,ファイ
ル名n_xy_ascii.dat(nは入力した数字)としてASCII形式で保存する.以上の様に動作す
るプログラムを作成しなさい
前スレで突っ込まれたメニュー部の提示ですが。。。
「1」メニュー選択時に1、2以外の数字が入力されたときには再入力させるようにしなさい、またnの値は入力する仕様とすること。
「2」ファイル名等をあつかうときには数字と文字列を組み合わせて文字列を変換したい場合やその逆を行いたい場合はsscanf,sprintf等を使うと簡単です、もちろん他にもあります。
こんなかんじだとおもいます。。。
おねがいします><
0090デフォルトの名無しさん2005/07/06(水) 15:07:03
>>83=>>85は早速遁走したようですw
0091超初心者ゴン2005/07/06(水) 15:09:50
len--をなくすと文字列が表示されないんですけど・・
0092832005/07/06(水) 15:11:08
>>84
わずかそれだけの文章中に「ですけど」が3回、おまけに「をを」という間違いも。
文章を書くのに頭を使わない(or見直しをしない)ような馬鹿の宿題なんてやる気にもならん。
0093デフォルトの名無しさん2005/07/06(水) 15:12:24
必死な言い訳はスレタイ読んでからにしましょうね
0094732005/07/06(水) 15:13:53
>>88
それでどうやって、国旗を描画するのかね?
線分描画関数がなければ描画できないということくらい理解できないのか?
0095超初心者ゴン2005/07/06(水) 15:14:04
誰かお願いします!
0096デフォルトの名無しさん2005/07/06(水) 15:15:43
len--;を消して
*(pszStr+i) = *(pszStr+(len-1-i));
*(pszStr+(len-1-i)) = tmp;
こうしろ
009783=92≠852005/07/06(水) 15:15:54
>>93
馬鹿?

>>91
lenを求めた段階で、その値がいくつになっているかを確認せよ。
0098852005/07/06(水) 15:16:04
>>95
バカ?
0099デフォルトの名無しさん2005/07/06(水) 15:21:18
>>76

#include <stdio.h>

int isPrime(unsigned int n) {
  unsigned int i;
  for (i = 2; i < (unsigned int)sqrt(n); i ++) {
    if ((n % i) == 0) {
      return 0;
    }
  }
  return 1;
}

int main(int argc, char **argv) {
  int i;
  unsigned int num;
  for (i = 1; i < 32; i++) {
    num = (1 << i) - 2;
    if ((num % i) == 0 && isPrime(num) == 1) {
        printf("%d\n", num);
    }
  }
  return 0;
}
0100超初心者ゴン2005/07/06(水) 15:24:07
>>96さん
>>97さん
ありがとうございます
0101デフォルトの名無しさん2005/07/06(水) 15:45:39
>>88
これでOk?
#include<eglib.h>
void Graphmain(void){
int color;
char *england[]={
"■□□■□□■",
"□■□■□■□",
"□□■■■□□",
"■■■■■■■",
"□□■■■□□",
"□■□■□■□",
"■□□■□□■",
NULL};
int i;
color=EG_RGB(0,0,255);
for(i=0;england[i]!=NULL;i++)EG_text(england[i],10,15+i,color);
}
■ このスレッドは過去ログ倉庫に格納されています