ぼるじょあがC/C++の宿題を片づけますYO! 47代目
■ このスレッドは過去ログ倉庫に格納されています
0001ぼるじょあ ◆yBEncckFOU
2005/07/05(火) 09:19:12わからない宿題を片づけます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:270003デフォルトの名無しさん
2005/07/05(火) 09:20:4743代目: 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:1728代目: 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:2913代目: 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[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:10int 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;
}
00087
2005/07/05(火) 10:43:190009デフォルトの名無しさん
2005/07/05(火) 12:24:5200106
2005/07/05(火) 13:21:45すいませんありがとうございます。
stuido.hから始まるやつでお願いします
0011デフォルトの名無しさん
2005/07/05(火) 13:38:12stdio.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;
}
00126
2005/07/05(火) 13:41:05ほんとにすいません。
ありがとうございます、
0013906
2005/07/05(火) 13:56:30C言語で、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[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仮に入力が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あなたは>>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 14
2005/07/05(火) 15:10:22ほんとに助かりました、ありがとうございました。
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方法は色々あるが、
・パケット長を固定にする。
・パケット開始コード、終了コードを用意する。(一般的にSTX、ETX)
・送信総データ長を最初に送る。
・タイムアウトを利用する。
0020デフォルトの名無しさん
2005/07/05(火) 15:29:04>・パケット長を固定にする。
私の例ではランダムな長さのデータを断続的に送る必要があり難しそうです。。
>・パケット開始コード、終了コードを用意する。(一般的にSTX、ETX)
バイナリデータなので。。
>・送信総データ長を最初に送る。
データ長も不定なので困っております。
>・タイムアウトを利用する。
とりあえず、今回はこれを使ってみようと思います。
どうやらTCP/IP 通信のようにコネクションを切るという概念はないのですね。
(FIFO のファイルを送信側で消去したら通信終了が可能なのかと思っておりました。)
色々なアイデアをご教授いただき大変参考になりました。
どうもありがとうございました。
0021デフォルトの名無しさん
2005/07/05(火) 15:33:320022デフォルトの名無しさん
2005/07/05(火) 15:39:00うまくいきました。。。。
お恥ずかしい限りです。大変助かりました。
どうもありがとうございました m(__)m m(__)m m(__)m
0023前スレ925
2005/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#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前スレ925
2005/07/05(火) 16:15:16これは仕様説明しろと言われたらどういう感じに言えばいいですかね?
0026デフォルトの名無しさん
2005/07/05(火) 16:23:58i * i <= sizeof(sieve) は i * i < sizeof(sieve) でいい。
0027デフォルトの名無しさん
2005/07/05(火) 16:25:49この書き方って残り 0 で埋められるって C言語 の仕様によって保証されているものなの?
0028デフォルトの名無しさん
2005/07/05(火) 16:31:52保証されてる
0029デフォルトの名無しさん
2005/07/05(火) 16:39:41JIS X3010 96ページの12行目
0030デフォルトの名無しさん
2005/07/05(火) 16:40:51thx
0031デフォルトの名無しさん
2005/07/05(火) 16:51:280032前スレ952
2005/07/05(火) 16:52:400033デフォルトの名無しさん
2005/07/05(火) 17:09:38索引のところにページ数書いてくれると大分助かるんだけどな
俺は索引読んで目次見て探してる…て普通か
>>32
誰だよお前、ていうかお願いできません
0034デフォルトの名無しさん
2005/07/05(火) 17:13:50[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:250036デフォルトの名無しさん
2005/07/05(火) 18:52:560037デフォルトの名無しさん
2005/07/05(火) 19:25:140038デフォルトの名無しさん
2005/07/05(火) 19:50:38[2]問題文:二つの整数の最大公約数を再帰を使って求めよ
[3]環境
[3.1]OS:LINUX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4]期限:7/10
よろしくお願いします
0039>>38
2005/07/05(火) 20:13:38#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エラーチェックは無し
#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[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これは、割り勘なの?
0043デフォルトの名無しさん
2005/07/05(火) 21:32:52[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[2] 問題文:配列dtを関数に引数としてわたす。
関数部では平均値と分散と標準偏差を計算し、
平均値はreturn分を用いて、分散、標準偏差はポインタを用いてmain()文に
値を渡し、main()文では結果を画面に表示するプログラムを作成せよ
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:ポインタ関数を使う
どなたかおねがいします。
0045デフォルトの名無しさん
2005/07/05(火) 21:44:32Linux で試したら50000でも動作した。
0046デフォルトの名無しさん
2005/07/05(火) 21:49:32本当ですか?僕はWindowsなんですが、何が悪いんでしょうか。
コンパイラの性能とか?
0047デフォルトの名無しさん
2005/07/05(火) 21:50:530048デフォルトの名無しさん
2005/07/05(火) 21:52:340049デフォルトの名無しさん
2005/07/05(火) 21:54:07領域が足りなくなってるんだと思うよ。
自動変数は呼び出しごとに別の実体が作られるから。
配列を静的変数にする
static int temp[MAX_DATA];
でどうだ?
0050デフォルトの名無しさん
2005/07/05(火) 21:58:00できました!
どうもありがとうございます。
0051デフォルトの名無しさん
2005/07/05(火) 23:00:18#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ありがとうございます。
if( decent != NULL ) *decent = dec;
if( deflect != NULL ) *deflect = sqrt(dec);
の部分なんですけど、他にやり方ないですか??
*decent = dec;
*deflect = sqrt(dec);
ってしたのですが、分散と偏差が表示されなくて・・・
0053デフォルトの名無しさん
2005/07/05(火) 23:50:35[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[2] 問題文(含コード&リンク):イギリスの国旗を画面に表示するプログラムを作成せよ。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ(バージョン):
[3.3] 言語:C
[4] 期限:
[5] その他の制限:
どなたかお願いしますm(__)m
0055デフォルトの名無しさん
2005/07/05(火) 23:53:17>>51 で表示まで全部するはずだが。
表示されなかったのか?
0056デフォルトの名無しさん
2005/07/05(火) 23:59:02#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即答ありがとうございます。
0058デフォルトの名無しさん
2005/07/06(水) 08:36:12#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不覚にもワロタwww
0060デフォルトの名無しさん
2005/07/06(水) 11:36:58日本の国旗が被りすぎw
0061ななすぃ
2005/07/06(水) 11:51:28[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どうか、他のやり方を教えてください。お願いします。
0063デフォルトの名無しさん
2005/07/06(水) 12:03:56どれをどうコンパイルしたらどう通らなかったのか?
それとも、口の利き方から手取り足取り教えないといけないのか?
0064デフォルトの名無しさん
2005/07/06(水) 12:04:590065デフォルトの名無しさん
2005/07/06(水) 12:16:590066デフォルトの名無しさん
2005/07/06(水) 12:32:22[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#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どなたかおねがいします。
簡易グラフィック関数を用いてらしいのですが
0069デフォルトの名無しさん
2005/07/06(水) 13:23:53[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前スレ988
2005/07/06(水) 13:38:39ありがとうございます。とても助かりました。
0071デフォルトの名無しさん
2005/07/06(水) 13:42:05これじゃだめ?
#include <stdio.h>
int main(void){
char *england[]={"■□□■□□■",
"□■□■□■□",
"□□■■■□□",
"■■■■■■■",
"□□■■■□□",
"□■□■□■□",
"■□□■□□■",
NULL};
int i;
for(i=0;england[i]!=NULL;i++)printf("%s\n",england[i]);
}
0072前スレ441
2005/07/06(水) 13:43:53チェックしてみます。
0073デフォルトの名無しさん
2005/07/06(水) 13:49:34>簡易グラフィック関数を用いてらしいのですが
それの仕様を提示せよ。
0074デフォルトの名無しさん
2005/07/06(水) 13:51:590075デフォルトの名無しさん
2005/07/06(水) 14:19:48[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[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:55typedef 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ありがとうございました
0080超初心者ゴン
2005/07/06(水) 14:45:440081デフォルトの名無しさん
2005/07/06(水) 14:49:490082超初心者ゴン
2005/07/06(水) 14:50:24for(i = 0; i < (len/2); i++)
0083デフォルトの名無しさん
2005/07/06(水) 14:53:25>関数をを使わないで自作関数で処理しなきゃならないんですけど、
これだけ読んで、それ以上読む気をなくした。
0084超初心者ゴン
2005/07/06(水) 14:57:130085デフォルトの名無しさん
2005/07/06(水) 14:59:10バカ?
0086超初心者ゴン
2005/07/06(水) 15:00:380087デフォルトの名無しさん
2005/07/06(水) 15:02:35って必要か?
0088デフォルトの名無しさん
2005/07/06(水) 15:06:18#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[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:030091超初心者ゴン
2005/07/06(水) 15:09:50009283
2005/07/06(水) 15:11:08わずかそれだけの文章中に「ですけど」が3回、おまけに「をを」という間違いも。
文章を書くのに頭を使わない(or見直しをしない)ような馬鹿の宿題なんてやる気にもならん。
0093デフォルトの名無しさん
2005/07/06(水) 15:12:240095超初心者ゴン
2005/07/06(水) 15:14:040096デフォルトの名無しさん
2005/07/06(水) 15:15:43*(pszStr+i) = *(pszStr+(len-1-i));
*(pszStr+(len-1-i)) = tmp;
こうしろ
0099デフォルトの名無しさん
2005/07/06(水) 15:21:18#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;
}
0101デフォルトの名無しさん
2005/07/06(水) 15:45:39これで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);
}
■ このスレッドは過去ログ倉庫に格納されています