|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void main()
{
void swap(int *p,int n);
int a[10],i;
printf("Please input 10 numbers:");
for(i = 0;i < 10;i++)
{
scanf("%d",&a[i]);
}
swap(a,10);
for(i = 0;i < 10;i++)
{
printf("%d ",&a[i]);
}
printf("\n");
}
void swap(int *p,int n)
{
int i,j,k;
for(i = 0;i < n-1;i++)
{
for(j = 1;j < 10;j++)
{
if(*(p+i) < *(p+j))
{
k = *(p+i);
*(p+i) = *(p+j);
*(p+j) = k;
}
}
}
}
兄弟,你代码有点意思,我看了一下,之所以会出问题,第一,你先把main函数里打印结果printf("%d ",&a[i]);这个&应去掉,原因你懂得,还有就是你swap涵数是有问题,你画图分析一下会发现问题,除第一是正常,其他都不正常,应该在第二层for语句中j=1应改为j=1+i,
|
|