ページ 1 / 1
わからないとこだらけです。
Posted: 2008年10月30日(木) 16:46
by オルビ♪
次のプログラムは,name, month, day の3つのデータを端末から構造体に入力し,実行例に示す書式で出力します。a ~ g を埋めてプログラムを完成せよ。
━(ここから)
//en1.c
#include <stdio.h>
typedef struct{
char name[30];
int month;
int day;
} DATE;
int main(void){
/*a*/ d;
printf("名前 月 日 >>");
scanf("%s%d%d", /*b*/, /*c*/, /*d*/);
printf("%d月 %d日 %sさんの誕生日\n",/*e*/,/*f*/,/*g*/);
return 0;
}
━(ここまで)
という問題です。私の考えとしては、
//en1.c
#include <stdio.h>
typedef struct{
char name[30];
int month;
int day;
} DATE;
int main(void){
/*a*/ d;
printf("名前 月 日 >>");
scanf("%s%d%d", &name, &month, &day);
printf("%d月 %d日 %sさんの誕生日\n",month,day,name);
return 0;
}
で、会っているかは全然わかりません。
aには何が入るのでしょうか?
(コードは管理人によって字下げされました)
Re:わからないとこだらけです。
Posted: 2008年10月30日(木) 16:55
by Dixq (管理人)
プレタグは
<pre>と</pre>
(<>は半角)
で挟んで使ってください。
後、これには構造体の知識が必要です。
宿題が出たということは授業で構造体について習ったと思いますが、
教科書はありますか?
もしなければウェブで勉強してみてください。
http://www.google.co.jp/search?hl=ja&q= ... =&aq=f&oq=
いくつかの変数をセットで使えるようにするものです。
また、お書きになったプログラムで文字列の入力部分が違います。
scanfの使い方についても見ておいてください。
http://www.google.co.jp/search?hl=ja&q=scanf&lr=
こちらで勉強して、もう一度考え、もう一度コードを改めて投稿してみてください。
Re:わからないとこだらけです。
Posted: 2008年10月30日(木) 17:06
by 御津凪
プレタグで囲むの失敗してますね。(preと/preの残骸が...)
管理人さんが仰っていますが、その部分さえ理解できれば、
この問題は解けますよ。
追記ですが、もし自宅に PC があり、ソースコードをコンパイルできる環境があれば、
回答があっているかどうかチェックできますよ。
あと、問題に対して一応ヒントを。
/*a*/ の部分は宣言を指定する型ですね。
ここには構造体の型名が入ります。
そして、 /*b*/ ~ /*g*/ にはその構造体の型の変数 d の、
構造体変数を指定します。
Re:わからないとこだらけです。
Posted: 2008年10月30日(木) 17:10
by Dixq (管理人)
C言語の勉強はまず自分のパソコンにコンパイラをインストールすることから始まります。
自分のPCにコンパイラがなければまずインストールしましょう。
何を入れていいかわからない場合は
http://www.microsoft.com/japan/msdn/vstudio/express/
VisualC++2008という奴をインストールして使用することをおススメします。
一応出来ました。
Posted: 2008年10月30日(木) 17:14
by オルビ♪
//en1.c
#include <stdio.h>
typedef struct{
char name[30];
int month;
int day;
} DATE;
int main(void){
DATE d;
printf("名前 月 日 >>");
scanf("%s%d%d",d.name, &d.month, &d.day);
printf("%d月 %d日 %sさんの誕生日\n",d.month,d.day,d.name);
return 0;
}
Re:一応出来ました。
Posted: 2008年10月30日(木) 17:23
by オルビ♪
2つの int型データ PAIR を構造体データ型として宣言する(メンバをx, yとする)。変数 tsui に PAIR を割り当て,tsui のメンバ x と y に 100, -100 を端末から入力し,その2数の差の絶対値を印刷するプログラムを作成せよ。
という問題が続くのですが、
//en1.c
#include <stdio.h>
typedef struct{
char name[100];
int month;
int day;
} PAIR;
int main(void){
PAIR tsui;
printf("名前 月 日 >>");
scanf("%s%d%d",tsui.name, &tsui.month, &tsui.day);
printf("%d月 %d日 %sさんの誕生日\n",tsui.month,tsui.day,tsui.name);
return 0;
}
って感じですか?
Re:一応出来ました。
Posted: 2008年10月30日(木) 17:36
by Dixq (管理人)
印刷するんですか?
ただディスプレイに表示するだけですか?
また、先ほどのプログラムとほとんどかわってないようなきがしますが・・。
入力した数値の絶対値を表示すればいいだけだと思います。
後、自分で実装したほうがいいかもしれませんが、
一応標準関数で絶対値を求める関数がありますので紹介しておきます。
http://always-pg.com/c/runtime_rd/number/abs.html
Re:一応出来ました。
Posted: 2008年10月30日(木) 18:37
by non
メンバーxとyで構造体を宣言しなさいという課題ですよね。
そしてその型をtypedefする方法を問う課題です。
最後に、メンバーの参照。
前の課題を参考に、型の宣言をしてみてください。