C++习题 给出年、月、日,计算该日是该年的第几天?(高分求)

2025-04-13 11:24:12
推荐回答(1个)
回答1:

1。

#include
#include
using namespace std;
int main()
{
int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
cout << "请输入年月日(YYYY-MM-DD):";
char s[11] = {'\0'},year[5] = {'\0'},month[3] = {'\0'},day[3] = {'\0'};
int y,m,d,sum = 0;
cin >> s;
int size = strlen(s);
for(int it = 0,temp = 0; it < size; it++,temp++)
{
if(s[it] != '-')
{
year[temp] = s[it];
continue;
}
else
break;
}
it++;
temp = 0;
for(; it < size; it++,temp++)
{
if(s[it] != '-')
{
month[temp] = s[it];
continue;
}
else
break;
}
it++;
temp = 0;
for(; it < size; it++,temp++)
{
day[temp] = s[it];
}
y = atoi(year);
m = atoi(month);
d = atoi(day);
if(m > 2 && y % 4 == 0 || (y % 100 == 0 && y % 400 == 0))
sum += 1;
for(int i = 0; i < m - 1; i++)
sum += a[i];
sum += d;
cout << "这是" << y << "年的第" << sum << "天" << endl;
return 0;
}

2.
#include
using namespace std;
int main()
{

int i = 1, flag = 1, temp = 0;
double s = 0;
while(temp++ <= 100)
{
s += flag*1.0 / i;
i++;
flag *= -1;
}
cout << s << endl;
return 0;
}

3.
#include
#include
using namespace std;
int main()
{
srand((unsigned)time(NULL));
char s[12] = {'A','2','3','4','5','6','7','8','9','J','Q','K'};
int num[12] = {0};
int i;
char out[12];
int n = 0;
while(n <= 11)
{
i = rand() % 12;
num[i]++;
if(num[i] > 4)
{
num[i]--;
continue;
}
out[n] = s[i];
n++;
}
for(int j = 0; j < 12; j++)
cout << out[j] << " ";
cout << endl;
return 0;
}