C/C++の宿題を片づけます 49代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/08/10(水) 17:10:47あなたが解けないC/C++の宿題を片づけます
――【注意点】―――――――――――――――――――――――――
・質問は必ず【質問テンプレ】に従ってください。
・問題文は、解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。解いてもらっている方に失礼です。
―――――――――――――――――――――――――――――――
【質問テンプレ】
[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
【前スレ】
48代目: http://pc8.2ch.net/test/read.cgi/tech/1121471445/
【歴代スレは>>2-13】
0685595 ◆AOMdbQiVo.
2005/09/05(月) 17:20:28すまんが、さすがに2chでそれはできない。
たまーにここや他のスレに見てるから、わからんことがあったら聞いておくれ。
名無しの回答者の中に俺が混ざってるかもしれん。
あと、>>683がこれから先、もっと難しいことをやるなら
画像処理スレの方で聞いた方が、ここよりも良い回答が得られるかもしれない。
(俺は画像処理は専門外なので、これ以上のことは答えられん)
そうはいっても、もうちょっと質問の仕方とC言語の勉強が必要だけどな。
ま、とにかく、がんばってくれ
あとは名無しに戻るよノシ
0686デフォルトの名無しさん
2005/09/05(月) 17:21:29こらこらw本当に書きそうだからやめれw
0687デフォルトの名無しさん
2005/09/05(月) 17:27:37char usage[] = {数値列};
system(usage);
の人とはえらい違いだ。
0688デフォルトの名無しさん
2005/09/05(月) 18:54:53それから浮動小数点演算してるんだから、誤差は出るつもりでいないとな。
上限や下限に収まらないときもあるだろう。
とヒントをくらいは出しておこう。
0689デフォルトの名無しさん
2005/09/05(月) 21:05:25大学って10月からでしたっけか?
0690デフォルトの名無しさん
2005/09/05(月) 21:22:340691デフォルトの名無しさん
2005/09/05(月) 21:59:530692デフォルトの名無しさん
2005/09/05(月) 22:10:31冬休みもあったような気がするけど学期は変わらないかな
0693デフォルトの名無しさん
2005/09/05(月) 22:22:16それは知ってるけど後期課程とは言わないんじゃないのか?
ドクターじゃあるまいし。
0694デフォルトの名無しさん
2005/09/05(月) 23:10:21俺が行ってた大学はSpring SemesterとFall Semesterって言ってた。
他は知らない。
0695デフォルトの名無しさん
2005/09/06(火) 10:27:11そうですか・・・残念です。画像処理のアイデアも求められているのは授業の課題内容から
わかりますね。
この授業の課題は大変難しくて有名で、私にも色々事情があって本当に死のうかと考えた時期も
ありました。課題でないくらいで大げさなとおもわれるかもしれませんが、理由は省きますが
本当に欝になって死ぬことばっかり考えてた3週間でした。
ここのみなさんには課題をやっていただいたりして大変助かりました。
私が死ななかったのはみなさんのおかげであるという部分がかなりあります。
ありがとうございました。
0696デフォルトの名無しさん
2005/09/06(火) 10:36:580697デフォルトの名無しさん
2005/09/06(火) 10:42:21不快な事を書くな
0698デフォルトの名無しさん
2005/09/06(火) 10:53:51プログラミング言語C(通称K&R)の問題とかそれらしく書こうか。
0699デフォルトの名無しさん
2005/09/06(火) 11:02:110700デフォルトの名無しさん
2005/09/06(火) 11:02:11返事が送れてすみません。ありがとうございました
0701デフォルトの名無しさん
2005/09/06(火) 11:26:04以後スルーで。
0702デフォルトの名無しさん
2005/09/06(火) 11:36:54CSV形式のファイルの読み込みをしたいんですけど、ちょっとわからず、
知恵を貸していただけたら幸いかと思います。
#include<vector>
bool Load Maintenance File(LPCTSTR lpsaName,std||vectar<MAINTEREC>&vecRec))
↑ ↑
/*ファイル名*/ /*ファイル内容*/
===MAINTERECファイル内容===
=================================
MAINTEREC Rec;
整数(int)なら→Rec.nWave 浮動小数点(double)なら→Rec.dValve
vecRec.push_back(Rec);
=================================
※数字以外はエラー 必ず1つ目は整数値、二つ目は浮動小数点じゃない場合もある
格納配列 obj
0703702
2005/09/06(火) 11:38:58lpsaName→/*ファイル名*/
MAINTEREC→/*ファイル内容*/
0704702
2005/09/06(火) 11:45:36==ファイル中身== っていう感じでファイルがあります。
123,0.123(一行)
・ , ・
・ , ・
・ , ・
・ , ・
==========
整数 | 少数
↓ ↓
整数 実数
↓ ↓
Rec.nWave Rec.dValve
0705デフォルトの名無しさん
2005/09/06(火) 11:52:370706デフォルトの名無しさん
2005/09/06(火) 11:54:010707702
2005/09/06(火) 11:56:03>>705
0708デフォルトの名無しさん
2005/09/06(火) 12:04:00ファイルの中身として全角数字出したわけだから全角解析しろってことだろ?
0709702
2005/09/06(火) 12:17:17ごめんなさい・・・
>>708
0710デフォルトの名無しさん
2005/09/06(火) 12:25:32むかつく
0711702
2005/09/06(火) 12:30:51>>710
0712702
2005/09/06(火) 12:59:510713702
2005/09/06(火) 13:22:06作ったところまで教えていただけませんか?
0714デフォルトの名無しさん
2005/09/06(火) 13:33:250715デフォルトの名無しさん
2005/09/06(火) 14:03:071) ファイルを開く
2) while(ファイルから1行取得→string、EOFまで)
{
3) ・stringからカンマの前後で部分文字列切り出し
4) ・前後のスペース除去
5) ・文字列→数値変換
6) ・それぞれの値を構造体?のメンバに保存
7) ・構造体?をvectorにpush_back
}
8) ファイルを閉じる
あと、質問するときは>>1をちゃんと読んで、テンプレをちゃんと埋めること。
0716デフォルトの名無しさん
2005/09/06(火) 14:09:19多分>>1を読んでも意味がよくわからなかったんだよ
0717702
2005/09/06(火) 14:10:15すみません、焦っていて周りが見えなくなっていました。。。ごめんなさい!
0718702
2005/09/06(火) 14:14:38[2] 問題文(含コード&リンク): >>702
[3] 環境
[3.1] OS: win2000
[3.2] コンパイラ名とバージョン: VC++6.0
[3.3] 言語: C
[4] 期限:9月6日16時30分ぐらいまで
[5] その他の制限: 半角でお願いします
0719デフォルトの名無しさん
2005/09/06(火) 14:16:55>>702の一番下の格納配列 objって何を格納したいの?
0720702
2005/09/06(火) 14:28:16vecRec.push_back(Rec);→追加
0721702
2005/09/06(火) 14:30:01stringってC言語なんですか?
0722デフォルトの名無しさん
2005/09/06(火) 14:37:32最近多くて困る。@JaneStyle
0723デフォルトの名無しさん
2005/09/06(火) 14:38:15> MAINTEREC Rec;
> 整数(int)なら→Rec.nWave 浮動小数点(double)なら→Rec.dValve
これが意味分からない。MAINTERECの定義と、CSVの内容の書式を教えてくれ。
こういうことでいいのか?しかもstd::vectorってCじゃないし。
CSV = LINEが1つ以上
LINE = DATA ' ' DATA '\n'
DATA = INT | DOUBLE
0724デフォルトの名無しさん
2005/09/06(火) 14:40:37格納先変数でそ
0725デフォルトの名無しさん
2005/09/06(火) 14:41:28Ctrl+Zで案でゅ
0726デフォルトの名無しさん
2005/09/06(火) 14:51:15色々今試してみたらSHIFT+BackSpaceで再現出来た
0727702
2005/09/06(火) 15:09:24とりあえずもらった資料にはこれぐらいしか書いてないっす。。。
もう一度書きます。
bool LoadMaintenanceFile(LPCTSTR lpsaName/*ファイル名*/,std||vectar<MAINTEREC>/*ファイル内容*/&vecRec)
MAINTEREC Rec; ※数字以外はエラー
---------------- 一つ目は必ず整数
整数→Rec.nWave 2つ目は浮動小数点(ではない場合もある)
実数→Rec.dValve 格納配列ojb
vecRec.push_back(Rec);→追加
0728デフォルトの名無しさん
2005/09/06(火) 15:12:19これだけの量で間違いすぎ
0729702
2005/09/06(火) 15:14:52何を間違ってるの?
0730デフォルトの名無しさん
2005/09/06(火) 15:21:02std||vectar
間違い探し
0732702
2005/09/06(火) 15:26:230733702
2005/09/06(火) 15:58:43[1] 授業単元: プログラム演習
[2] 問題文(含コード&リンク): >>702
[3] 環境
[3.1] OS: win2000
[3.2] コンパイラ名とバージョン: VC++6.0
[3.3] 言語: C++
[4] 期限:9月6日18時00分ぐらいまで
[5] その他の制限: 半角でお願いします
0734デフォルトの名無しさん
2005/09/06(火) 16:01:000735デフォルトの名無しさん
2005/09/06(火) 16:05:180736デフォルトの名無しさん
2005/09/06(火) 16:06:280737デフォルトの名無しさん
2005/09/06(火) 16:08:290738デフォルトの名無しさん
2005/09/06(火) 16:09:46だとしたら、その仕様を書いた人間の頭が悪い。書き直させろ。
0739702
2005/09/06(火) 16:22:161) ファイルを開く
2) ファイルから1行取得し、EOFまで
{
3) ・数字なら処理を!数字でなかったらエラー
4) ・文字列を数値に変換
5) ・整数と実数にわける
6) ・整数ならRec.nWaveに保存してリストの末尾に追加するpush_back(Rec.nWave)
7) ・実数ならRec.dValveに保存してリストの末尾に追加するpush_back(Rec.dValve)
}
8) ファイルを閉じる
0740デフォルトの名無しさん
2005/09/06(火) 16:26:280741デフォルトの名無しさん
2005/09/06(火) 16:47:27だから、問題の仕様自体が曖昧に過ぎるから、皆書くにかけないんだよ。
聞く限りでは内容はかなり簡単そうなんだから。もしそれだけしか仕様が
与えられないのであれば、誰も書けない。
0742702
2005/09/06(火) 16:55:590743デフォルトの名無しさん
2005/09/06(火) 16:58:19fgetcsv
http://php.s3.to/man/function.fgetcsv.html
0744デフォルトの名無しさん
2005/09/06(火) 17:01:29カンマ区切りの場合、文字をダブルコーテーションで区切ると、中のカンマは文字扱い。
まずは扱えるCSVファイルの仕様を確定すること。
漢字が有る場合、漢字の一部をカンマと判断する場合があるので、
1バイト文字と2バイト文字は、それぞれ適切に扱う必要がある。
0745715
2005/09/06(火) 17:04:24期待した通りの物かどうか知らんが、とりあえず上げとく
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/905.txt
それなりに動くとこまでは確認した (↑のままじゃ動かないけど
0746デフォルトの名無しさん
2005/09/06(火) 17:05:030747デフォルトの名無しさん
2005/09/06(火) 17:08:32ふつう、タブでも固定でも無い
0748744
2005/09/06(火) 17:13:090749デフォルトの名無しさん
2005/09/06(火) 17:21:430750デフォルトの名無しさん
2005/09/06(火) 17:25:01サンクスです!
0751デフォルトの名無しさん
2005/09/06(火) 17:38:13文字の中にカンマが入ってる場合(ダブルクォートで囲む)とか、
さらにその中にダブルクォートが入ってる場合(エスケープするんだっけ?)とか、
ちゃんとしたものを実装しようとすると頭が痛くなる罠
0752デフォルトの名無しさん
2005/09/06(火) 17:51:09マルチポストしてないで早く仕様出せ。
0753デフォルトの名無しさん
2005/09/06(火) 19:34:34literalなダブルクォートは二つ重ねて""で書く
イヤらしいのは改行含むカラムがある場合(エクセルはそーゆーのも出力するはず。
CRだかLFだか忘れたが)
0754デフォルトの名無しさん
2005/09/06(火) 19:40:130755デフォルトの名無しさん
2005/09/06(火) 20:04:44確認したら\nだった。
0756デフォルトの名無しさん
2005/09/06(火) 20:06:23LFか。ならstdioやiostreamのテキストモードでの行読みはつかえん
ということだな。
0757デフォルトの名無しさん
2005/09/06(火) 21:53:48#include <stdio.h> #include <malloc.h> #include <string.h>
struct MJlist {
char name [20]; int homerun;
struct MJlist *pointer;
};
int main (void){
struct MJlist *hd,*p1,*p2; int sum =0;
p2=(struct MJlist*)malloc(sizeof(struct MJlist));
strcpy(p2->name,"ICHIRO");
p2->homerun=10;
p2->pointer=NULL;
p1=(struct MJlist*)malloc(sizeof(struct MJlist));
strcpy(p1->name,"MATUI");
p1->homerun=15;
p1->pointer=NULL;
hd->pointer=p1;
p1->pointer=p2;
hd=(struct MJlist*)malloc(sizeof(struct MJlist));
strcpy(hd->name,"Nomo");
hd->homerun=5;
hd->pointer=NULL;
}
0758デフォルトの名無しさん
2005/09/06(火) 21:55:400759デフォルトの名無しさん
2005/09/06(火) 21:58:180760デフォルトの名無しさん
2005/09/06(火) 22:06:07サンプルは動かないわ/仕様は曖昧だわで
回答者がいないほうに一票
0761デフォルトの名無しさん
2005/09/06(火) 22:11:550762デフォルトの名無しさん
2005/09/06(火) 22:12:06このままで名前もホームランの本数も入力できて何人分も追加できるポログラムに
なっているよ。
だからそのまま提出すれば大丈夫でしょう。
もちろんポインターも使ってるし。
0763デフォルトの名無しさん
2005/09/06(火) 22:17:190764デフォルトの名無しさん
2005/09/06(火) 22:19:190765デフォルトの名無しさん
2005/09/06(火) 22:25:12キーボードの付いているパソコンを用意して欲しい。
入力を for で回したいならつぎのようにすればいいかな?
char* nyuryoku[]={"入力 "," 入力 "," 入力","力 入"};
int i;
for(i=0;i<100;i++){
printf("%s\n",nyuryoku[i%4]);
}
0766デフォルトの名無しさん
2005/09/06(火) 22:31:150767デフォルトの名無しさん
2005/09/06(火) 22:32:12どんなんでもいいので教えてください
0768デフォルトの名無しさん
2005/09/06(火) 22:32:350769デフォルトの名無しさん
2005/09/06(火) 22:35:410770デフォルトの名無しさん
2005/09/06(火) 22:44:25#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct MJlist {
char name [20];
int homerun;
struct MJlist *pointer;
};
int main (void) {
struct MJlist *head = NULL, *tail = NULL, *temp;
char name[256]; int homer;
for (; ; ) {
printf("batter?:"); scanf("%255s", name); if (!strcmp(name, "end")) break;
printf("homer?:"); scanf("%d", &homer);
temp = (struct MJlist*)malloc(sizeof(struct MJlist));
strcpy(temp->name, name);
temp->homerun = homer; temp->pointer = NULL;
if (head != NULL) tail->pointer = temp; else head = temp;
tail = temp;
}
temp = head;
while (temp != NULL) {
printf("batter:%s, homer:%d\n", temp->name, temp->homerun);
temp = temp->pointer;
}
while (head != NULL) {
temp = head; head = head->pointer;
free(temp);
}
return 0;
}
0771デフォルトの名無しさん
2005/09/06(火) 22:53:43ありがとうございます(;´д`)
0772デフォルトの名無しさん
2005/09/06(火) 23:34:210773デフォルトの名無しさん
2005/09/06(火) 23:41:200774デフォルトの名無しさん
2005/09/06(火) 23:51:310775デフォルトの名無しさん
2005/09/06(火) 23:53:22それでいい
負数も単体では真
以下チラシの裏
だからGetMessageの戻り値チェックは0以外かじゃなくて0以上かにしろと…(-1が返ってくるとry
0776デフォルトの名無しさん
2005/09/07(水) 00:01:37サンクス。今までずっと0以下がfalseだと勘違いしてた。
まあ、if()に値を直接入れたりはしないようにしてたけど。
0777デフォルトの名無しさん
2005/09/07(水) 00:11:15そいつぁいい心がけだ。
0778デフォルトの名無しさん
2005/09/07(水) 00:46:10そーでもない
値が0か0以外かで保障される場合、むしろ直接使ったほうがいい。
0779デフォルトの名無しさん
2005/09/07(水) 01:17:24...;
}
0780デフォルトの名無しさん
2005/09/07(水) 09:38:47特に779
0781779
2005/09/07(水) 10:31:28適当な関数なら何でもよかった。
0782デフォルトの名無しさん
2005/09/07(水) 13:16:54[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 構造体を作る。
(名前と年齢を入力する関数・名前と年齢を表示する関数を作る)
[3] 環境
[3.1] OS: Windows/Linux/等々
環境とかよくわかりませんがとりあえずWindowsです。
[3.2] コンパイラ名とバージョン: gcc 2.9 VC 6.0等
これちょっとわかりません、すいません・・・・
[3.3] 言語: C/C++/どちらでも可 のいずれか
C言語でお願いします。
[4] 期限: [yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか (「できるだけ早く」は不可)
2005年9月7日(水)今日の5時まで
[5] その他の制限: どこまで習っているか、標準ライブラリは使ってはいけない等々
当方C言語の初心者でいちお構造体習ったのですがさっぱりで・・・
先ほど問題を出されあせっちゃってます(;´Д`)
よろしくお願いします・・・・
0783デフォルトの名無しさん
2005/09/07(水) 13:28:07入出力関数だけ作ればいいのか?
(main関数等はいらんのか?)
0784デフォルトの名無しさん
2005/09/07(水) 13:33:28struct data
{
char name[256];
int age;
};
void input_data(struct data * p)
{
char * pos, buf[64];
printf("Name: ");
fgets(p->name, sizeof(p->name), stdin);
pos = strrchr(p->name, '\n');
if (pos != NULL) * pos = '\0';
printf("Age: ");
fgets(buf, sizeof(buf), stdin);
p->age = atoi(buf);
}
void output_data(struct data * p)
{
printf("Name: %s\nAge: %d\n", p->name, p->age);
}
■ このスレッドは過去ログ倉庫に格納されています