一:全局變量
創(chuàng)新互聯(lián)2013年至今,先為丹陽等服務建站,丹陽等地企業(yè),進行企業(yè)商務咨詢服務。為丹陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
#include?stdio.h
int?a,b,c;??//定義三個全局變量
void?sort()??//不需要參數(shù)
{
int?t;
if(ab)
{
t=a;a=b;b=t;
}
if(bc)
{
t=b;b=c;c=t;
}
if(ab)
{
t=a;a=b;b=t;
}
}
int?main()
{
printf("輸入:");
scanf("%d%d%d",a,b,c);
sort();
printf("排序:%d??%d??%d\n",a,b,c);
return?0;
}
二:指針
#include?stdio.h
void?sort(int?*a,?int?*b,?int?*c)?//參數(shù)傳遞方式:地址傳遞
{?
int?t;
if(*a*b)?
{
t=*a;*a=*b;*b=t;
}
if(*b*c)
{
t=*b;*b=*c;*c=t;
}
if(*a*b)?
{
t=*a;*a=*b;*b=t;
}
}
int?main()
{
int?a,b,c;
printf("輸入:");
scanf("%d%d%d",a,b,c);
sort(a,b,c);???????????????//把地址作為參數(shù)
printf("排序:%d??%d??%d\n",a,b,c);
return?0;
}
方法1:用3個變量存放3個數(shù)字,按從大到小的順序排:
int a,b,c,tmp;
printf("請輸入3個數(shù)字:");
scanf("%d%d%d",a,b,c);
if(ab)//如果a比b小,交換a和b的值,使a存放大的數(shù)字
{
tmp=a;
a=b;
b=tmp;
}
if(ac)//如果a比c小,交換a和c的值,使a存放大的數(shù)字
{
tmp=a;
a=c;
c=tmp;
}
if(bc)//如果b比c小,交換b和c的值,使b存放大的數(shù)字
{
tmp=b;
b=c;
c=tmp;
}
printf("按照從大到小的順序為:%d,%d,%d\n",a,b,c);
方法2:用數(shù)組存放3個變量,用冒泡排序的方法進行排序
int i=0,j=0,tmp=0,a[3];
printf("請輸入3個數(shù)字:");
for(i=0;i3;i++)
scanf("%d",a[i]);
for(i=0;i2;i++)
for(j=0;j2-i;j++)
if(a[i]a[i+1])//按照從大到小排列
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
printf("按照從大到小的順序為:");
for(i=0;i3;i++)
printf("%d ?",a[i]);
printf("\n");
#includestdio.h
mian()
{
int f(int *pointer1,int *pointer2,int *pointer3); \\對要進行調用的函數(shù)進行聲明
int change(int *po1,int *po2);
int a,b,c,*p1,*p2,*p3; \\定義整形三個變量和三個指針變量。
scanf("%d %d %d",a,b,c);
p1=a; p2=b; p3=c;
f(*p1,*p2,*p3); \\調用函數(shù)f()
printf("排序后的三個數(shù)為:%d%d%d\n",a,b,c);
}
int f(int *pointer1,int *pointer2,int *pointer3)
{
if(*pointer1*pointer2) change(*pointer1,*pointer2);
if(*pointer1*pointer3) change(*pointer1,*pointer3);
if(*pointer2*pointer3) change(*pointer2,*pointer3);
}
int change(int *po1,int *po2)
{
int t;
t=*po1;
*po1=*po2;
*po2=t;
}