1.将数组A中的内容和数组B中的内容进行交换。(数组一样大)
3.将三个数按从大到小输出。
5.最小公倍数
#include<stdio.h>
#include<stdlib.h>
#define N 5
void swap_arr(int arr1[],int arr2[])
{
int i=0;
for(i=0; i<N; i++)
{
int tmp=0;
tmp=arr1[i];
arr1[i]=arr2[i];
arr2[i]=tmp;
}
}
int main()
{
int arr1[N]={1,2,3,4,5};
int arr2[N]={6,7,8,9,0};
int i=0;
swap_arr(arr1,arr2);
printf("arr1[]=");
for(i=0; i<N; i++)
{
printf("%d ",arr1[i]);
}
printf("\n");
printf("arr2[]=");
for(i=0; i<N; i++)
{
printf("%d ",arr2[i]);
}
system("pause");
return 0;
}
2.获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned int num=0;
int i=0;
int bits[32]={0};
printf("请输入一个数:");
scanf("%d",&num);
for(i=0; i<32; i++)
{
bits[31-i]=num&1;
num=num>>1;
}
printf("偶数位为:");
for(i=0; i<=30; i+=2)//偶数位
{
printf("%d",bits[i]);
}
printf("\n奇数位为:");
for(i=1; i<=31; i+=2)//奇数位
{
printf("%d",bits[i]);
}
printf("\n");
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned int num=0;
int i=0;
printf("请输入一个数:");
scanf("%d",&num);
printf("偶数位为:");
for(i=30; i>=0; i-=2)//偶数位
{
printf("%d",(num>>i)&1);
}
printf("\n奇数位为:");
for(i=31; i>0; i-=2)//奇数位
{
printf("%d",(num>>i)&1);
}
printf("\n");
system("pause");
return 0;
}
3.将三个数按从大到小输出。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
void swap(int *x,int *y)
{
int tmp=*x;
*x=*y;
*y=tmp;
}
int main()
{
int num1=0;
int num2=0;
int num3=0;
printf("请输入3个数:");
scanf("%d%d%d",&num1,&num2,&num3);
if(num1<num2)//将最大值放到num1
{
swap(&num1,&num2);
}
if(num1<num3)
{
swap(&num1,&num3);
}
if(num2<num3)//将次大值放到num2
{
swap(&num2,&num3);
}
printf("%d %d %d\n",num1,num2,num3);
system("pause");
return 0;
}
4.求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int max_gongbeishu(int num1,int num2)
{
int i=0;
if(num1>num2)
{
for(i=num2; i>=0; i--)
{
if((num1%i==0) && (num2%i==0))
{
break;
return i;
}
}
}
else
{
for(i=num1; i>=0; i--)
{
if((num2%i==0) && (num1%i==0))
{
break;
return i;
}
}
}
return i;
}
int main()
{
int num1=0;
int num2=0;
int ret=0;
printf("请输入两个数:");
scanf("%d%d",&num1,&num2);
ret=max_gongbeishu(num1,num2);
printf("两个数的最大公约数为:%d\n",ret);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int max_gongbeishu(int num1,int num2)
{
int max=0;
int min=0;
if(num1>num2)
{
max=num1;
min=num2;
}
else
{
max=num2;
min=num1;
}
while(min)
{
int tmp=max%min;
if(tmp==0)
{
return min;
}
else
{
max=min;
min=tmp;
}
}
}
int main()
{
int num1=0;
int num2=0;
int ret=0;
printf("请输入两个数:");
scanf("%d%d",&num1,&num2);
ret=max_gongbeishu(num1,num2);
printf("两个数的最大公约数为:%d\n",ret);
system("pause");
return 0;
}
5.最小公倍数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int min_gongyueshu(int num1,int num2)//最小公倍数
{
int tmp=max_gongbeishu(num1,num2);
int ret=num1*num2/tmp;
return ret;
}
int max_gongbeishu(int num1,int num2)
{
int max=0;
int min=0;
if(num1>num2)
{
max=num1;
min=num2;
}
else
{
max=num2;
min=num1;
}
while(min)
{
int tmp=max%min;
if(tmp==0)
{
return min;
}
else
{
max=min;
min=tmp;
}
}
}
int main()
{
int num1=0;
int num2=0;
int ret=0;
printf("请输入两个数:");
scanf("%d%d",&num1,&num2);
ret=min_gongyueshu(num1,num2);
printf("两个数的最小公倍数为:%d\n",ret);
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int min_gongyueshu(int num1,int num2)//最小公倍数
{
int i=0;
int tmp=num1>num2?num1:num2;
for(i=tmp; i<=num1*num2; i++)
{
if((i%num1==0) && (i%num2==0))
{
break;
}
}
return i;
}
int main()
{
int num1=0;
int num2=0;
int ret=0;
printf("请输入两个数:");
scanf("%d%d",&num1,&num2);
ret=min_gongyueshu(num1,num2);
printf("两个数的最小公倍数为:%d\n",ret);
system("pause");
return 0;
}