gpt4 book ai didi

计算日历周的第一天

转载 作者:行者123 更新时间:2023-11-30 19:40:37 24 4
gpt4 key购买 nike

我正在用 C 做一个类项目,我需要计算 21 世纪“跳过 2000 年”的某一年的月份和日期。老师把它分成步骤:

第一步是获取年份的最后两位数字;我已经完成了

yy = yyyy % 100;

第二步是计算两位数的 25% 并将小数去掉获取 2- 10% 的数字,然后将其与自身相加;我已经完成了

result = result + (result/5.0):

我只是有点困惑如何去掉小数位?

第三步是将 25% 的值加回我们在第一步中得到的原始两位数。这也是我坚持的另一个步骤。

第四步减去7的最大拟合倍数;我在顶部创建了一个数组。

然后,鉴于输入的年份是闰年,我需要从 25% 的值中减去 1。

我现在已经包含了我的代码的所有内容。任何投入将不胜感激!

编辑:我已经修复了 for 循环,并花了一些时间检查我的代码,当我尝试用“d[ypercent]”输出这一天时,我只是卡住了,我得到了一堆困惑的字符。我已将 ypercent 定向到一个字符串值,我似乎不明白为什么。我也发布了更新的代码。我已经检查过它,它编译得很好,但它不会输出正确的日期。

所以我的问题是:如何修复“printf("1 月 1 日在 %s 上:\n", yyyy, d[ypercent]);”显示正确的日期?

#include <stdio.h>

int main()
{
int x = 0;
int yy, yyyy;
int lastX, ypercent;
float result;

const char *d[7];
d[0] = "Sunday";
d[1] = "Monday";
d[2] = "Tuesday";
d[3] = "Wednesday";
d[4] = "Thursday";
d[5] = "Friday";
d[6] = "Saturday";
d[7] = "Sunday";

printf("Which year? ");
scanf ("%d", &yyyy);

yy = yyyy % 100;
ypercent = yy + yy *(.25);


result = yy * .1;
result = result + (result/5.0);

for (x = 0; x < ypercent; x++)
{
if ((7 * x) > ypercent)
break;
lastX = x;
}

ypercent = ypercent - lastX;


printf("Janurary 1st, %d is on a %s :\n ", yyyy , d[ypercent]);

getchar();
return 0;
}

最佳答案

除了拼写错误(例如缺少分号和括号)

您应该将 d 声明为字符串指针数组

char *d[7];

I am just kind of stuck on how I would drop the decimal place?

您所需要做的就是将其转换为 int。这会去掉小数点。

int intresult = result + (result/5.0);

请注意,由于有声明,您不需要显式转换它

int intresult = (int)(result + (result/5.0));

但是,您可以截断它,但将值保留为浮点模式

result = (int)(result + (result/5.0));

关于计算日历周的第一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com