随机输入十个数,然后按从大到小顺序输出。可是输出结果一直出错,请问大佬看看哪....
#include <stdio.h>void main()
{
void swap(int *p,int n);
int a,i;
printf("Please input 10 numbers:");
for(i = 0;i < 10;i++)
{
scanf("%d",&a);
}
swap(a,10);
for(i = 0;i < 10;i++)
{
printf("%d",&a);
}
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;
}
}
}
} 写的是冒泡算法吧。
void swap(int *p,int n) 这个函数写的有问题,建议你把冒泡算法重新看一下吧,自己找找问题 能学的更快 兄弟,你代码有点意思,我看了一下,之所以会出问题,第一,你先把main函数里打印结果printf("%d",&a);这个&应去掉,原因你懂得,还有就是你swap涵数是有问题,你画图分析一下会发现问题,除第一是正常,其他都不正常,应该在第二层for语句中j=1应改为j=1+i, 员理管帅最 发表于 2019-10-31 01:26
兄弟,你代码有点意思,我看了一下,之所以会出问题,第一,你先把main函数里打印结果printf("%d",&a);这 ...
对对对,我检查了一下,的确是这些问题。调试成功了,谢谢您! shuofxz 发表于 2019-10-30 21:40
写的是冒泡算法吧。
void swap(int *p,int n) 这个函数写的有问题,建议你把冒泡算法重新看一下吧,自己 ...
好的,谢谢您!
页:
[1]