解答例15-4-1

【問1】

#include <stdio.h>

/* #defineについては第18章参照 */
#define NINZUU 20		/* 人数 */

struct list {
	char name[20];
	double taijyu;
	double sincyou;
};

void print_dt( struct list *sp );

int main( void )
{
	struct list sintai[NINZUU+1];
	int i=0;

	printf( "氏名、体重、身長を入力しなさい。(終了条件:Ctrl+Z)\n" );
	while( ( scanf( "%s %lf %lf", sintai[i].name, &sintai[i].taijyu, 
		&sintai[i].sincyou )!=EOF ) && i<NINZUU ) {
		i++;
	}
	sintai[i].taijyu = -1;	 /* ストッパーの設定 */
	sintai[i].sincyou = -1;	 /* ストッパーの設定 */

	print_dt( sintai );	 /* データ表示 */

	return 0;
}

/*** データ表示処理 ***/
void print_dt( struct list *sp )
{
	printf( "氏名         体重  身長\n" );
	while( sp->taijyu != -1 && sp->sincyou != -1 ) { /* ストッパーまでループ */
		printf( "%-20s %5.1f  %5.1f\n", sp->name, sp->taijyu, sp->sincyou );
		sp++;
	}
}

※Windows9xとMe上で、Windows系のCを用いて「CTRL+Z」の入力を実行した場合、
 「CTRL+Z」の入力後、次の改行までの表示が行なわれません。(2002.06.11 追記)

戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved