交换两个变量:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=8, b=6, c;
/*第一种用中间变量
c = a;
a = b;
b = c;*/
/*第二种不用中间变量
a = a^b; //a的二进制1000,b的二进制0110.a^b=1000^0110=1110
//相同为0,不同为1
b = a^b; //b=1110^0110=1000
a = a^b; //a=1000^1110=0110*/
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
#异或符号^的巧妙使用
比较十个数输出最大的那个数:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int max(int x, int y){
int z;
z = x >= y ? x : y;
return(z);
}
int main()
{
int max(int x, int y);
int a[10], i,t;
printf("请输入10个数:\n");
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
for (i = 1, t = a[0]; i < 10; i++)
if (max(t, a[i])>t) {
t = max(t, a[i]);
}
printf("%d\t",t);
system("pause");
return 0;
}
比较三个数,按从大到小输出:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[3],i,j,t;
printf("请输入3个数:\n");
for (i = 0; i < 3;i++)
scanf("%d", &a[i]);
for (j= 0; j < 3; j++)
for (i= 0; i <= 3 - j;i++)
if (a[i] <= a[i + 1]){
t = a[i + 1];
a[i+1] = a[i];
a[i] = t;
}
for (i = 0; i < 3;i++)
printf("%d\t", a[i]);
system("pause");
return 0;
}
两个数的最大公约数:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a, b,i;
printf("请输入两个数:\n");
scanf("%d %d", &a, &b);
i = a <= b ? a : b;
while (i > 0){
if (a%i == 0 && b%i == 0){
printf("%d\n", i);
break;
}
i--;
}
system("pause");
return 0;
}
#while循环的用法。
时间:2018.11.24