1.给定两个整形变量的值,将两个值的内容进行交换。
正常思路,利用第三个变量进行简单转换。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
printf("请输入两个整数\n");
scanf("%d %d", &a, &b);
c = a;
a = b;
b = c;
printf("%d %d", a, b);
system("pause");
return 0;
}
2.不允许创建临时变量,交换两个数的内容。
转向思路,通过进行两变量之间的加减创建出无形的变量。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两个整数\n");
scanf("%d %d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("%d %d", a, b);
system("pause");
return 0;
}
3.求十个整数中的最大值。
常规思路,通过逐一比较来找出最大值,此时需要通过循环的手段来达成目的。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两个整数\n");
scanf("%d %d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("%d %d", a, b);
system("pause");
return 0;
}
4.将三个数按从大到小输出。
正常思路,通过逐一比较大小首先确定出最大者,然后是老二,其次是最小者。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
printf("请输入三个整数\n");
scanf("%d %d %d", &a, &b, &c);
if (a >= b&&a >= c)
{
printf("%d\n", a);
if (b >= c)
{
printf("%d\n", b);
printf("%d\n", c);
}
else
{
printf("%d\n", c);
printf("%d\n", b);
}
}
else if (b >= a&&b >= c)
{
printf("%d\n", b);
if (a >= c)
{
printf("%d\n", a);
printf("%d\n", c);
}
else
{
printf("%d\n", c);
printf("%d\n", a);
}
}
else if (c >= a&&c >= b)
{
printf("%d\n", c);
if (a >= b)
{
printf("%d\n", a);
printf("%d\n", b);
}
else
{
printf("%d\n", b);
printf("%d\n", a);
}
}
system("pause");
return 0;
}
5.求两个数的最大公约数。
思路,辗转相除法。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两整数\n");
scanf("%d %d", &a, &b);
if (a >= b)
{
int c = 0;
c = a % b;
while ( a%c != 0 || b % c != 0 )
{
c = a % b;
a = b;
b = c;
}
printf("%d", c);
}
else if (b >= a)
{
int c = 0;
c = b % a;//先求出第一个余数
while (a%c != 0 || b % c != 0)//通过循环来更新并且确定此余数为两已知数的公约数
{
c = b % a;
b = a;
a = c;
}
printf("%d", c);
}
system("pause");
return 0;
}
由于自己是新手上路,难免对于解决这些题目的有些方法显得很笨,有劳各位大佬能够指点一二,本人定当虚心接受,感谢万分!