ソースコード
源文件
1|
2|
3|#include <stdio.h>
4|#include <stdlib.h>
5|#include <string.h>
6|
7|#define PAN "パン食い競走"
8|#define KYO "100m 競走"
9|#define NO 6
10|
11|typedef struct {
12| char name [16];
13| char kyogi[32];
14| union {
15| double tm;
16| int juni;
17| } seiseki;
18|} DATA, *LPDATA;
19|
20|int myinput (LPDATA p, char *nm, char *kg, char *sk);
21|
22|int main(void){
23| DATA data[NO];
24| LPDATA lpdata;
25| int i;
26|
27| lpdata = data;
28|
29| myinput(lpdata + 0, "田中", PAN, "1");
30| myinput(lpdata + 1, "佐藤", KYO, "20.5");
31| myinput(lpdata + 2, "河野", PAN, "2");
32| myinput(lpdata + 3, "加藤", PAN, "4");
33| myinput(lpdata + 4, "山田", KYO, "15.2");
34| myinput(lpdata + 5, "遠藤", PAN, "3");
35|
36| printf("%4s %-14s %4s\n", "氏名", "競走名", "成績");
37| printf("----------------------------------\n");
38| for(i = 0; i < NO; i++){
39| printf("%4s %-14s ", data[i].name, data[i].kyogi);
40| if( strcmp( data[i].kyogi, "100m 競走") == 0){
41| printf("%4.1f秒\n", data[i].seiseki.tm);
42| } else {
43| printf("%4d位\n", data[i].seiseki.juni);
44| }
45| }
46| return 0;
47|}
48|
49|
50|int myinput (LPDATA p, char *nm, char *kg, char *sk)
51|{
52| strcpy(p->name, nm);
53| strcpy(p->kyogi, kg);
54| if(!strcmp(kg, PAN)){
55| p->seiseki.juni = atoi(sk);
56| } else {
57| p->seiseki.tm = atof(sk);
58| }
59| return 0;
60|}
|