C言語講座第六回演習 解答例
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[C言語講座第六回演習]]
*構造体 [#d04b7619]
1.以下の構造体と列挙型を作りなさい。
構造体名 Order.
メンバ
|型名|メンバ名|
|int|ProductID|
|int|Date|
|int|Number|
列挙型名 Rank
要素: Gold Silver Bronze
構造体名 customer
typedef Customer
メンバ
|型名|メンバ名|
|char*|Name|
|char*|Phone|
|Rank|Rank|
|struct Order[10]|OrderList|
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void main(void)
{
}
~
2.この構造体に以下のデータを入力しなさい。
但し、ProductIDが-1なら注文は無いということとする。 ~
構造体のデータ
Name CSR.Inc
Phone 0801234567
Rank Silver
Order
1. ProductID 22
Date 170215
Number 10
2. ProductID 53
Date 170415
Number 8
3~10: ProductID : -1
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[2].ProductID = -1;
}
~
4. 構造体のポインタdataを引数に持ち以下のように出力する...
その際テストとしてさっきのデータを出力させなさい。
出力形式
Customer Name: CSR.Inc
Phone: 0801234567
Rank: Silver
Order 1:
ID: 22
Date: 170215
Number 10
Order 2:
ID: 53
Date: 170415
Number 8
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void Show(Customer* data);
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[i].ProductID = -1;
Show(&CSR);
}
void Show(Customer* data)
{
printf("Customer Name: %s\n",data->Name);
printf("Phone: %s\n",data->Phone);
switch(data->Rank)
{
case Gold:
printf("Rank: Gold\n");
break;
case Silver:
printf("Rank: Silver\n");
break;
case Bronze:
printf("Rank: Bronze\n");
break;
}
int i;
for(i = 0; i < 10; i++)
{
if(data->Orderlist[i].ProductID == -1)
{
}else{
printf("Order: %d\n",i);
printf("\t ID: %d\n",data->Orderlist[i].ProductID);
printf("\t Date: %d\n",data->Orderlist[i].Date);
printf("\t Number: %d\n",data->Orderlist[i].Number);
}
}
}
~
5. 第七講をみてOrder Rank Customer Showのプロトタイプ をD...
~
解答例:
Data.h:
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void Show(Customer* data);
Data.c:
#include <stdio.h>
#include "Data.h"
void Show(Customer* data)
{
printf("Customer Name: %s\n",data->Name);
printf("Phone: %s\n",data->Phone);
switch(data->Rank)
{
case Gold:
printf("Rank: Gold\n");
break;
case Silver:
printf("Rank: Silver\n");
break;
case Bronze:
printf("Rank: Bronze\n");
break;
}
int i;
for(i = 0; i < 10; i++)
{
if(data->Orderlist[i].ProductID == -1)
{
}else{
printf("Order: %d\n",i);
printf("\t ID: %d\n",data->Orderlist[i].ProductID);
printf("\t Date: %d\n",data->Orderlist[i].Date);
printf("\t Number: %d\n",data->Orderlist[i].Number);
}
}
}
main.c
#include <stdio.h>
#include "data.h"
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[i].ProductID = -1;
Show(&CSR);
}
gcc Data.c main.c でコンパイル
~
終了行:
[[C言語講座第六回演習]]
*構造体 [#d04b7619]
1.以下の構造体と列挙型を作りなさい。
構造体名 Order.
メンバ
|型名|メンバ名|
|int|ProductID|
|int|Date|
|int|Number|
列挙型名 Rank
要素: Gold Silver Bronze
構造体名 customer
typedef Customer
メンバ
|型名|メンバ名|
|char*|Name|
|char*|Phone|
|Rank|Rank|
|struct Order[10]|OrderList|
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void main(void)
{
}
~
2.この構造体に以下のデータを入力しなさい。
但し、ProductIDが-1なら注文は無いということとする。 ~
構造体のデータ
Name CSR.Inc
Phone 0801234567
Rank Silver
Order
1. ProductID 22
Date 170215
Number 10
2. ProductID 53
Date 170415
Number 8
3~10: ProductID : -1
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[2].ProductID = -1;
}
~
4. 構造体のポインタdataを引数に持ち以下のように出力する...
その際テストとしてさっきのデータを出力させなさい。
出力形式
Customer Name: CSR.Inc
Phone: 0801234567
Rank: Silver
Order 1:
ID: 22
Date: 170215
Number 10
Order 2:
ID: 53
Date: 170415
Number 8
~
解答例:
#include<stdio.h>
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void Show(Customer* data);
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[i].ProductID = -1;
Show(&CSR);
}
void Show(Customer* data)
{
printf("Customer Name: %s\n",data->Name);
printf("Phone: %s\n",data->Phone);
switch(data->Rank)
{
case Gold:
printf("Rank: Gold\n");
break;
case Silver:
printf("Rank: Silver\n");
break;
case Bronze:
printf("Rank: Bronze\n");
break;
}
int i;
for(i = 0; i < 10; i++)
{
if(data->Orderlist[i].ProductID == -1)
{
}else{
printf("Order: %d\n",i);
printf("\t ID: %d\n",data->Orderlist[i].ProductID);
printf("\t Date: %d\n",data->Orderlist[i].Date);
printf("\t Number: %d\n",data->Orderlist[i].Number);
}
}
}
~
5. 第七講をみてOrder Rank Customer Showのプロトタイプ をD...
~
解答例:
Data.h:
struct Order
{
int ProductID;
int Date;
int Number;
};
enum Rank
{
Gold,
Silver,
Bronze
};
typedef struct customer
{
char* Name;
char* Phone;
enum Rank Rank;
struct Order Orderlist[20];
} Customer;
void Show(Customer* data);
Data.c:
#include <stdio.h>
#include "Data.h"
void Show(Customer* data)
{
printf("Customer Name: %s\n",data->Name);
printf("Phone: %s\n",data->Phone);
switch(data->Rank)
{
case Gold:
printf("Rank: Gold\n");
break;
case Silver:
printf("Rank: Silver\n");
break;
case Bronze:
printf("Rank: Bronze\n");
break;
}
int i;
for(i = 0; i < 10; i++)
{
if(data->Orderlist[i].ProductID == -1)
{
}else{
printf("Order: %d\n",i);
printf("\t ID: %d\n",data->Orderlist[i].ProductID);
printf("\t Date: %d\n",data->Orderlist[i].Date);
printf("\t Number: %d\n",data->Orderlist[i].Number);
}
}
}
main.c
#include <stdio.h>
#include "data.h"
void main(void)
{
Customer CSR;
CSR.Name = "CSR.Inc";
CSR.Phone = "0801234567";
CSR.Rank = Silver;
CSR.Orderlist[0].ProductID = 22;
CSR.Orderlist[0].Date = 170215;
CSR.Orderlist[0].Number = 10;
CSR.Orderlist[1].ProductID = 53;
CSR.Orderlist[1].Date = 170415;
CSR.Orderlist[1].Number = 8;
int i;
for(i = 2; i < 10; i++)
CSR.Orderlist[i].ProductID = -1;
Show(&CSR);
}
gcc Data.c main.c でコンパイル
~
ページ名: