永发信息网

c语言用指针编写随便输入十个数字,输出最大的在最后,最小的在最前

答案:2  悬赏:70  手机版
解决时间 2021-04-23 22:24
  • 提问者网友:你独家记忆
  • 2021-04-23 18:36
要用指针写
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-04-23 18:59

其实c用指针指向的还是一般的变量,这里是数组,所以没啥区别的。


只是换了下方式而已。


#include<stdio.h>
int main()
{
int ar[10],i,j,temp;
int *a=ar;
printf("请输入10个数:");
for(i=0;i<10;i++)
{
scanf("%d",a+i);
}
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(*(a+i)>*(a+j))
{//如果前面a[i]大于后面的a[j],则2数位置交换
temp=*(a+i);
*(a+i)=*(a+j);
*(a+j)=temp;
}
}
}
printf("交换后的结果:");
for(i=0;i<10;i++)
{
printf("%d ",a+i);
}
return 0;
}

全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-04-23 19:43
#include <stdio.h> #define n 7 int main() { int i,j,ptr_2=0; int a[n],*ptr_1; ptr_1=&a[0]; printf("输入%d个数:",n); for (i=0;i<n;i++) { scanf("%d",&a[i]); } printf("ok1\n"); for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) { if (*(ptr_1+j) < *(ptr_1+j+1)) { ptr_2=*(ptr_1+j+1); *(ptr_1+j+1)=*(ptr_1+j); *(ptr_1+j)=ptr_2; } } } printf("排序后的数为: "); for(i=0;i<n;i++) { printf("%d ",*ptr_1); ptr_1++; } printf("\n"); return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯