欢迎光临散文网 会员登陆 & 注册

c语言练习

2021-11-23 22:12 作者:风菩提树  | 我要投稿

一、两个数交换的4种方法

1.使用第三个变量来进行替换

#include

int main()

{

int a , b ,c;

printf("请输入a,b的值\n");

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

printf("交换前:a = %d,b = %d\n",a,b);

c = a;

a = b;

b = c;

printf("交换后,a=%d,b=%d\n",a,b);

return 0;

}

2.使用一个封装函数来进行交换

#include

int swap ( int *a , int *b)

{

 int temp;

 temp = *a;

 *a = *b;

 *b = temp;

 return 0;

}

int main()

{

  int a,b;

  printf("请输入a,b的值\n");

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

 printf("交换前:a = %d,b = %d\n",a,b);

 swap(&a,&b);

 printf("交换后:a = %d,b = %d\n",a,b);

 return 0;

}

3.使用加减法来进行交换

#include

int main()

{

 int a , b;

 printf("请输入a,b的值\n");

 scanf("%d %d",&a,&b);//如a=10,b=20

 a = a + b;//a=30

 b = a - b;//b=30-20=10

 a = a - b;//a=30-10=20

 printf("交换后,a=%d,b=%d\n",a,b);

 return 0;

}

4.使用异或来进行交换

#include

int main()

{

 int a,b;

 printf("请输入a,b两个数的值");

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

 printf("交换前 a=%d,b=%d\n",a,b);//a=01,b=11

 a = a^b;//a=10

 b = a^b;//b=10^11=01

 a = a^b;//a=10^01=11

 printf("交换后 a=%d,b=%d\n",a,b);

 return 0;

}

二、整型数组中的数据内容从小到大排序:

1.分析的图片

2.代码:

#include 

#include 

#include 

int main()

{

int a[5],i,max,j;

srand((unsigned)time(NULL));//初始化随机数的值,以时间作为参考

/*   给数组a 赋值 随机值*/

for( i = 0; i <5;i++)

{

a[i] = rand()%51 + 10;//产生10 到 60的随机数

}

/* 打印数组没排列之前的值*/

printf("%d %d %d %d %d\t",a[0], a[1],a[2],a[3],a[4]);

printf("\n");

/* 进行数组元素大小的排列*/

for ( i = 0 ;i <5;i++)

{

/* 第一轮:a[0] 与a[1] 比较 且 进行换值

a[1] 与a[2] 比较 且 进行换值

a[2] 与a[3]...

a[3] 与a[4]....

a[4]会得到最大值

第二轮 : 可以不让a[4] 参与比较

直到第四轮结束

*/

for ( j  = 0 ; j <4;j++

{

/* 数组元素 进行比较大小 并交换值*/

if ( a[j] > a[ j+1 ] )

{

max = a[j]; a[j] = a[j+1];

     a[j+1] = max;

}

}

}

//打印排列后的数组

printf("%d %d %d %d %d\t",a[0],a[1],a[2],a[3],a[4]);

printf("\n");

return 0;

}

三、递归函数

1)函数调用自己本身

2)使用递归函数的时候,一定要有中断条件

3)代码分析如下:

int Fun(int data)

{

int result;

if(data != 1)

{

result = data *Fun(data - 1);

return result;

}

return 1;

}

Fun(4) 是:result = 4 *fun(3)//再次调用fun(3)函数

Fun(3) ----> result = 3*fun(2)

Fun(2)--->result = 2*fun(1)--->此时执行fun(1)函数---》返回1

则fun(2)的返回值--》2*fun(1)=2*1=1

Fun(3)的返回值--》3*fun(2) = 3*2=6

Fun(4)的返回值--》4*fun(3)=4*6=28


c语言练习的评论 (共 条)

分享到微博请遵守国家法律