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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯