|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在子程序中,我想调用指针数组里指针所指的原数进行比较,再进行地址交换,可惜调用指针数组里的原数的语法好像不对(标⭐的那一行),有哪位大哥帮我解答一下😭
//例题4.输入a,b,c三个整数,按大小顺序输出
void main()
{
int a,b,c;
int *p_1,*p_2,*p_3;
void compare(int *x,int *y,int *z);
printf("Please input 3 numbers:\n");
scanf("%d %d %d",&a,&b,&c);
p_1=&a;
p_2=&b;
p_3=&c;
compare(p_1,p_2,p_3);
}
void compare(int *x,int *y,int *z)
{
int *a【2】={x,y,z},i,j,*c;
for(i=1;i<3;i++)//冒泡排序
{
for(j=0;j<3-i;j++)
{
if(a【*(j+1)】>a【*j】)//⭐
{
c=a【j】;
a【j】=a【j+1】;
a【j+1】=c;
}
}
}
printf("%d>>%d>>%d",*x,*y,*z);
}
把代码改成这样就行了:
- #include <stdio.h>
- void compare(int *x, int *y, int *z);
- int main()
- {
- int a, b, c;
- int *p_1, *p_2, *p_3;
- printf("Please input 3 numbers:\n");
- scanf("%d %d %d", &a, &b, &c);
- p_1 = &a;
- p_2 = &b;
- p_3 = &c;
- compare(p_1, p_2, p_3);
- return 0;
- }
- void compare(int *x, int *y, int *z)
- {
- int *a[3] = {x, y, z}, i, j, *c;
- for (i = 1; i < 3; i++) // 冒泡排序
- {
- for (j = 0; j < (3 - i); j++)
- {
- if (*(a[j + 1]) > *(a[j]))
- {
- c = a[j];
- a[j] = a[j + 1];
- a[j + 1] = c;
- }
- }
- }
- printf("%d>>%d>>%d", *a[0], *a[1], *a[2]);
- }
复制代码
|
|