C
x
50
1
/* 三つのint型整数を小さい順に表示する関数
2
int min3(int x, int y, int z)
3
を作成せよ.但し,動作を確認するための適当なmain関数も併せて作成せよ.*/
4
5
6
7
void swap(int *k,int *l)
8
{int temp;
9
temp=*k;
10
*k=*l;
11
*l=temp;
12
return;
13
}
14
15
void min3(int x,int y,int z)
16
{
17
int data[]={x,y,z};
18
19
if(data[0]>data[1]){
20
swap(&data[0],&data[1]);
21
}
22
23
if(data[1]>data[2]){
24
swap(&data[1],&data[2]);
25
}
26
27
if(data[2]>data[3]){
28
swap(&data[2],&data[3]);
29
}
30
31
printf("%d,%d,%d",data[0],data[1],data[2]);
32
33
return;
34
}
35
36
37
int main(void)
38
{int i;
39
int data[];
40
printf("数字を入力してください");
41
for(i=0;i<=2;i++){
42
printf("i=");
43
scanf("%d",data[i]);}
44
45
printf("小さい順に並べると%dとなります。");min3(&data[0],&data[1],&data[2]);
46
47
return 0;
48
49
}
50
$ gcc prog.c -Wall -Wextra -std=c11 -pedantic
Stdin
1 2 3
Start
prog.c: In function 'main': prog.c:39:5: error: array size missing in 'data' 39 | int data[]; | ^~~~ prog.c:43:13: warning: format '%d' expects argument of type 'int *', but argument 2 has type 'int' [-Wformat=] 43 | scanf("%d",data[i]);} | ~^ ~~~~~~~ | | | | int * int prog.c:45:32: warning: format '%d' expects a matching 'int' argument [-Wformat=] 45 | printf("小さい順に並べると%dとなります。");min3(&data[0],&data[1],&data[2]); | ~^ | | | int prog.c:45:53: warning: passing argument 1 of 'min3' makes integer from pointer without a cast [-Wint-conversion] 45 | printf("小さい順に並べると%dとなります。");min3(&data[0],&data[1],&data[2]); | ^~~~~~~~ | | | int * prog.c:15:15: note: expected 'int' but argument is of type 'int *' 15 | void min3(int x,int y,int z) | ~~~~^ prog.c:45:62: warning: passing argument 2 of 'min3' makes integer from pointer without a cast [-Wint-conversion] 45 | printf("小さい順に並べると%dとなります。");min3(&data[0],&data[1],&data[2]); | ^~~~~~~~ | | | int * prog.c:15:21: note: expected 'int' but argument is of type 'int *' 15 | void min3(int x,int y,int z) | ~~~~^ prog.c:45:71: warning: passing argument 3 of 'min3' makes integer from pointer without a cast [-Wint-conversion] 45 | printf("小さい順に並べると%dとなります。");min3(&data[0],&data[1],&data[2]); | ^~~~~~~~ | | | int * prog.c:15:27: note: expected 'int' but argument is of type 'int *' 15 | void min3(int x,int y,int z) | ~~~~^
1
Finish