1>用C语言编译—用异或来交换两个变量的值,不借助临时变量
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
int main()
{
int i, j;
printf("输入两个要交换的数据:\n");
scanf("%d%d", &i, &j);
//i*i=0,j*j=0
//任何数与0异或都是其本身
//异或支持交换律
i = i^j; //i=i^j;
j = i^j; //j=i^j^j=i^0=i;
i = j^i; //i=i^i^j=0^j=j;
printf("交换后得到的数据为:\n");
printf("%d %d", i, j);
system("pause");
}
2>用C语言编译—求10个整数中的最大值
#include<stdio.h>
#include<Windows.h>
int Max()
{
int a[] = { 1, 11, 111, 2, 22, 222, 3, 33, 333, 4 };
int num = sizeof(a) / sizeof(a[0]);
int i = 1;
int max = a[0];
for (; i < num; i++)
{
if (a[i] > max)
{
max = a[i];
}
}
return max;
}
int main()
{
printf("%d\n", Max());
system("pause");
}
3>用C语言编译—比较三个数的大小
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
void ThreeData(int x,int y,int z)
{
if (x > y){
if (z > x){
printf("%d %d %d \n", z, x, y);
}
else if (z > y){
printf("%d %d %d \n", x, z, y);
}
else{
printf("%d %d %d \n", x, y, z);
}
}
else{
if (z > y){
printf("%d %d %d \n", z, y, x);
}
else if (z > x){
printf("%d %d %d \n", y, z, x);
}
else{
printf("%d %d %d \n", y, x, z);
}
}
}
int main()
{
ThreeData(34, 35, 56);
system("pause");
}