利用指针编制程序。输入年和天数,输出对应的年、月、日。例如:输入2020和61,输出2000-3-1。要求:定义函数month_day(year, yearday, *pmonth, *pday)。
时间: 2023-04-27 21:04:57 浏览: 205
可以按照以下步骤编写程序:
1. 定义函数month_day(year, yearday, *pmonth, *pday),其中year表示输入的年份,yearday表示输入的天数,pmonth和pday是指向月份和日期的指针。
2. 在函数内部,根据输入的年份和天数计算出对应的月份和日期。具体方法如下:
- 首先判断输入的年份是否为闰年。如果是闰年,则2月份有29天,否则2月份有28天。
- 然后根据输入的天数计算出对应的月份和日期。具体方法如下:
- 如果输入的天数小于等于31,则对应的月份为1月,日期为输入的天数。
- 如果输入的天数大于31且小于等于31+28(或29),则对应的月份为2月,日期为输入的天数减去31。
- 如果输入的天数大于31+28(或29)且小于等于31+28+31,则对应的月份为3月,日期为输入的天数减去31-28(或29)。
- 以此类推,计算出对应的月份和日期。
3. 在主函数中,调用函数month_day,并输出对应的年、月、日。
下面是完整的程序代码:
相关问题
利用指针进行一维数组的输入和输出 (例如:请输入数组元素: 1 2 3 4 5 数组:1 2 3 4 5)
下面是一个利用指针进行一维数组输入和输出的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main()
{
int arr[MAX_SIZE], n, i;
int *ptr = arr; // 定义指针并使其指向数组的首地址
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for (i = 0; i < n; i++) {
scanf("%d", ptr + i); // 使用指针进行数组元素的输入
}
printf("数组:");
for (i = 0; i < n; i++) {
printf("%d ", *(ptr + i)); // 使用指针进行数组元素的输出
}
return 0;
}
```
在这个示例代码中,我们定义了一个整型数组 `arr`,并指定其最大长度为 `MAX_SIZE`。然后,我们定义了一个指针 `ptr`,并通过 `ptr = arr` 使其指向数组 `arr` 的首地址。
在程序运行时,我们首先输入了数组元素的个数 `n`,并通过 `scanf` 函数将其存储在变量 `n` 中。接着,我们使用 `scanf` 函数和指针 `ptr` 进行数组元素的输入。具体来说,我们使用 `ptr + i` 来表示数组中第 `i` 个元素的地址,并通过 `scanf` 函数将输入的值存储在这个地址上。
最后,我们使用指针 `ptr` 进行数组元素的输出。具体来说,我们使用 `*(ptr + i)` 来表示数组中第 `i` 个元素的值,并通过 `printf` 函数将其输出。注意,在输出数组元素时,我们使用了 `"%d "` 格式字符串,这个空格字符是为了在输出时增加元素之间的空格,使输出更加美观。
c++输入3个整数,利用指针和函数,按由小到大的顺序输出
以下是使用指针和函数按由小到大顺序输出3个整数的C++代码:
```cpp
#include <iostream>
using namespace std;
void sort(int *a, int *b, int *c) {
if (*a > *b) {
swap(*a, *b);
}
if (*a > *c) {
swap(*a, *c);
}
if (*b > *c) {
swap(*b, *c);
}
}
int main() {
int a,, c;
cin >> a >> b >> c;
sort(&a, &b, &c);
cout << a << " " << b << " " << c << endl;
return 0;
}
```
阅读全文