5个回答
展开全部
需要填写的代码,以及需要修改的地方如下
#include <stdio.h>
int swap(int *p, int *p2);
int main()
{
//int swap(int *p, int *p2);
int n1=3, n2=21, n3=15;
int *pointer1,*pointer2,*pointer3;
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1<n2) swap(pointer1,pointer2);
if(n1<n3) swap(pointer1,pointer3);
if(n2<n3) swap(pointer2,pointer3);
printf("the sorted numbers are :%d,%d,%d\n",n1,n2,n3);
return 0;
}
int swap(int *p1, int *p2)
{
int p;
/*************Begin*************/
p = *p1;
*p1 = *p2;
*p2 = p;
/*************End***************/
//return(*p1,*p2);
//N0N0();
}
/*
N0N0()
{
FILE *fp,*wf;
int i;
char s[20];
long n;
fp = fopen("c:\\test\\in.dat","r");
wr = fopen("c:\\test\\out.dat","w");
for(i=0; i<10; i++)
{
fscanf(fp, "%s", s);
n =fun(s);
fprintf(wf,"%ld\n",n);
}
}
*/
其实数组名就是一个指针,下面是传递数组名,也是使用指针:
#include <stdio.h>
#include <stdlib.h>
void sort( int * p);//声明函数
int n1,n2,n3;//用于分别存放从大到小的数字
int main()
{
//int i;
int nums[3]={0}; //用于接收3个整形数字
printf("请输入3个整形数字:\n\n");
printf("请输入第1个整形数字:\n");
scanf("%d",&nums[0]);
printf("请输入第2个整形数字:\n");
scanf("%d",&nums[1]);
printf("请输入第3个整形数字:\n");
scanf("%d",&nums[2]);
/*连续输入3个整数使用for循环。例如输入22空格 33空格 11空格,回车*/
//for(i=0; i<3; i++)
//{
// scanf("%d",&nums[i]);
//}
//int swap(n1, n2, n3);
//printf("%d,%d,%d",nums[0],nums[1],nums[2]);//测试使用
sort(nums); //传递数组名相当于使用指针的方法实现
printf("3个数从大到小顺序是:\t%d\t%d\t%d\n",n1,n2,n3);
return 0;
}
void sort(int * p)
{
int i,j,temp;//循环变量
for(i=0; i<3-1; i++) //3个数比较2轮
{
for(j=0; j<3-1-i; j++) //每轮比较次数
{
if(*(p+j) < *(p+j+1))
{
temp = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = temp;
//printf("%d\t,%d\n",*(p+j),*(p+j+1));//测试使用
}
}
}
n1 = *(p+0);
n2 = *(p+1);
n3 = *(p+2);
//return;
}
展开全部
填下面三句:
p=*p1;
*p1=*p2;
*p2=p;
p=*p1;
*p1=*p2;
*p2=p;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询