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 3Start
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