c++给定一个int类型的整数n,输出距离当前日期n天前的日期
时间: 2024-02-15 12:04:20 浏览: 23
好的,根据您的要求,我可以为您提供以下C++代码来计算距离当前日期n天前的日期:
```cpp
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int n;
cin >> n;
// 获取当前时间
time_t current_time = time(0);
// 转换为本地时间
tm* local_time = localtime(¤t_time);
// 获取n天前的时间
time_t n_days_ago = current_time - n * 24 * 60 * 60;
// 转换为本地时间
tm* local_n_days_ago = localtime(&n_days_ago);
// 输出n天前的日期
cout << local_n_days_ago->tm_year + 1900 << "-" << local_n_days_ago->tm_mon + 1 << "-" << local_n_days_ago->tm_mday << endl;
return 0;
}
```
请将上述代码中的`n`替换为您想要的天数即可。注意,这里输出的日期格式为YYYY-MM-DD。
相关问题
用c++语言完成 给定一个正整数n,输出从1到n的全排列
以下是用 C 语言实现输出从 1 到 n 的全排列的代码:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void permute(int *arr, int start, int end) {
if (start == end) {
for (int i = 0; i <= end; i++) {
printf("%d ", arr[i]);
}
printf("\n");
} else {
for (int i = start; i <= end; i++) {
swap(&arr[start], &arr[i]);
permute(arr, start + 1, end);
swap(&arr[start], &arr[i]);
}
}
}
int main() {
int n;
printf("请输入正整数 n:");
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
permute(arr, 0, n - 1);
return 0;
}
```
输入正整数 n 后,程序会输出从 1 到 n 的全排列。例如,当 n 为 3 时,输出如下:
```
1 2 3
1 3 2
2 1 3
2 3 1
3 2 1
3 1 2
```
希望这个回答能够帮到你!
给定一个正整数 n (n>1),输出不大于 n 的最大质数c++
你可以使用以下的 C++ 代码来输出不大于 n 的最大质数:
```cpp
#include <iostream>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
std::cout << "请输入一个正整数 n: ";
std::cin >> n;
int maxPrime = n;
while (!isPrime(maxPrime)) {
maxPrime--;
}
std::cout << "不大于 " << n << " 的最大质数是: " << maxPrime << std::endl;
return 0;
}
```
这段代码会先判断一个数是否为质数,然后从输入的正整数 n 开始递减,找到不大于 n 的最大质数,并输出结果。