代码如下,希望对楼主有所帮助。/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int a[5]={1,2,5,3,9},b[5];
int i,*p;
p=a;
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=4;i>=0;i--)
{
b[i]=*p;
p++;
}
for(i=0;i<5;i++)
{
printf("%d ",b[i]);
}
}已运行过,结果正确。此程序重点在于数组和指针的应用,结果不是最终目标,理解程序的内涵举一反三才是我的要达到的。
#include
#include
#include
int j, k, h, t;
for (h = n - 1; h > 0; h--) { // 循环到没有比较范围
for (j = 0, k = 0; j < h; j++) { // 每次预置k=0,循环扫描后更新k
if (*(x + j) < *(x + j + 1)) { // 小的放在后面,大的放到前面
t = *(x + j);
*(x + j) = *(x + j + 1);
*(x + j + 1) = t; // 完成交换
k = j; // 保存最后下沉的位置。这样k后面的都是排序排好了的。
}
}
}
}
int main() {
int i,a[MAXlen];
for(i = 0; i < MAXlen ; i++) {
printf("第%d/%d个数:",i + 1,MAXlen);
scanf("%d",&a[i]);
}
printf("\n");
bubble_sort(a,MAXlen);
printf("\n排序后:\n");
for(i = 0; i < MAXlen ; i++) printf("%5d",a[i]);
printf("\n\n");
return 0;
}
int a[10],i,t,n=9;
for(i=0;i<10;i++)
{*(a+i)=i+1;
printf("%d\t",*(a+i));
}
for(i=0;i<5;i++)
{t=*(a+i);
*(a+i)=*(a+n-i);
*(a+n-i)=t;}
printf("\n");
for(i=0;i<10;i++)
printf("%d\t",*(a+i));