掲示板利用宣言

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

 私は

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

掲示板2

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

No.25214

構造体
投稿者---mine(2006/01/11 18:20:07)


名前と番号をメンバーとする構造体を作成し、5件分のデータ入力後、データの表示を行うプログラムです。
登録済みの番号が入力された場合にエラーメッセージを表示して番号を再入力させるにはどうしたらいいでしょうか?
よろしくお願いします。


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

#define NAME_MAX 19
#define DATA_MAX 5
#define BUF 256
#define NO_MIN 1
#define NO_MAX 9999

typedef struct person
{
int no;
char name[NAME_MAX+1];
}Person;

void disp_data(Person *,int);
void input_data(Person *);

int main(void)
{
int cnt;
Person member[DATA_MAX];

for(cnt = 0 ; cnt < DATA_MAX ; cnt++)
{
input_data(&member[cnt]);
}
disp_data(&member[0],DATA_MAX);

return 0;
}

void disp_data(Person *pmem,int max_cnt)
{
int cnt;

printf("\n* No *** Name ***********\n");
for(cnt = 0 ; cnt < max_cnt ; cnt++)
{
printf("%04d %s\n",(pmem+cnt)->no,&(pmem+cnt)->name[0]);
}
printf("\n");

return;
}

void input_data(Person *num)
{
char buf[BUF];

while(1)
{
printf("\nInput number : ");
scanf("%d",&num->no);
if(num->no >= NO_MIN && num->no <= NO_MAX)
{
break;
}
printf("\nSorry. number is %d - %d.\n",NO_MIN,NO_MAX);
}
while(1)
{
printf("Input name : ");
scanf("%s",&buf[0]);
if(strlen(&buf[0])<=NAME_MAX)
{
strcpy(&num->name[0],&buf[0]);
break;
}
printf("\nSorry. Input less than %d characters.\n\n",NAME_MAX+1);
}

return;
}


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:構造体 25215 REE 2006/01/11 18:38:21


No.25215

Re:構造体
投稿者---REE(2006/01/11 18:38:21)


>名前と番号をメンバーとする構造体を作成し、5件分のデータ入力後、データの表示を行うプログラムです。
>登録済みの番号が入力された場合にエラーメッセージを表示して番号を再入力させるにはどうしたらいいでしょうか?

とりあえず、掲示板利用宣言を読みましょう。



この投稿にコメントする

削除パスワード

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