*日常练习*
DAY2
**
-
给定两个整形变量的值,将两个值的内容进行交换。
-
不允许创建临时变量,交换两个数的内容。
同时解决:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int a = 0, b = 0;
int main()
{
printf(“请输入两个值:a b\n”);
scanf("%d,%d", &a, &b);
a = a ^ b, b = b ^ a, a = a ^ b;
printf(“a=%d , b=%d”, a, b);
system(“pause”);
return 0;
}
3.求10 个整数中最大值。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num[10] = { 1,2,3,4,5,6,7,8,9,10 };
int max = 0;
int x = 0;
printf(“请依次输入10个整数:a,b,c…\n”);
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", &num[0], &num[1], &num[2], &num[3], &num[4], &num[5], &num[6], &num[7], &num[8], &num[9]);
for (x = 0; x < 10; x++)
{
if (max < num[x])
max = num[x];
else
continue;
}
printf(“最大值为:%d”, max);
system(“pause”);
return 0;
}
4.将三个数按从大到小输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0, j = 0, k = 0;
printf(“请依次输入3个整数:a,b,c\n”);
scanf("%d,%d,%d", &i, &j, &k);
if (i > j)
if (i > k)
{
if (j > k)
printf("%d\t%d\t%d\t", i, j, k);
else
printf("%d\t%d\t%d\t", i, k, j);
}
else
printf("%d\t%d\t%d\t", k, i, j);
else
{
if (j > k)
{
if (i > k)
printf("%d\t%d\t%d\t", j, i, k);
else
printf("%d\t%d\t%d\t", j, k, i);
}
else
printf("%d\t%d\t%d\t", k, j, i);
}system(“pause”);
return 0;
}
5.求两个数的最大公约数。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0, b = 0, i = 0,n = 1;
printf(“请输入两个整数:a,b\n”);
scanf("%d,%d", &a, &b);
if (a == 0 || b == 0)
printf(“没有最大公约数”);
if (a == b)
printf(“最大公约数为%d”, a);
if (b > a)
a = a ^ b, b = b ^ a, a = a ^ b;
if (a % 2 == 0 && b % 2 == 0)
{
for (i = 0; i < 100; i++)
{
a = a / 2, b = b / 2;
n = n* 2;
if (a % 2 == 0 && b % 2 == 0)
continue;
else
break;
}
}
for (i = 0; i < 100; i++)
{
if (b > a)
a = a ^ b, b = b ^ a, a = a ^ b;
if (b == a - b)
{
n = n * b;
printf(“最大公约数为%d”, n);
break;
}
a = a - b;
}
system(“pause”);
return 0;
}