複数の型をまとめる

練習問題16

MMGames


基本知識


1-1
複数の異なる型をまとめる方法のことをなんと呼ぶか。
解答例


プログラム書取


2-1
3人分の、名前、年齢、性別、を入力して表示するプログラムを作りなさい。
ただし、データは構造体で記憶することとし、
また、データの入力と表示はそれぞれ専用の関数を作って行うこととする。
解答例


記述式


3-1
別々に変数を宣言しても問題なくデータを記憶できるのに、
わざわざ構造体を使うのは何故か簡潔に説明せよ。
解答例

基本知識(解答例)


1-1
構造体
問題


プログラム書取(解答例)


2-1
#include <stdio.h>
#include <string.h>

typedef struct {
	char name[256];
	int age;
	int sex;
} People;

void InputPeople(People *data);
void ShowPeople(People data);

int main(void)
{
	People data[3];
	int i;
	
	for (i = 0;i < 3;i++) {
		InputPeople(&data[i]);
	}
	
	for (i = 0;i < 3;i++) {
		ShowPeople(data[i]);
	}
	
	return 0;
}

void InputPeople(People *data)
{
	printf("名前:");
	scanf("%s",data->name);
	printf("年齢:");
	scanf("%d",&data->age);
	printf("性別(1-男性、2-女性):");
	scanf("%d",&data->sex);
	printf("\n");
}

void ShowPeople(People data)
{
	char sex[16];
	
	printf("名前:%s\n",data.name);
	printf("年齢:%d\n",data.age);
	
	if (data.sex == 1) {
		strcpy(sex,"男性");
	} else {
		strcpy(sex,"女性");
	}
	
	printf("性別:%s\n",sex);
	printf("\n");
}
※このプログラムを大きく拡張すれば、
 簡単な住所録管理プログラムを作ることも可能です。
問題


記述式(解答例)


3-1
構造体にすれば関連性のあるデータをまとめて管理できて便利だから。
問題

サイト目次


第0部:プログラム概要編

  1. プログラムとは何か?

2章:プログラムの書き方

  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2

3章:画面への表示

  1. 文字列の表示
  2. 改行文字
  3. 練習問題3

6章:キーボードからの入力

  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6

9章:回数が決まっている繰り返し

  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9

10章:回数がわからない繰り返し

  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10

13章:複数の変数を一括して扱う

  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13

20章:複数のソースファイル

  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20