當前位置:首頁 » 編程語言 » 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);

}