4.给定两个整形变量的值,将两个值的内容进行交换。
#include <stdio.h>
int main()
{
int a = 5;
int b = 10;
int c = 0; //建立临时变量
printf("请输入a的值\n");
printf("请输入b的值\n");
scanf_s("%d %d", &a, &b);
c = a;//将a的值给临时变量,此时a的值为空
a = b;//将b的值给a,此时b的值为空
b= c;// 将c的值给b
printf("%d %d", a,b);
return 0;
}
5.不允许创建临时变量,交换两个数的内容(附加题)
这道题刚看见的时候还是很懵的,在网上找了找资料,发现跟上一题的基本逻辑差不多,只不过是通过加法与减法来改变变量之间的内容。
#include <stdio.h>
int main()
{
int a, b;
printf("请输入a的值\n");
printf("请输入b的值\n");
scanf_s("%d %d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("%d %d ", a, b);
return 0;
}
6.求10 个整数中最大值。
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int max = 0;
int arr[10] = { 1,4,5,9,10,3,2,7,8,11 };//定义一个10个数的数组
max = arr[0];//假设数组的第一个数为最大值max
for (i = 0; i < 10; i++)
{
if (arr[i] - max > 0)//创建循环并判断数组内的数与假设最大值的大小
{
max = arr[i];//如果数组内的数存在比假设最大值大的数,则将这个数组内的数与假设最大值max进行替换
}
}
printf("最大值为:%d", max);
return 0;
}
7.将三个数按从大到小输出。
#include <stdio.h>
int main()
{
int a, b, c;
printf("请输入a的值\n");
printf("请输入b的值\n");
printf("请输入c的值\n");
scanf_s("%d %d %d ", &a, &b, &c);
if (a - b > 0)
{
if (a - c > 0)
{
if (b - c > 0)
{
printf("%d %d %d", a, b, c);
}
else
{
printf("%d %d %d", a, c, b);
}
}
else
{
printf("%d %d %d", c, b, a);
}
}
else
{
if (b - c > 0)
{
if (a - c > 0)
{
printf("%d %d %d", b, a, c);
}
else
{
printf("%d %d %d", b, c, a);
}
}
else
{
printf("%d %d %d", c, b, a);
}
}
return 0;
}
这个题我用的是很原始的方法(先进的没想到),思路就是分别比较每个数的大小值然后进行排序。
8.求两个数的最大公约数。
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两个整数:");
scanf_s("%d %d", &a, &b);
if (a >= b)
{
int c = a % b;
while (c != 0) //对输入的两个数a,b取它们的余数,若余数不等于0,则将b(小值)赋值给a,同时将余数c赋值给b,再取余
{
a = b;
b = c;
c = a % b;
}
printf("最大公约数为:%d\n", b);
}
else {
int d = b % a;//与上述一样的道理
while (d != 0)
{
b = a;
a = d;
d = b % a;
}
printf("最大公约数为:%d\n", a);
}
return 0;
}
作为一名刚入坑的小白,还有很多的东西要学,希望各位大神发现问题及时的批评指正。
每天进步一点点,总有一天会感谢当初的自己,加油!