C/C++の宿題を片付けます 53代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 2.9 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
【前スレ】
C/C++の宿題を片付けます 52代目
http://pc8.2ch.net/test/read.cgi/tech/1130431335/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0153デフォルトの名無しさん
2005/11/20(日) 01:08:04[2] 問題文: あらかじめ定義した文字列がキーボードから入力した文字列で始まっているかどうかを
判定して表示するプログラムを作成せよ
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:ポインタを使わずに
お願いします
0154デフォルトの名無しさん
2005/11/20(日) 01:49:38[2] 問題文(含コード&リンク):
長さが3以上の文字列が5つ入力されるまで繰り返し入力を受け付ける。
最後にこれら5つの文字列を出力しなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: VC++6.0
[3.3] 言語: C++
[4] 期限:2005,11,24
[5] その他:二次元配列?
よろしくお願いします。
0155デフォルトの名無しさん
2005/11/20(日) 04:50:55#include <stdio.h>
#include <string.h>
#define BUF_SIZE 1024
int isHajimatteru(const char arakajime[], const char buf[], const int buf_len)
{
int i;
for (i=0 ; i<buf_len ; i++)
{
if (arakajime[i] != buf[i])
{
return 0;
}
}
return 1;
}
0156デフォルトの名無しさん
2005/11/20(日) 04:51:19int main()
{
const char arakajime[]="hello, world";
char buf[BUF_SIZE];
int buf_len;
fgets(buf, sizeof(buf)-1, stdin);
buf_len=strlen(buf);
if (buf[buf_len-1]=='\n')
{
buf[buf_len-1]='\0';
buf_len--;
}
if(isHajimatteru(arakajime, buf, buf_len))
{
printf("はじまってます\n");
}
else
{
printf("はじまってません\n");
}
return 0;
}
0157デフォルトの名無しさん
2005/11/20(日) 05:10:38#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SIZE 1024
int main()
{
char *buf;
char *mojiretufive[5];
int i;
int buf_len;
i=0;
while (i<5)
{
buf=malloc(BUF_SIZE);
fgets(buf, BUF_SIZE-1, stdin);
buf_len=strlen(buf);
if (buf[buf_len-1]=='\n')
{
buf[buf_len-1]='\0';
}
buf=realloc(buf, strlen(buf)+1);
0158デフォルトの名無しさん
2005/11/20(日) 05:10:58if (strlen(buf)>=3)
{
mojiretufive[i]=buf;
i++;
}
else
{
free(buf);
}
}
for (i=0 ; i<5 ; i++)
{
printf("%s\n", mojiretufive[i]);
}
for (i=0 ; i<5 ; i++)
{
free(mojiretufive[i]);
}
return 0;
}
0159デフォルトの名無しさん
2005/11/20(日) 05:11:31出来るだけ簡潔に書いたつもり
#include <stdio.h>
int startsWith(const char input[], const char test[])
{
for (; *input && *test; ++input, ++test) {
if (*input != *test) {
return 0;
}
}
return *test == '\0';
}
int main(void)
{
const char s1[] = "The quick brown fox jumps over the lazy dog.";
char s2[128];
scanf("%[^\n]", s2);
printf("%s", startsWith(s1, s2) ? "始まる" : "始まらない");
return 0;
}
0160159
2005/11/20(日) 05:16:05int startsWith(const char input[], const char test[])
{
for (; input[0] && test[0]; ++input, ++test) {
if (input[0] != test[0]) {
return 0;
}
}
return test[0] == '\0';
}
こっちを使ってくれ。
(´-`).。oO(にしても何でポインタ使っちゃいけないんだろう…)
0161159
2005/11/20(日) 05:42:38暇だからこっちもやってみた
#include <iostream>
#include <iterator>
#include <functional>
#include <vector>
#include <string>
#include <algorithm>
namespace {
const int NUM_INPUT = 5;
const int MIN_LENGTH = 3;
struct StringsGenerator : std::unary_function<void, std::string> {
const std::string operator()() const
{
std::string s;
do {
std::getline(std::cin, s);
} while (s.length() < MIN_LENGTH);
return s;
}
};
}
int main()
{
std::vector<std::string> strings(NUM_INPUT);
std::generate(strings.begin(), strings.end(), StringsGenerator());
std::copy(strings.begin(), strings.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}
(´-`).。oO(こんなん出したら胡散臭そうな目で見られるだろうなぁ…)
0162デフォルトの名無しさん
2005/11/20(日) 05:46:190163デフォルトの名無しさん
2005/11/20(日) 06:54:12[2] 問題文(含コード&リンク)::ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1118.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C/C++どちらでも可
[4] 期限: 12月1日まで
[5] その他の制限: なし
私の力ではできません。どなたか教えてください。よろしくお願いします。
0164デフォルトの名無しさん
2005/11/20(日) 07:05:310165デフォルトの名無しさん
2005/11/20(日) 09:28:17状態3が定義されていません。
適当に改行をしましょう。
0167デフォルトの名無しさん
2005/11/20(日) 11:59:18[2] 問題文(含コード&リンク):
エコーサーバとクライアントを作成する。
サーバ側の要件
「end+return」を受け付けるとサーバは終了する。
それ以外の文字の場合は、クライアントに再送信する。
終了時には、終了メッセージをクライアントに送信する。
通信が終了した場合は、クライアントのリソースは解放すること。
クライアント側の要件
行の先頭で「q+return」を入力するとクライアントは終了する。
一行づつサーバに入力文字を送信する。
サーバから受信した文字列は画面に表示する。
通信規約は任意のものでよい
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 11月末
[5] その他の制限: 無し
ソケットはやったことがないのです。。。
0168デフォルトの名無しさん
2005/11/20(日) 12:17:56[2] 問題文(含コード&リンク):
csv形式(カンマ区切り、ダブルコートなし)のファイルがある。
このファイルを読み込んでデータを表示する。ただし、表示は各アイテム毎に改行する事。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 11月末
[5] その他の制限: 無し
0169デフォルトの名無しさん
2005/11/20(日) 14:14:53ダブルコートって何だ?ダブルバイトなら聞いたこともあるが
0170163
2005/11/20(日) 14:43:31ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1119.txt
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1120.zip
0171デフォルトの名無しさん
2005/11/20(日) 14:52:08double-quoteだと思う。
0172デフォルトの名無しさん
2005/11/20(日) 14:52:32ダブルクォート(")だと思われ。
0173デフォルトの名無しさん
2005/11/20(日) 14:52:560174デフォルトの名無しさん
2005/11/20(日) 15:04:25そういうことか
日本語(とゆうかダブルバイト文字)の有り無しで変わってくるがどうなんだ?>>168
0175デフォルトの名無しさん
2005/11/20(日) 15:11:500176デフォルトの名無しさん
2005/11/20(日) 15:25:23入力:
1st,2nd,3rd
a,b,c
出力:
line 1, item 1, '1st'
line 1, item 2, '2nd'
/* 略。質問側は略しちゃだめよ */
とか。出力の形がわからんと組みようがないわ。
>XORでパリティの人
・授業なら「適当に並べ替え」ってところが肝で説明受けてるはず。なんで、それ書きましょう。
・ああ・・・それから、パリティって普通、パリティビットつけるものです。
・誤り訂正符合を考え提出せよってネタだったら、そのままだしたほうがいいよ。
0177デフォルトの菜無しさん
2005/11/20(日) 15:47:40[2]問題文(含コード&リンク):
1.実数型変数a, b を宣言し、そのアドレスを画面に表示するプログラムを作成。
2.上記のプログラムでポインタ変数 *pa, *pb を準備し、それぞれに変数 a, b のアドレスを入力して、それを画面に表示させる。
3.上記のプログラムで変数 a, b にキーボードから数値を入力し、その和 sum を計算して画面に表示させる。ただしポインタ *pa, *pb を用いて和を計算する。
4.実数型変数a, b を宣言し、和と差を計算して、結果を画面に表示するプログラムを考える。このとき、ポインタ変数 *pwa, *psa をmain関数内で準備し、関数 wasa に a, b, &pwa, &psa を引数として渡して、関数 wasa 内で「アドレス内のデータ」として和と差を計算する。
0178デフォルトの菜無しさん
2005/11/20(日) 15:48:27[3.1]OS:Windows
[3.2]コンパイラ名:gcc
[3.3]言語:C言語
[4] 期限:明日のお昼3時
[5] その他の制限:ポインタ変数を使うらしいです。
2番の問題までゎかるのですが、3番からが全然謎なので是非お願いします。
0179デフォルトの名無しさん
2005/11/20(日) 15:51:13Cスレにスレ違いのポストしておいてこっち来るんじゃねーよネカマが
0180デフォルトの名無しさん
2005/11/20(日) 15:53:58おっぱいうp
0181168
2005/11/20(日) 15:59:53ダブルバイトていうか多分スペース区切りでいいんじゃないでしょか
==============
1111 2222 3333
4444 5555 6666
==============
上記を
1111
2222
3333
4444
5555
.....
見たいに。だからスペースの有無とファイル中の改行を見て
コード内で1アイテムづつ改行を行うんじゃないかと...
0182デフォルトの名無しさん
2005/11/20(日) 15:59:540183デフォルトの名無しさん
2005/11/20(日) 16:02:26うpはまだでつか?
0184デフォルトの名無しさん
2005/11/20(日) 16:02:39カンマ区切りじゃないのか?
それと日本語云々は、(本当にあるのかは知らないが)2バイト目とカンマの文字コードが
一致する場合を避ける必要がある
0185デフォルトの名無しさん
2005/11/20(日) 16:05:22double a, b;
printf("&a %p, &b %p\n", &a, &b);
2)
double a, b, *pa, *pb;
pa = &a;
pb = &b;
printf("pa %p, pb %p\n", pa, pb);
3)
double a, b, *pa, *pb. sum;
pa = &a;
pb = &b;
printf("input a b:");
scanf("%lf %lf", pa, pb); /* scanf("%lf %lf", &a, &b);とどちらがよいだろう? */
sum = *pa + *pb;
printf("pa %p, pb %p\n", pa, pb);
4) はC言語スレで頑張ってた人が居るので宣言考えるだけであとはパス。
double a, b, *pa = &a, *pb = &b, wa, sa, pwa = &wa, psa = &sa;
0186デフォルトの名無しさん
2005/11/20(日) 16:06:080187デフォルトの名無しさん
2005/11/20(日) 16:06:21[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1121.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語:C
[4] 期限:2005年11月22日12:00まで
[5] その他の制限:特に無し
0188187
2005/11/20(日) 16:06:530189168
2005/11/20(日) 16:07:051111,2222,3333
4444,5555,6666
==============
こうっすね すいません。 日本語云々はどうなんでしょうか...
それこそ宿題程度のものなので作る側の任意で良いと思います。
日本語関係にも対応している高尚なものであればそっちの方がいいとは思いますが。。。
0190デフォルトの名無しさん
2005/11/20(日) 16:07:32コンパイルしてみます!
0191デフォルトの名無しさん
2005/11/20(日) 16:08:16#include <stdio.h>
int main(void) { char buf[100]; while(scanf("%99s", buf) == 1) printf("%s\n", buf); return 0;}
0192デフォルトの名無しさん
2005/11/20(日) 16:11:57ファイルじゃ?
0193デフォルトの名無しさん
2005/11/20(日) 16:12:07#include <stdio.h>
int main(void) { int c; while ((c = getchar()) != EOF) {if (c == ',' || c == '\n') putchar('\n'); else putchar(c);} return 0;}
0194デフォルトの名無しさん
2005/11/20(日) 16:19:36コマンドラインから
a.exe <file
とか
a.out <file
としてくれ。リダイレクトとかリダイレクションとかいう機能だ。
手抜きプログラムで必須の方法だ。
0195168
2005/11/20(日) 16:23:27ちゃんとやってください
0196デフォルトの名無しさん
2005/11/20(日) 16:27:380197デフォルトの名無しさん
2005/11/20(日) 16:49:44[2] 問題文(含コード&リンク):
N個の要素よりなる配列をmain関数に宣言する。配列にデータを読み込む関数(例えばinput)
をmainから呼んで入力を行いデータを書き出す関数(例えばoutput)を呼んで出力するプログラムを
配列で呼んで配列で受け取るやり方を書け。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限:2005年11月21日
[5] その他の制限:
ヘルプです
0198デフォルトの名無しさん
2005/11/20(日) 16:56:10void output(int *a){int i;for(i=0;i<N;i++){printf("%d\n",a[i]);}}
int main(){int a[N];input(a);output(a);return 0;}
0199デフォルトの名無しさん
2005/11/20(日) 18:04:43[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1123.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visualC++6
[3.3] 言語:C
[4] 期限:2005年11月24日まで
[5] その他の制限:無し
宜しくお願いします
0200163
2005/11/20(日) 18:44:51ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1120.zip
再三の変更となり申し訳ありません。
1119.txtからの変更点は
�@:1つのブロックを 100000/誤りの数 bitとする。つまり最初は1/e bit。
�K:誤りがなくなるまで
です。�Aの意味がシャッフルした時に繋がってませんでした。�Kはプログラムの終点を言ってませんでした。
1120.zipと共にどうか宜しくお願いします。
0201デフォルトの名無しさん
2005/11/20(日) 20:28:41#include <stdio.h>
void wasa(double a, double b, double **ppwa, double **ppsa)
{ **ppwa = a + b; **ppsa = a - b; }
int main(void) {double a, b, wa, sa, *pwa, *psa;
pwa = &wa; psa = &sa;
printf("a b: "); scanf("%lf %lf", &a, &b);
wasa(a, b, &pwa, &psa);
printf("wa %f, sa %f\n", wa, sa);
return 0; }
多分・・・の回答
#include <stdio.h>
void wasa(double a, double b, double *pwa, double *psa)
{ *pwa = a + b; *psa = a - b; }
int main(void) {double a, b, *pa, *pb, wa, sa;
printf("a b: "); scanf("%lf %lf", &a, &b);
wasa(a, b, &wa, &sa);
printf("wa %f, sa %f\n", wa, sa);
return 0; }
0202デフォルトの名無しさん
2005/11/20(日) 20:58:18状態1〜3が発生して、手順が全て示されるように、初期データを書いて、
実際に手順を適用してみてくれ。
ああ・・・ブロックサイズは説明用に小さくしてくれ。
0203デフォルトの名無しさん
2005/11/20(日) 21:08:36パリティの意味が解らない。
ためしに、16bit、e=1/16でどんなことを求められているのか説明してくれ。
0204デフォルトの名無しさん
2005/11/20(日) 21:33:530205デフォルトの名無しさん
2005/11/20(日) 23:26:55コンパイルしてみますね。
0206デフォルトの名無しさん
2005/11/20(日) 23:41:21void wasa(double a, double b, double *pwa, double *psa)
{ *pwa = a + b; *psa = a - b; }
int main(void) {double a, b, *pa, *pb, wa, sa;
printf("a b: "); scanf("%lf %lf", &a, &b);
wasa(a, b, &wa, &sa);
printf("wa %f, sa %f\n", wa, sa);
return 0; }
↑で、できましたw
本当にありがとうござぃます〜
また、お世話になると思いますがよろしくお願いしますw
0207デフォルトの名無しさん
2005/11/21(月) 01:38:40ボクは知らないからダケド。
0208デフォルトの名無しさん
2005/11/21(月) 03:20:58[2] 問題文(含コード&リンク):
文字列10個を入力として受け付け、長さ上位3つを長い順に出力する。
同じ長さの文字列が入った場合には、後に入力されたものが高位とする。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C++
[4] 期限: 2005年11月24日
[5] その他の制限:
http://www9.plala.or.jp/sgwr-t/
ここの9章あたりまでしか習っていません
よろしくお願いします
0209デフォルトの名無しさん
2005/11/21(月) 04:38:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1127.c
0210デフォルトの名無しさん
2005/11/21(月) 05:57:20正直面倒くさいしなあ.ネットワーク絡むと下手なプログラム書くとどこかで迷惑になるかもしれんし.
……167,コンパイラが bcc ってことは,winsock でいいんかな?
0211デフォルトの名無しさん
2005/11/21(月) 07:23:12>>210が書いてるように面倒+ちゃんと書かないと何処かの迷惑になりかねないし
そもそも完全に環境依存だからみんな及び腰になるんじゃまいか?
まぁそういう俺はまだソケットの扱い方分からないんだけどな
どこかにソケット関連のヘッダとそれで宣言されてる命令の一覧無い?
0212デフォルトの名無しさん
2005/11/21(月) 09:14:59[2] 問題文:
以下のクラス MyPair に対し, 演算子 == , !=, >=, >, <=, < を定義して下さい. ただし, これらの演算子は以下の性質を満たすようにして下さい.
これらは全て MyPair 同士の比較である.
fst が等しいとき, snd を比べてその比較の結果とする.
fst が異なるとき, fst を比べてその比較の結果とする.
class MyPair {
int fst;
int snd;
public:
MyPair(int f=0, int s=0) {
fst = f;
snd = s;
}
int get_fst() const { return fst; }
int get_snd() const { return snd; }
};
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio.NET
[3.3] 言語: C++
[4] 期限: 11月28日
[5] その他の制限:
0213デフォルトの名無しさん
2005/11/21(月) 09:31:24[2] 問題文:
以下の条件を満たす template 関数 replicate を定義して下さい.
template 引数(型引数) は一つであり, 以下の説明ではこれを T とする.
replicate の引数は2つあり, 第一引数は T型, 第二引数は int型である.
replicate はTの配列を第二引数で表される長さ分確保し, 各要素を第一引数の値で初期化した後, その配列の先頭へのポインタを返す.
メモリ確保失敗等, 異常がある場合, replicate は NULL を返す.
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio.NET
[3.3] 言語: C++
[4] 期限: 12月5日
[5] その他の制限:
0214デフォルトの名無しさん
2005/11/21(月) 09:55:34#include <new>
#include <algorithm>
template <class T>
class auto_array {
public:
typedef T element_type;
explicit auto_array(int size) : pointee_(new T[size]) {}
~auto_array() throw() { delete[] pointee_; }
T* get(int n = 0) const { return &pointee_[n]; }
T* release()
{
T* oldPointee = pointee_;
pointee_ = 0;
return oldPointee;
}
private:
T* pointee_;
};
template <class T>
T* replicate(T t, int n)
{
try {
auto_array<T> p(n);
std::fill_n(p.get(), n, t);
return p.release();
}
catch (std::bad_alloc&) {
return 0;
}
}
0215デフォルトの名無しさん
2005/11/21(月) 10:12:59>>213
の書き出しは
#include <iostream>
#include <string>
でおねがいします。
答えを書いてもらった後なのにすみません
0216デフォルトの名無しさん
2005/11/21(月) 10:38:13初級C言語
[2] 問題文(含コード&リンク):
1から500までの整数から、3の倍数を1行に10個ずつ表示するプログラムを書きなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 学校のpcなんでわかりません
[3.3] 言語: C
[4] 期限: 2005年11月22日12:40まで
[5] その他の制限: for文を使えと指示されました。
初歩の初歩で申し訳ないんですけど、馬鹿文系の私をどなたか助けて下さい。
0217デフォルトの名無しさん
2005/11/21(月) 10:41:43#include <stdio.h>
int main(void)
{
int i, j=0;
for (i=3;i<500;i=i+3) {
if (++j > 10) {
putchar('\n');
j = 0;
}
printf("%d ", i);
}
return 0;
}
脳内コンパイラだからエラーでるかもしれん
しかし文系でもCやるんだな
0218デフォルトの名無しさん
2005/11/21(月) 10:42:48死ねよ
0219デフォルトの名無しさん
2005/11/21(月) 11:22:02iostream も string も使わないじゃん。何で必要なんだよ?
0220デフォルトの名無しさん
2005/11/21(月) 11:31:26即レスありがとうございます。学校行ったら実行してみます。
0221デフォルトの名無しさん
2005/11/21(月) 11:39:38つーか、足したきゃ自分で勝手に足せよ。
0222デフォルトの名無しさん
2005/11/21(月) 11:54:00[2] 問題文:
このプログラムで
#include <iostream>
using namespace std;
int main()
{
Quadratic q1(1,2,3);
for(double i=0; i < 10 ; i += 0.5)cout << q1(i) << endl;
return 0;
}
出力が
3 4.25 6 8.25 11 14.25 18 22.25 27
32.25 38 44.25 51 58.25 66 74.25 83 92.25 102 112.25
となるようにクラスQuadraticの定義とそれを実行するためのmain文を書いて下さい. ただし, Quadraticは二次式を表すクラスです.
この場合, q1は f(x) = 1*x*x + 2*x + 3 を意味します.
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio.NET
[3.3] 言語: C++
[4] 期限: 12月5日
[5] その他:
0223デフォルトの名無しさん
2005/11/21(月) 11:56:35書き忘れ
数字の出力は横ではなく縦一列でかまいません。
0224167
2005/11/21(月) 12:24:21bcc でも gcc でもとりあえずそのように動いてくれれば仕様はどんなものでも良いです。
宿題なのでホント動いてくれるコードならなんでも・・・。
bcc なら winsock ですし gcc なら sys/sock ですし。出来れば bcc がよいと言う意味で bcc とは書きましたが。
0225デフォルトの名無しさん
2005/11/21(月) 12:56:39とりあえず作って見たけどこんな感じでいいのかな。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1128.zip
0226デフォルトの名無しさん
2005/11/21(月) 13:03:13// main()はそのままでいいんじゃないの?
struct Quadratic {
Quadratic(double a, double b, double c) : a(a), b(b), c(c) {}
double operator()(double x) {return a * x * x + b * x + c;}
private:
double a, b, c;
};
0227デフォルトの名無しさん
2005/11/21(月) 13:03:36[2] 問題文(含コード&リンク):
1, 1/2, 1/3, 1/4, ..., 1/100の値をそれぞれ
配列に保存し、保存した値を全て足し合わせること
によって、
1 + 1/2 + 1/3 + ... + 1/100
を求めるプログラムを書きなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 11月23日12:00まで
[5] その他の制限: お願いします
0229デフォルトの名無しさん
2005/11/21(月) 13:42:26int main(void){
int i;
double n[100], sum = 0.0;
for (i = 0; i < 100; i++){
n[i] = (double)1 / (i + 1);
sum = sum + n[i];
}
printf("%f\n", sum);
return 0;
}
0230むぅ
2005/11/21(月) 13:51:17[2] 問題文(含コード&リンク):ファイルを読み込み、空白が早く現れる順に各行を並べ替えるプログラムを作成したいと思います。
空白とはスペース記号 0x20 とタブ 0x9 を意味します。空白の無い行は 0 番目に空白が現れたことにして下さい。
以下の手順にしたがって作成
�@始めに文字列を入れたら最初に空白が来る位置を求める関数を作りたいと思います。
その関数をテストするための文字列をいくつか作り、関数が出力しなければいけない値をそれぞれ求めなさい。
�A文字列を入れたら最初に空白が来る位置を求める関数を作りなさい。但し、空白で始まる文字列には 1,
空白がなければ 0 を返しなさい。
次に題意を満たすプログラムを作成しようと思います。そのプログラムをテストするようなファイルをいくつか作りなさい。
そして完成したプログラムが出力すると予想した値を書きなさい。
�B上で作成した関数を利用して、題意を満たすプログラムを実際に作成しなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc 2.9
[3.3] 言語: C,C++
[4] 期限: [2005年11月30日12:00まで
[5] その他の制限: ファイルのサイズに上限を設けてはいけません。
何 MB のファイルでも読めるようになってなければいけません。
(配列は使うなということですか…)
但し、一行の文字制限が無いと入力バッファの処理が複雑になる場合、一行を高々 80 文字と仮定し、
一行を表す文字列としてだけ配列を使っても良い。
長くなってしまい申し訳ありません。
よろしくお願いします。
0231デフォルトの名無しさん
2005/11/21(月) 14:08:20{
int a, b;
char* space = strstr(" ", pline);
char* tab = strstr("\t", pline);
if(space && tab)
{
a = space - pline;
b = tab - pline;
return min(a, b);
}
else if(spacel)
return space - pline;
else if(tab)
return tab - pline;
retrun 0;
}
空白位置を返す関数
こうですか?わかりません
0232& ◆R7PNoCmXUc
2005/11/21(月) 14:34:07[2] 問題文(s構造体配列のプログラムであるがこのプログラムを正しく直しなさい)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C
[4] 期限:11月20日
#include<stdio.h>
main(void){
int idx;
struct s_type{
int i;
long l;
}s[10];
for (idx=0;idx<10;idx++){
s.i[idx]=0;
s.l[idx]=0;
}
return 0;
}
どう直せばいいのか分かりません。
よろしくお願いします。
0233デフォルトの名無しさん
2005/11/21(月) 14:47:240234デフォルトの名無しさん
2005/11/21(月) 15:07:15s.i[idx]=0; → s[idx].i=0;
s.l[idx]=0; → s[idx].l=0;
0235デフォルトの名無しさん
2005/11/21(月) 15:16:12[2] 問題文(含コード&リンク): http://making-gold-princessmaki.hp.infoseek.co.jp/12.htm
通常課題2問、応用課題1問
[3] 環境
[3.1] OS: WinXp
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C++
[4] 期限: 早ければ早いほど助かります。
0236デフォルトの名無しさん
2005/11/21(月) 15:18:26#include <stdlib.h>
int main(void)
{
int idx;
struct s_type {
int i;
long l;
} s[10];
for (idx = 0; idx < sizeof(s) / sizeof(*s); ++idx) {
s[idx].i = 0;
s[idx].l = 0;
}
return EXIT_SUCCESS;
}
0237デフォルトの名無しさん
2005/11/21(月) 15:24:04ダメ。
・(どうでもいいけど)typoがある。
・strstr()ではなくstrchr()を使うべき。つーかそもそも、もっと便利な関数がある。
・先頭が空白のときに1を返すと言う問題の仕様を満たしていない。
#問題も蛸なんだけどね。
0238デフォルトの名無しさん
2005/11/21(月) 15:28:28void initialize(int* acc)
{
int i;
for(i=0; i < 5; i++)
acc[i] = 0;
}
void dairy_input(int* acc)
{
int input, i;
const char name[5][] = {"りんご", "みかん", "イチゴ", "ナシ", "イチジク",};
for(i=0; i < 5; i++)
{
printf("%s: ", name[i]);
scanf("%d", &input);
printf("\n");
}
}
void dairy_output(const int* acc)
{
int i;
const char name[5][] = {"りんご", "みかん", "イチゴ", "ナシ", "イチジク",};
for(i=0; i < 5; i++)
printf("%s: %d\n", name[i], acc[i]);
}
あとマンドクセ('A`)
0239デフォルトの名無しさん
2005/11/21(月) 15:29:44{
int input, i;
const char name[5][] = {"りんご", "みかん", "イチゴ", "ナシ", "イチジク",};
for(i=0; i < 5; i++)
{
printf("%s: ", name[i]);
scanf("%d", &input);
acc[i] = input; // 抜けてた
printf("\n");
}
}
0240デフォルトの名無しさん
2005/11/21(月) 15:34:48ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1129.txt
0241デフォルトの名無しさん
2005/11/21(月) 15:42:080242デフォルトの名無しさん
2005/11/21(月) 15:45:250243デフォルトの名無しさん
2005/11/21(月) 15:47:390244デフォルトの名無しさん
2005/11/21(月) 15:49:40http://ex14.2ch.net/test/read.cgi/news4vip/1132550835/
この問題出してた奴が池沼なだけでしたか><
0245デフォルトの名無しさん
2005/11/21(月) 15:55:24[2] 問題文(含コード&リンク):複数の整数が格納されたnumbers.datというファイルから読み込んだ各整数を整数型の配列に順に格納していき、
それらの整数をバブルソートとマージソートを用いてそれぞれ降順で整列するプログラムを作成しなさい。
この時、バブルソートはbubblesortという関数を、マージソートはmargesortという関数を作成し、
そこで各アルゴリズムに基づいた整列作業を実行させなさい。また、2つの整数の交換作業はswap関数という
関数を作成しそこで実行させなさい。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:g++
[3.3] 言語:C++
[4] 期限:2005年11月22日12時まで
[5] その他の制限:よろしくお願いします。
0246デフォルトの名無しさん
2005/11/21(月) 16:54:51[2] 問題文(含コード&リンク):
自己参照構造体を使用したプログラムの作成:
キーボードより、名前と身長を次々に入力し、
名前の入力がリターンのみのとき、入力を終了し、身長の一番高い人の
名前と身長、身長の一番低い人の名前と身長及び入力された人数を出力する。
ただ、名前はスペース入力が可能で、身長は実数での入力が可能とする。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2005年11月24日11:00まで
[5] その他の制限: 条件:関数の使用、mallocの使用。
また、リストの中身も出力する。リストの形式は自由。
氏名 ? ああ ああ
身長 ? 170
氏名 ? AA AA
身長 ? 175
氏名 ?
入力は 2人です。
一番低い人は ああ ああ さん 170センチです。
一番高い人は AA AA さん 175センチです。
出力はこのような形でお願いします。よろしくお願いします。
0247デフォルトの名無しさん
2005/11/21(月) 17:04:59[2] 問題文(含コード&リンク):引数4個のハノイの塔の再帰プログラムを作成しなさい
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC++6.0
[3.3] 言語:C
[4] 期限:2005年11月25日まで
[5] その他の制限:特に無し
よろしくお願いします
0248デフォルトの名無しさん
2005/11/21(月) 17:06:55エラーが出てしまいました。
error C2087: '<Unknown>' : 添字が不正です。
(14) : error C2117: 'りんご' : 指定された配列には、初期化子が多すぎます。
(14) : error C2117: 'みかん' : 指定された配列には、初期化子が多すぎます。
(14) : error C2117: 'イチゴ' : 指定された配列には、初期化子が多すぎます。
(14) : error C2117: 'ナシ' : 指定された配列には、初期化子が多すぎます。
(14) : error C2117: 'イチジク' : 指定された配列には、初期化子が多すぎます。
(28) : error C2087: '<Unknown>' : 添字が不正です。
: error C2117: 'りんご' : 指定された配列には、初期化子が多すぎます。
(28) : error C2117: 'みかん' : 指定された配列には、初期化子が多すぎます。
(28) : error C2117: 'イチゴ' : 指定された配列には、初期化子が多すぎます。
(28) : error C2117: 'ナシ' : 指定された配列には、初期化子が多すぎます。
(28) : error C2117: 'イチジク' : 指定された配列には、初期化子が多すぎます。
0249デフォルトの名無しさん
2005/11/21(月) 17:09:40×const char name[5][]
○const char name[][9]
0250デフォルトの名無しさん
2005/11/21(月) 17:09:550251デフォルトの名無しさん
2005/11/21(月) 17:10:40ttp://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/Hanoi.html
0252デフォルトの名無しさん
2005/11/21(月) 17:14:04{
if (n > 0) {
hanoi(n - 1, a, c, b);
printf("Disk %d is moved from No.%d to %d\n", n, a, b);
hanoi(n - 1, c, b, a);
}
}
■ このスレッドは過去ログ倉庫に格納されています