わからないとこだらけです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
オルビ♪

わからないとこだらけです。

#1

投稿記事 by オルビ♪ » 16年前

次のプログラムは,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には何が入るのでしょうか?

(コードは管理人によって字下げされました)

Dixq (管理人)

Re:わからないとこだらけです。

#2

投稿記事 by Dixq (管理人) » 16年前

プレタグは
<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:わからないとこだらけです。

#3

投稿記事 by 御津凪 » 16年前

プレタグで囲むの失敗してますね。(preと/preの残骸が...)

管理人さんが仰っていますが、その部分さえ理解できれば、
この問題は解けますよ。

追記ですが、もし自宅に PC があり、ソースコードをコンパイルできる環境があれば、
回答があっているかどうかチェックできますよ。

あと、問題に対して一応ヒントを。



/*a*/ の部分は宣言を指定する型ですね。
ここには構造体の型名が入ります。

そして、 /*b*/ ~ /*g*/ にはその構造体の型の変数 d の、
構造体変数を指定します。

Dixq (管理人)

Re:わからないとこだらけです。

#4

投稿記事 by Dixq (管理人) » 16年前

C言語の勉強はまず自分のパソコンにコンパイラをインストールすることから始まります。
自分のPCにコンパイラがなければまずインストールしましょう。
何を入れていいかわからない場合は

http://www.microsoft.com/japan/msdn/vstudio/express/

VisualC++2008という奴をインストールして使用することをおススメします。

オルビ♪

一応出来ました。

#5

投稿記事 by オルビ♪ » 16年前

//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:一応出来ました。

#6

投稿記事 by オルビ♪ » 16年前

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;
}
って感じですか?

Dixq (管理人)

Re:一応出来ました。

#7

投稿記事 by Dixq (管理人) » 16年前

印刷するんですか?
ただディスプレイに表示するだけですか?

また、先ほどのプログラムとほとんどかわってないようなきがしますが・・。
入力した数値の絶対値を表示すればいいだけだと思います。

後、自分で実装したほうがいいかもしれませんが、
一応標準関数で絶対値を求める関数がありますので紹介しておきます。
http://always-pg.com/c/runtime_rd/number/abs.html

non

Re:一応出来ました。

#8

投稿記事 by non » 16年前

メンバーxとyで構造体を宣言しなさいという課題ですよね。
そしてその型をtypedefする方法を問う課題です。
最後に、メンバーの参照。
前の課題を参考に、型の宣言をしてみてください。

閉鎖

“C言語何でも質問掲示板” へ戻る