掲示板ランキング  水着  着ぐるみ・コスチューム  雨具


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6861

構造体
投稿者---su-(2006/12/05 22:34:02)


gstudent構造体を定義し,ユーザからの入力を3人分(fusayoshi,taro,hanako)受付けて,入力後に全員のデータを表示するプログラムを作成せよ.また構造体への値の代入は,struct gstudent set_gstudent();という関数の内部で行い,返り値として値の入った構造体を受け取るようにすること.



#include<stdio.h>
#include<string.h>

struct gstudent{
char name[20];
int height;
float weight;
int math;
long schols;
};

void show_profile(struct gstudent user_prof) {

printf("名前:%s, 身長:%d, 体重:%f, 数学の成績:%d,奨学金:%ld\n", user_prof.name, user_prof.height, user_prof.weight, user_prof.math,user_prof.schols);
}

struct gstudent set_gstudent(char username[],int userheight,float userweight,int usermath,long userschols){

struct gstudent temp;
strcpy(temp.name,username);
temp.height=userheight;
temp.weight=userweight;
temp.math=usermath;
temp.schols=userschols;

return temp;
}


int main(void) {

struct gstudent fusayoshi,taro,hanako,user_prof;


printf("fusayoshiのデータを入力してください\n");
printf("Fusayoshi\n");
scanf("%s,%d,%f,%d,%ld",user_prof.name,user_prof.height,user_prof.weight,user_prof.math,user_prof.schols);
printf("taroのデータを入力してください\n");
printf("Taro\n");
scanf("%s,%d,%f,%d,%ld",user_prof.name,user_prof.height,user_prof.weight,user_prof.math,user_prof.schols);
printf("hanakoのデータを入力してください\n");
printf("Hanako\n");
scanf("%s,%d,%f,%d,%ld",user_prof.name,user_prof.height,user_prof.weight,user_prof.math,user_prof.schols);
show_profile(fusayoshi);
show_profile(taro);
show_profile(hanako);
return 0;
}

こんなプログラムを作ったのですが、
実行結果が、
fusayoshiのデータを入力してください
Fusayoshi
172,47.2,56,10000
taroのデータを入力してください
Taro
176,60.0,81,50000
hanakoのデータを入力してください
Hanako
165,48.1,75,30000
名前:n@h 奎須 hi@, 身長:-1073743908, 体重:-1.999742, 数学の成績:134514126,奨学金:1075145064
名前:, 身長:0, 体重:2.139266, 数学の成績:1073826116,奨学金:1073826712
名前:wK@, 身長:1073918700, 体重:2.020582, 数学の成績:0,奨学金:0

こんな事になってしまうんですが、どこが可笑しいか教えてもらえませんでしょうか?お願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:構造体 6863 通りすがり 2006/12/05 22:52:46


No.6863

Re:構造体
投稿者---通りすがり(2006/12/05 22:52:46)


せっかく定義したset_gstudent関数を
使っていません。

> scanf("%s,%d,%f,%d,%ld",user_prof.name,user_prof.height,user_prof.weight,user_prof.math,user_prof.schols);

これを何回繰り返しても、FusayoshiやTaroやHanakoのための領域にデータは
入りません。

また、scanfで5つのデータを入力しようとしているのに、

> 172,47.2,56,10000

これでは1つ足りません。



この投稿にコメントする

削除パスワード

No.6864

Re:構造体
投稿者---su-(2006/12/05 23:06:46)


scanf("%s,%d,%f,%d,%ld",user_prof.name,user_prof.height,user_prof.weight,user_prof.math,user_prof.schols);
>
>これを何回繰り返しても、FusayoshiやTaroやHanakoのための領域にデータは
>入りません。

では、どうすればいいんでしょうか?

>また、scanfで5つのデータを入力しようとしているのに、
>
>> 172,47.2,56,10000
>
>これでは1つ足りません。

確かに。つまらないミスで、すみません。


この投稿にコメントする

削除パスワード

No.6865

Re:構造体
投稿者---通りすがり(2006/12/05 23:37:57)


「C言語何でも質問掲示板」への質問はクローズしてください。
#include <stdio.h>

struct gstudent {
    char name[20];
    int height;
    float weight;
    int math;
    long schols;
};

void show_profile(struct gstudent user_prof)
{
    printf("名前:%s, 身長:%d, 体重:%f, 数学の成績:%d, 奨学金:%ld\n",
            user_prof.name,
            user_prof.height,
            user_prof.weight,
            user_prof.math,
            user_prof.schols);
}

struct gstudent set_gstudent(void)
{
    struct gstudent temp;
    
    printf("名  前:"), scanf("%19s", temp.name);
    printf("身  長:"), scanf("%d",   &temp.height);
    printf("体  重:"), scanf("%f",   &temp.weight);
    printf("数  学:"), scanf("%d",   &temp.math);
    printf("奨学金:"), scanf("%ld",  &temp.schols);
    return temp;
}

int main(void)
{
    struct gstudent fusayoshi, taro, hanako;
    
    printf("fusayoshiのデータを入力してください\n");
    fusayoshi = set_gstudent();
    printf("taroのデータを入力してください\n");
    taro = set_gstudent();
    printf("hanakoのデータを入力してください\n");
    hanako = set_gstudent();
    show_profile(fusayoshi);
    show_profile(taro);
    show_profile(hanako);
    return 0;
}





この投稿にコメントする

削除パスワード

No.6869

Re:構造体
投稿者---su-(2006/12/06 19:04:02)


あっちに書いてあるのと違いますね^^


この投稿にコメントする

削除パスワード

No.6870

Re:構造体
投稿者---通りすがり(2006/12/06 19:35:25)


別の回答者が書いたコードですから、内容が違っているのは当然です。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ