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】
0002デフォルトの名無しさん
2005/08/10(水) 17:12:0546代目: http://pc8.2ch.net/test/read.cgi/tech/1119514274/
45代目: http://pc8.2ch.net/test/read.cgi/tech/1118165596/
0003デフォルトの名無しさん
2005/08/10(水) 17:12:5643代目: 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/08/10(水) 17:13:4028代目: 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/08/10(水) 17:14:2113代目: 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/08/10(水) 17:31:220007デフォルトの名無しさん
2005/08/10(水) 17:32:53http://pc8.2ch.net/test/read.cgi/tech/1122705615/
じゃねの?
0008デフォルトの名無しさん
2005/08/10(水) 17:37:000009デフォルトの名無しさん
2005/08/11(木) 11:07:53[2] 問題文(含コード&リンク): x1,y1,x2,y2に外接する楕円があり
点x,yがその円の内側か外側かの判定をする関数を作れ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: ANSI C
[3.3] 言語: C
[4] 期限: 9月1日まで
[5] その他の制限: なし
0010デフォルトの名無しさん
2005/08/11(木) 12:02:310011デフォルトの名無しさん
2005/08/11(木) 12:05:05箱の中に入ってる楕円の中か外かというイメージです
0012デフォルトの名無しさん
2005/08/11(木) 12:06:23つーか、(x1, y1) - (x2, y2)の線分も楕円がつぶれた形と言えるし。
そうか、全ての点は内側に成らない可能性があるから判定の必要ないじゃん(ぉぃ
0013デフォルトの名無しさん
2005/08/11(木) 12:09:11(x1, y2)
(x2, y2)
(x2, y1)
の4点に外接する楕円ってこと?
0014デフォルトの名無しさん
2005/08/11(木) 12:14:12あーは子の中に入ってる楕円ってそういう意味かなるほど。
>>9
問題文をもっとわかりやすくかけよ
0015デフォルトの名無しさん
2005/08/11(木) 12:16:460016デフォルトの名無しさん
2005/08/11(木) 12:34:06なんかうまい方法あるのかな??期待してます。
0017デフォルトの名無しさん
2005/08/11(木) 12:37:54>>9
ま、斜めを考慮しないなら
/* 外側なら正、楕円上ならゼロ、内側なら負を返す */
int wrt_ellipse(double x1, double y1, double x2, double y2, double x, double y)
{
double x0, y0, a, b, d;
x0 = (x1 + x2) / 2.0; y0 = (y1 + y2) / 2.0; a = (x2 - x1) / 2; b = (y2 - y1) / 2;
d = (x - x0) * (x - x0) / (a * a) + (y - y0) * (y - y0) / (b * b);
return d == 1.0 ? 0 : (d > 1.0 ? 1 : -1);
}
0018デフォルトの名無しさん
2005/08/11(木) 12:38:370019デフォルトの名無しさん
2005/08/11(木) 12:39:45おお!ありがとうございます!!!
0020デフォルトの名無しさん
2005/08/11(木) 12:40:53箱の中なら内接じゃないのか?
0021デフォルトの名無しさん
2005/08/11(木) 15:19:570022お願いします。
2005/08/11(木) 15:23:12[2] 問題文:後で。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:NET2003
[3.3] 言語: C++
[4] 期限:5時間くらい
[5] その他の制限:Array,Struct,Class,Function,Strings(Pointer無し)
0023デフォルトの名無しさん
2005/08/11(木) 15:27:000024デフォルトの名無しさん
2005/08/11(木) 15:28:080025デフォルトの名無しさん
2005/08/11(木) 15:34:195時間くらいっていつまでだwwww
0026お願いします。
2005/08/11(木) 15:36:46PhrasesとそのResponsesとが上から交互にリストしてある。
このDataFile名をchatbot.txtとする。
hello
hello to you too
my name is
thank you for telling me your name
your name
my name is Mr. Computer
my mother
tell me more about your family
I like to
why do you like this
I like
I like that too
my
this sounds important to you
I go to
Tell me more about where you go
I must
what will happen if you don't do this
bye
goodbye
0027お願いします。
2005/08/11(木) 15:37:49例えば、ユーザーがhelloと入れたらコンピューターはhello to you tooと応える
ファイルのデータをプログラム内のArrayにロードして、ユーザーのInputにパターンがあるか
探す。(find関数を使って)もしあれば、応える。Structとかも使ってよい。
==は使ってはいけない。
もし”my name is mud" や"do you know my name is" のInputなら
"thank you for telling me your name." と返す。
プログラムはランダムに選ばれる3つのDefaultResponsesも含んでなければいけない。
もし、適切なResponseがChatbotにないときにこの内の一つを返す。
ユーザーがbyeと入れたら、プログラム終了。
ユーザーInputを"I"以外全てLowercaseに変える。
0028デフォルトの名無しさん
2005/08/11(木) 15:44:290029お願いします。
2005/08/11(木) 15:47:260030デフォルトの名無しさん
2005/08/11(木) 15:49:240031デフォルトの名無しさん
2005/08/11(木) 15:57:36つか酷い英語だと思ったら全部目的語を抜いてるのかよ。
"do you know my name is"ってなにかと思った。
私の名前が存在していることを知っていますかってなんじゃw
で、制限についてもうちょっとまともな説明は無いのか?
0032デフォルトの名無しさん
2005/08/11(木) 16:13:540033お願いします。
2005/08/11(木) 16:22:120034デフォルトの名無しさん
2005/08/11(木) 17:27:170035デフォルトの名無しさん
2005/08/11(木) 18:24:07int a=1; int b=2; int c=3;
void f(int x, int y, int z){
int b=0;
a=a+x; b=b+y; c=c+z;
printf("%d,%d,%d,",a,b,c);
}
main(){
int a;
a=10; b=20; c=30;
f(100,200,300);
printf("%d,%d,%d\n",a,b,c);
}
の出力結果が 101,200,330,10,20,330になるのですが
理解できません。解説おながいします。
[3.3] 言語: C
[4] 期限: [無期限]
0036デフォルトの名無しさん
2005/08/11(木) 18:28:50グローバルスコープとmain()関数内スコープを持つ二つのaがあることは判るかな?
同様にグローバル変数とf()関数内ローカル変数の二つのbがあるわけだ。
cは唯一グローバルにしかないからこれが一番判りやすかろう。
cの出力の結果を踏まえて、aとbについても考えてみれば判るんでないかな?
0038お願いします。
2005/08/11(木) 23:28:580039お願いします。
2005/08/11(木) 23:30:530040デフォルトの名無しさん
2005/08/11(木) 23:57:35== つかうなってなんだよ。
std::map つかわせろよ。
0041お願いします。
2005/08/12(金) 00:27:29#include <iostream>
#include <string>
#include <fstream>
using namespace std;
string reply(string input)
int main()
{
string chat[100000];
ifstream file;
file.open("chatbot.txt");
for(int i=0; ; i++)file>>chat[i];
string input=" ", output=" ";
cout<<"Hello! Talk to me"<<endl;
do{
getline(cin, input);
output=reply(input);
}while(input!="bye");
0042デフォルトの名無しさん
2005/08/12(金) 00:30:18}
string reply(string input)
{
int p1, p2
p1=input.find("hello")
ここまでやってつまってます。。。
0043デフォルトの名無しさん
2005/08/12(金) 00:45:43マジセンスねぇ
0044デフォルトの名無しさん
2005/08/12(金) 00:50:11std::vector<std::pair<std::vector<std::string>, std::string> >になりそうだけど、いい?
0045デフォルトの名無しさん
2005/08/12(金) 00:58:38一応動作するはず。
#include <cstdlib>
#include <ctime>
#include <cctype>
#include <fstream>
#include <iostream>
#include <string>
#include <utility>
#include <vector>
typedef std::vector<std::pair<std::string, std::string> > array;
array read_data_file(std::ifstream& data_file) {
std::string input, output;
array res;
while (std::getline(data_file, input) && std::getline(data_file, output))
res.push_back(std::make_pair(input, output));
return res;
}
void convert(std::string& str) {
const char delimiters[] = " \t,.;:\"?!";
std::string::size_type start_index = str.find_first_not_of(delimiters);
while (start_index != std::string::npos) {
std::string::size_type end_index = str.find_first_of(delimiters, start_index);
if (end_index == std::string::npos) end_index = str.length();
if (!(end_index - start_index == 1 && str[start_index] == 'I'))
for (std::string::size_type i = start_index; i < end_index; ++i)
str[i] = std::tolower(str[i]);
start_index = str.find_first_not_of(delimiters, end_index);
}
}
0046>>45 の続き
2005/08/12(金) 00:59:19int r = rand() % 3;
return r == 0 ? "yeah" : r == 1 ? "huh" : "hmm";
}
int main() {
std::srand(unsigned int(std::time(0)));
std::ifstream data_file("chatbot.txt");
array res = read_data_file(data_file);
std::string input;
while (std::getline(std::cin, input)) {
convert(input);
array::iterator begin = res.begin(), end = res.end();
while (begin != end && input.find(begin->first) == std::string::npos) ++begin;
if (begin == end)
std::cout << random_response() << std::endl;
else
std::cout << begin->second << std::endl;
if (input.find("bye") != std::string::npos) break;
}
}
004845
2005/08/12(金) 01:00:350049デフォルトの名無しさん
2005/08/12(金) 02:10:100050デフォルトの名無しさん
2005/08/12(金) 02:40:43[3] 環境
[3.1] OS: RedHat Linux
[3.2] コンパイラ名とバージョン: gcc 2.9
[3.3] 言語: Cのみ
[4] [2005年08月15日07:30まで]
[5] その他の制限: 標準でインストールされないライブラリは使用不可
005141
2005/08/12(金) 04:55:13#include <string>
#include <fstream>
#include <ctime>
#include <cctype>
using namespace std;
int main()
{
srand(time(0));
string chat[100];
string input, output, sentense;
int p1, x, res;
ifstream file1;
file1.open("chatbot.txt");
if(file1.fail()) exit(1);
for(int i=0; i<100; i++)
{
getline(file1, sentense);
chat[i]=sentense;
}
cout<<"Hello! Talk to me."<<endl;
0052デフォルトの名無しさん
2005/08/12(金) 04:57:08getline(cin, input);
for(int c=0; ; c++)
{input=tolower(input[c]);}
x=input.find(" i ");
if(x>=0)input.insert(x+2, " I ");
for(int i=0; i<100; i+=2)
{
p1=input.find(chat[i]);
0053デフォルトの名無しさん
2005/08/12(金) 04:57:43{
cout<<chat[i+1]<<endl;
break;
}
}
else //Default
{
res=rand()%3;
if(res==0) {output="I have no response.";}
else if(res==1) {output="Talk to me again.";}
else {output="Try again.";}
cout<<output<<endl;
break;
}
}while(input!="bye");
return 0;
}
005441
2005/08/12(金) 04:58:150055デフォルトの名無しさん
2005/08/12(金) 07:36:03あと>>52の7〜9行目みたいなのは、とりあえず大枠が完成するまで
コメントアウトしといてもいいと思う。。’I’を使わなくていいデータもあるから。。
以上C++は触ったこともない俺より。。データ型とか関数とかよくわかってないから
そのへんは他の方にtouch!!
んで>>45-46さんが書いてくれてるから見ときな。。
0056前スレの606、875です
2005/08/13(土) 23:06:08前スレの>>985のコードを組み込んだのですが、強制終了してしまいます。
私の組み込み方が悪いのかも知れませんので、前スレ985のコードを取り込んだ
すべてのコードをロダにUPしていただけませんでしょうか。お力添えよろしくお願いいたします。
0057デフォルトの名無しさん
2005/08/13(土) 23:27:36・自分で手を入れたソース
・出てくるエラー
・強制終了の手順
をアップしてみたら?
0058前スレの606、875です
2005/08/14(日) 00:01:15はい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/821.c
これが元のコードです。
このコードに前スレ985の関数を追加し、mainのwhileの前で呼んでも、
登録の時、ファイルを開く時にほとんどの場合、強制終了してしまいます。
0059デフォルトの名無しさん
2005/08/14(日) 00:30:30・問題文(条件やら前提やら全部)
・あなたが修正を加えたソース
・操作手順(データファイル作って、次に読み込ませるところまで)
・データファイルの内容
・もしコンパイル時にエラーが出るならそのエラー
をUP。
答えられる人でも情報が小出しだと、面倒で答えたくなくなるから。
聴く人も丁寧にやらなくちゃ・・・ね?
0060デフォルトの名無しさん
2005/08/14(日) 00:33:37ちゃんと動いたぞ。Linuxだけど。細かくは見てない。
0061前スレの606、875です
2005/08/14(日) 02:05:07すみません。何度も同じ問題を貼るのはよくないのかな。。と思いましたので・・・。
では、機能追加の分も付け加えてもう一度貼らせていただきます。
問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/857.txt
元コード
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/821.c
修正したコード
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/858.txt
>>60
実行されたコードをロダにUPしていただけるとありがたいのですが・・・。
よろしくお願いいたします。
0062デフォルトの名無しさん
2005/08/14(日) 02:39:05で、前スレ985(987)が来たわけだが。こっちに差し替えって読まなかった?
/* ファイルを読む */
void ReadFromFile() {
Person* person = (Person*)malloc(sizeof(Person));
FILE* stream = fopen(OUTPUT_PATH,"r");
if (stream) {
while (fscanf(stream,"%d%s%s",&person->number,&person->name,&person->position) == 3) {
person->next = NULL;
SetMember(person);
person = (Person*)malloc(sizeof(Person));
}
fclose(stream);
free(person);
}
}
0063デフォルトの名無しさん
2005/08/14(日) 12:18:11[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ名とバージョン: gcc 2.9
[3.3] 言語: C
[4] 期限: 2005年08月15日まで
[5] その他の制限: %xは使用してはいけない
0064デフォルトの名無しさん
2005/08/14(日) 13:25:28#include <stdio.h>
#include <stdlib.h>
static const char* hexDigits = "0123456789abcdef";
static const char hexMask = (1 << 4) - 1;
static const int width = 10;
int main(int argc, char* argv[]) {
FILE* fp;
int len, bytes = 0;
unsigned char buf[256];
if(argc <= 1) {
fprintf(stderr, "こう使う。hexdump FILE\n");
exit(1);
}
if((fp = fopen(argv[1], "rb")) == NULL) {
fprintf(stderr ,"ひらけね\n");
exit(1);
}
while(0 < (len = fread(buf, sizeof(char), sizeof(buf), fp))) {
int i;
for(i=0; i < len; i++) {
putchar( hexDigits[(buf[i] >> 4) & hexMask] );
putchar( hexDigits[ buf[i] & hexMask] );
printf("%s", ((++bytes % width) == 0)? "\n": " ");
}
}
fclose(fp);
return 0;
}
0065デフォルトの名無しさん
2005/08/14(日) 13:44:29ありがとうございます!
0066デフォルトの名無しさん
2005/08/14(日) 16:39:480067デフォルトの名無しさん
2005/08/14(日) 16:41:410068デフォルトの名無しさん
2005/08/14(日) 16:49:530069デフォルトの名無しさん
2005/08/14(日) 16:59:26定義され、空はマクロNULLで表す。
struct TreeNode{
int value;
struct TreeNode* left;
struct TreeNode* right;
};
二分木と正の整数nを受け取り、nよりも大きな値を持つ要素の位置と
値を出力する、次のような名前と型を持つC言語の関数を定義せよ。
void printLargerForTree(struct TreeNode* data,int n);
ただし二分木中のノードの位置は次のような数で表現することにする。
・ルートノードの位置は0で表現される。
・あるノードの位置がxで表されるとき、そのleft側の子ノードの位置は2x+1
そのright側の子ノードの位置は2x+2で表される。
この関数を定義するにあたって、printLargerForTreeの引数を一つ増やした
補助的な関数
void printLargerForTreeAux(struct TreeNode* data,int n,int pos);
を再帰的に定義し、この関数を利用してvoid printLargerForTreeを定義せよ。
お願いします。
0070デフォルトの名無しさん
2005/08/14(日) 17:06:59>>1のテンプレ読もうか
0071デフォルトの名無しさん
2005/08/14(日) 18:12:38[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc 2.9
[3.3] 言語: C
[4] 期限: 2005年08月16日まで
[5] その他の制限:問題文に記載
0072デフォルトの名無しさん
2005/08/14(日) 21:04:51char *str_insert(char *s1,char *s2,int pos)
{
char temp[255];
int i, j = 0, len;
for (i = 0; s1[i] != '\0'; i++); len = i;
if (len < pos) return NULL;
for (i = pos - 1; s1[i] != '\0'; i++, j++) temp[j] = s1[i];
temp[j] = '\0';
for (i = 0; s2[i] != '\0'; i++); len = i;
for (i = 0; i < len; i++){
s1[pos - 1] = s2[i];
pos++;
}
for (i = 0; temp[i] != '\0'; i++){
s1[pos - 1] = temp[i];
pos++;
}
s1[pos - 1] = '\0';
return s1;
}
0073デフォルトの名無しさん
2005/08/14(日) 21:13:37#include <string.h>
char *str_insert(char *s1,char *s2,int pos)
{
size_t len1, len2;
len1 = strlen(s1);
len2 = strlen(s2);
if (pos > len1)
return NULL;
memmove(s1 + pos + len2, s1 + pos, len1 - pos);
memmove(s1 + pos, s2, len2);
s1[len1 + len2] = '\0';
return s1;
}
0074デフォルトの名無しさん
2005/08/14(日) 21:20:31大きいノードすべてを表示するのか、それとも1つだけでよいのか
0075デフォルトの名無しさん
2005/08/14(日) 21:37:17すいません。
大きいノード全てを表示します。
0076デフォルトの名無しさん
2005/08/14(日) 21:48:19{
printLargerForTreeAux(data, n, 0);
}
void printLargerForTreeAux(struct TreeNode* data,int n,int pos)
{
if (data == NULL)
return;
if (data->value > n)
printf("% 3d %d\n", pos, data->value);
printLargerForTreeAux(data->left, n, 2 * pos + 1);
printLargerForTreeAux(data->right, n, 2 * pos + 2);
}
0077デフォルトの名無しさん
2005/08/15(月) 00:35:52元の文字列が250文字あって、たとえば50文字を挿入するとかってヤヴァくね?
0078デフォルトの名無しさん
2005/08/15(月) 00:40:18宿題だし。それに、それを呼び出し元が管理するか呼び出し先が
管理するかはポリシーの問題。
007977
2005/08/15(月) 00:46:05でも挿入位置のチェックだけは呼ばれた側でやるの?おかしくね?
0080デフォルトの名無しさん
2005/08/15(月) 00:50:010081デフォルトの名無しさん
2005/08/15(月) 00:56:50でも与えられたポインタがNULLかどうかはチェックしない、と
0082デフォルトの名無しさん
2005/08/15(月) 00:59:410083デフォルトの名無しさん
2005/08/15(月) 01:07:550084デフォルトの名無しさん
2005/08/15(月) 01:08:140085デフォルトの名無しさん
2005/08/15(月) 01:15:02strcpy()の受け側の文字列が十分に大きくない場合 (つまり、プログラマが間抜けか不精で、
コピーする前にサイズをチェックすることを怠った場合)、何が起こるかわからない。
固定長文字列を溢れさせるのはクラッカーが好むテクニックである。
0086デフォルトの名無しさん
2005/08/15(月) 10:12:490087デフォルトの名無しさん
2005/08/15(月) 10:27:53ただの宿題なんだろうし。
0088デフォルトの名無しさん
2005/08/15(月) 14:24:17[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: gcc 2.9
[3.3] 言語: C言語
[4] 期限: 2005年8月19日 07:30まで
[5] その他の制限:特になし
おながいします
0089デフォルトの名無しさん
2005/08/15(月) 15:35:58すまん、簡単すぎて食指が動かん。
んー・・?
たぶん>>71と同一人物だろうが、前の奴らに礼くらいしたらどうだ?
0090デフォルトの名無しさん
2005/08/15(月) 16:19:50こんな簡単なものも自分で解けなくて、本当に卒業出来るのだろうか。
0091デフォルトの名無しさん
2005/08/15(月) 16:56:490092デフォルトの名無しさん
2005/08/15(月) 17:02:03初心者なんで間違っていたらごめんなさい
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/862.txt
0093デフォルトの名無しさん
2005/08/15(月) 17:05:44君は?
009492!=88
2005/08/15(月) 17:13:010095デフォルトの名無しさん
2005/08/15(月) 17:19:11ワロス
問題文よく嫁w
0096デフォルトの名無しさん
2005/08/15(月) 17:45:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/863.txt
0097デフォルトの名無しさん
2005/08/15(月) 18:02:11>(男:'M' 女:'F')
とあるが'M','F'以外の入力もおけ
かつ'M'以外なら女にしてもおけ?
0098デフォルトの名無しさん
2005/08/15(月) 18:04:35#include <stdio.h>
#include <string.h>
struct data {
char name[100];
char sex;
double sintyo;
double taiju;
};
int main(void) {
double d;
char buf[2];
struct data person;
for (; ; ) {
printf("名前入力:"); scanf("%s", person.name);
if (!strcmp(person.name, "end")) break;
printf("性別入力:"); scanf("%1s", buf);
person.sex = buf[0];
printf("身長入力:"); scanf("%lf", &person.sintyo);
printf("体重入力:"); scanf("%lf", &person.taiju);
d = person.taiju - (person.sintyo - 100) * 0.9;
printf("\n%s%sは、平均体重より%fkg%sです。\n\n", person.name, person.sex == 'M' ? "君" : "さん", d > 0 ? d : -d, d > 0 ? "多い" : "少ない");
}
return 0;
}
0099デフォルトの名無しさん
2005/08/15(月) 18:07:11>97
0100デフォルトの名無しさん
2005/08/15(月) 18:25:04%c
0101デフォルトの名無しさん
2005/08/15(月) 18:28:46改行が残ってバッファをクリアしたりするのメンドイ。
■ このスレッドは過去ログ倉庫に格納されています