C语言,指针
在子程序中,我想调用指针数组里指针所指的原数进行比较,再进行地址交换,可惜调用指针数组里的原数的语法好像不对(标⭐的那一行),有哪位大哥帮我解答一下😭//例题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);
} 本帖最后由 xiaosi4081 于 2020-7-31 16:46 编辑
把代码改成这样:
#include<stdio.h>
void compare(int *x, int *y, int *z);
void 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);
}
void compare(int *x, int *y, int *z)
{
int *a={x,y,z},i,j,*c;
for(i=1;i<3;i++)//冒泡排序
{
for (j = 0; j < 3 - i; j++)
{
if (a > a) //⭐
{
c = a;
a = a;
a = c;
}
}
}
printf("%d>>%d>>%d",a,a,a);
}
你 tm 写的什么东西 xiaosi4081 发表于 2020-7-31 16:26
把代码改成这样:
越改越离谱 永恒的蓝色梦想 发表于 2020-7-31 16:32
越改越离谱
{:10_250:} 按大小顺序输出大小顺序是从大到小还是从小到大啊? 永恒的蓝色梦想 发表于 2020-7-31 16:37
大小顺序是从大到小还是从小到大啊?
大到小 xiaosi4081 发表于 2020-7-31 16:26
把代码改成这样:
你确定这代码能运行? zltzlt 发表于 2020-7-31 16:41
你确定这代码能运行?
改了 xiaosi4081 发表于 2020-7-31 16:46
改了
依然不能运行。 永恒的蓝色梦想 发表于 2020-7-31 16:48
依然不能运行。
{:10_266:} 把代码改成这样就行了:
#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 = {x, y, z}, i, j, *c;
for (i = 1; i < 3; i++) // 冒泡排序
{
for (j = 0; j < (3 - i); j++)
{
if (*(a) > *(a))
{
c = a;
a = a;
a = c;
}
}
}
printf("%d>>%d>>%d", *a, *a, *a);
}
请问有没有方法可以将指针数组里指针所指的原数进行比较 {:10_245:} kindo62 发表于 2020-7-31 16:53
请问有没有方法可以将指针数组里指针所指的原数进行比较
见我 12# 的代码
页:
[1]