使用关系表达式判断某一年是否是闰年?
在下面的天数问题中有所体现
C语言学习 | 天数 知识点:运算符
cpp
int year, mon;
scanf_s("%d%d", &year, &mon);
bool run = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
switch (mon)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
printf("%d-%d-31\n",year,mon);
break;
case 4:case 9:case 6:case 11:
printf("%d-%d-30\n", year, mon);
break;
case 2:
if (run)
{
printf("%d-%d-29\n", year, mon);
}
else
{
printf("%d-%d-28\n", year, mon);
}
break;
default:
printf("error");
}
C语言学习 | 带余除法 知识点:运算符
cpp
int up;
int down;
scanf_s("%d%d", &up, &down);
printf("%d %d", up / down, up % down);
C语言学习 | 计算利息 知识点:运算符
cpp
利息问题
int T, Y, Q;
float e,f,g;
scanf_s("%d", &T);
while (scanf_s("%d%d%f%f%f", &Y, &Q, &e, &f, &g),T >= 1)
{
double qu = Y * (1 + e / 100* Q / 365);
double af = qu * (1 + g / 100);
double buqu = Y * (1 + f / 100 * (Q + 365) / 365);
printf("%.1f\n", af);
printf("%.1f\n", buqu);
T--;
}
C语言学习 | 坑爹的黑店 知识点:运算符
cpp
//坑爹的黑店
//这三种饮料的任何组合都可以转换成可乐和矿泉水的组合
//所以大于1的整数元的整数都可以被消费掉
int t;
scanf_s("%d", &t);
int cash;
int cola = 200;
int water = 150;
while (t >= 1)
{
scanf_s("%d", &cash);
int ans;
int tempt = cash % 200;
if (cash < 150)
{
ans = cash;
}
else {
if (tempt > 150)
{
ans = tempt % 150;
}
if (tempt < 150)
{
ans = cash % 100;
}
}
printf("%d\n", ans);
t--;
}
C语言学习 | 计算分数的浮点数值 知识点:运算符
cpp
int a, b;
scanf_s("%d%d", &a, &b);
double c = (double)a / b;
printf("%.9f\n", c);
C语言学习 | 软件版本 知识点:运算符
cpp
版本号问题
int t;
scanf_s("%d", &t);
for (int i = t; i> 0; --i)
{
int a[3];
int b[3];
for (int j = 0; j < 3; ++j)
{
scanf_s("%d", &a[j]);
}
for (int k = 0; k < 3; ++k)
{
scanf_s("%d", &b[k]);
}
for (int z = 0; z < 3; ++z)
{
if (a[z] > b[z])
{
printf("First\n");
break;
}
if (a[z] == b[z])
{
if(z<2)continue;
if (z == 2)printf("Same\n");
}
if (b[z] > a[z]) {
printf("Second\n");
break;
}
}
}
使用加法和减法,在不涉及第三个变量的情况下交换两个变量。这种写法好吗?
cpp
def swap_proper(a, b):
print(f"原始值: a = {a}, b = {b}")
temp = a
a = b
b = temp
print(f"交换后: a = {a}, b = {b}")
return a, b
# 测试
swap_proper(5, 10)
使用条件运算符找到3个数当中的最大值和最小值。
cpp
int a = 1, b = 2, c = 3;
int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
printf("%d", max);
说明前置++和后置++的区别。
相同点是内存中的数都发生了加一,但是前置++是先赋值再++,后置是先自增再赋值
C语言学习 | 检查一个数是否为质数 知识点:循环
这个就是枚举从一到这个数依次写出来就行
C语言学习 | ASCII码 知识点:数据类型
cpp
//ascii码问题
int t;
scanf_s("%d", &t);
while (t > 0)
{
int a;
scanf_s("%d", &a);
printf("%c", a);
t--;
}
C语言学习 | 奇怪的信 知识点:循环
cpp
int evensum(int a)
{
int ans = 0;
while (a > 0)
{
if ((a % 10) % 2 == 0)
{
ans += (a % 10);
}
a /= 10;
}
return ans;
}
int main()
{
int a;
while (scanf_s("%d", &a) != EOF)
{
int ans = evensum(a);
printf("%d\n", ans);
printf("\n");
}
return 0;
}
C语言学习 | 手机话费 知识点:循环
cpp
//消费问题
int m, k;
while (scanf_s("%d%d", &m, &k), m != 0 || k != 0)
{
int sum = 0;
while (m)
{
sum++;
m--;
if (sum % k == 0)m++;
}
printf("%d\n", sum);
}
C语言学习 | 统计硬币 知识点:循环
cpp
scanf_s("%d", &t);
while (t > 0)
{
int n, m;
int ans = 0;
scanf_s("%d%d", &n, &m);
for (int i = 0; i <=n; ++i)
{
for (int j = 0; j <= n - i; ++j)
{
for (int k = 0; k <= n - i - j; ++k)
{
if ((i * 1 + j * 2 + k * 5 )== m&&i+j+k==n)
{
ans++;
}
}
}
}
printf("%d\n", ans);
t--;
}
C语言学习 | 挂盐水 知识点:循环
cpp
int vul, d;
while (scanf_s("%d%d", &vul, &d) != EOF)
{
int n = 1;
int drops;
if (vul % d == 0)
{
drops = vul / d;
}
else
{
drops = vul / d + 1;
}
while (n * (n + 1) / 2 <= drops)
{
n++;
}
n--;
if (n * (n + 1) / 2 == drops)
{
printf("%d\n", n * (n + 1) / 2 + (n - 1));
}
else {
int res = drops - n * (n + 1) / 2;
printf("%d\n", n * (n + 1) / 2 + n - 1 + res);
}
}