当前位置:首页 » 编程语言 » c语言指针3个整数排列
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言指针3个整数排列

发布时间: 2023-07-14 21:17:10

c语言中怎么把三个整数从小到大排列

原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。
方法如下:
分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
1.从控制台读入三个数;
2.实现三个数从小到大排序:
(1)将第一个数作为最小数,依次和第二,三个数进行比较。两次比较重如果有任意一个比第一个小,则将两个数交换

(2)在(1)步后,得到第一个数为最小数。再将第二个数与第三个数比较大小后即可实现三个数从小到大排序。
拓展资料
两种常用排序方法:
1.选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较。如有比第一个数小的数,则交换两个数。最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序。
2.冒泡排序法:思路与选择排序法一致。不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较。

Ⅱ C语言指针实现整数排序

#include<stdio.h>
intmain()
{
inta[3],i,n,j;
int*q;
q=&a[0];//这里是将数组的第一位的地址赋值给指针q,也是数组a的首地址
for(i=0;i<3;i++)
{
printf("请输出1个整数:");
scanf("%d",&a[i]);
}

for(j=0;j<2;j++)//简单的排序。
{
for(i=0;i<2;i++)
{
if(*(q+j)<*(q+1+i))
{
n=*(q+j);
*(q+j)=*(q+1+i);
*(q+1+i)=n;
}
}
}
printf("三个整数是:%d,%d,%d ",*q,*(q+1),*(q+2));
}

这道题的主要是弄清楚指针的加法和排序的方法。

Ⅲ 用C语言里的指针对三个输入的数进行由大到小的排序

首先,输入三个数,你的数组开才开了2,数组开小了!a[3]
其次,scanf
("%d",
&a[i]);这里要使用取地址符号才能进行输入
再次,你加的else
;这些语句都没有用,直接删除
#include

int main()
{
int *p,a[3],temp,i;
p=a;
printf("请输入三个数字");
for(i=0;i<=2;i++)
scanf("%d",&a[i]);
if(*p<*(p+1))
{
temp=*p;
*p=*(p+1);
*(p+1)=temp;
}
if(*p<*(p+2))
{
temp=*p;
*p=*(p+2);
*(p+2)=temp;
}
if(*(p+1)<*(p+2))
{
temp=*(p+1);
*(p+1)=*(p+2);
*(p+2)=temp;
}
printf("%d\n",*p);
printf("%d\n",*(p+1));
printf("%d\n",*(p+2));
return 0;
}

Ⅳ C语言的编程题:输入三个整数,按从大到小的顺序输出

#include <stdio.h>

main()

{

int x,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if (x<y)

{t=x;x=y;y=t;}

if(x<z)

{t=z;z=x;x=t;}

if(y<z)

{t=y;y=z;z=t;}

printf("%d %d %d ",x,y,z);

}

(4)c语言指针3个整数排列扩展阅读:

使用三元运算符,这个运算符会使程序进一步简化,而且看起来更加的直观。

它的一般形式如下:

表达式1? 表达式2:表达式3;

? 表达式的值是由 表达式1 决定的。如果 表达式1 为真,则计算表达式2 的值,结果即为整个 ? 表达式的值。如果 表达式1 为假,则计算 表达式3 的值,结果即为整个 ? 表达式的值。

程序如下:

#include<stdio.h>

int main()

{

int max;

int a,b,c;

printf("请输入三个数:");

scanf("%d %d %d",11&a,&b,&c);

max=a>b?a:b;

max=c>max?c:max;

printf("Max is %d",max);

return 0;

}

Ⅳ C语言,用指针对三个数从小到大排序

#include <stdio.h>

void swep(int *a,int *b,int *c)

{

int tmp;

if(*a>*b)

{

tmp=*a;

*a=*b;

*b=tmp;

}

if(*a>*c)

{

tmp=*a;

*a=*c;

*c=tmp;

}

if(*b>*c)

{

tmp=*b;

*b=*c;

*c=tmp;

}

}

void main()

{

int a,b,c;

scanf("%d%d%d",&a,&b,&c);

swep(&a,&b,&c);

printf("%4d%4d%4d",a,b,c);

}