编译环境:Vs2019
数量:20 ; 预计时间:5 day
1. 成绩判断
若是出现无法返回scanf,只需要修改为scanf_s即可;它认为scanf不安全,所以不允许你用而让你用它自己定义的scanf_s。
&&与&不同:
&是位运算符,其将两个二进制数按位相与,用在取地址;
&&是逻辑运算符,是指判断两个表达式的真假,同真为真。
数据格式化输入也有不同,d 指 int 型;f 指 float 型; lf则是指double型。
#include <stdio.h>
int main()
{
double a;
printf("数值输入");
scanf_s("%lf", &a);
if (a >= 0 && a < 60)
printf("不及格\n");
else if (a >= 60 && a < 70)
printf("合格\n");
else if (a >= 70 && a < 80)
printf("中等\n");
else if (a >= 80 && a < 90)
printf("良好\n");
else if (a >= 90 && a <= 100)
printf("优秀\n");
else
printf("数据错误\n");
}
2. 计算 1到 n 的值
#include<stdio.h>
int main()
{
int a = 0;
int n;
scanf_s("%d", &n);
for (int i = 0; i <= n; i++)
{
a = a + i;
}
printf("%d\n",a);
}
3. 最大公约数
最大公约数是指 a 和 b 两个或多个整数共有约数中最大的一个。
第一步:通过逐次相减,缩小最大公约数的区间;
第二步:进行逐数相除,得出最大公约数;
3.1 如何确定被整除? 整除即余数为0 。如何取余? a % b = c ,即 a 除 b 的余为 c 。
3.2 三目运算符 a ? b : c 即为 条件 ?结果 1 :结果 2
即为:
if (a)
{
return b;
}
else
{
return c;
}
函数为
#include<stdio.h>
int main()
{
int a, b, k;
scanf_s("%d%d", &a, &b);
k = a < b ? a : b; // 得出输入数值的小数值
for (int i = k; i <= k; --i)
{
if ((a % i == 0) && (b % i == 0))
{
printf("%d\n", i);
break;
}
}
}
4. 最小公约数
方法一 : 通过性质
最大公因数和最小公倍数之间的性质:两个自然数的乘积等于这两个自然数的最大公约数和最小公倍数的乘积。
方法二 :倍增
如果两数不是互质,也没有倍数关系时,可以把较大数依次扩大。
!= 表示不等于的意思
while 语句
while (表达式) 语句 ,表达式为真值时,执行。
#include<stdio.h>
int main()
{
int a, b, max, min, k;
scanf_s("%d%d", &a, &b);
max = a > b ? a : b; // a,b中大的数
min = a < b ? a : b; // a,b中小的数
k = max;
while (k % min != 0)
{
k = k + max;
}
printf("%d%d%d\n", max,min,k);
}