c语言用指针实现将输入的十个数倒叙输出的代码
时间: 2024-02-13 08:04:07 浏览: 97
下面是用指针实现将输入的十个数倒序输出的C语言代码:
```c
#include <stdio.h>
int main() {
int nums[10];
int *p = nums + 9; // 指针p指向数组最后一个元素
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", nums + i); // 等价于 &nums[i]
}
printf("倒序输出:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", *(p - i)); // 指针p向前移动i位,输出对应元素
}
return 0;
}
```
首先定义一个包含10个元素的整型数组`nums`,然后定义一个指针`p`,初始指向数组最后一个元素。在输入过程中,使用`scanf`函数读入每个元素,可以写成`scanf("%d", nums + i)`或`scanf("%d", &nums[i])`的形式。最后在输出时,指针`p`向前移动`i`位,输出对应元素,可以写成`printf("%d ", *(p - i))`的形式。
相关问题
编写一个能将链表使用递归方法倒叙输出的C语言代码
在C语言中,我们可以使用递归的方式来反转链表。这里有一个简单的例子,假设我们有一个结构体`ListNode`表示链表节点:
```c
typedef struct ListNode {
int data;
struct ListNode* next;
} ListNode;
// 定义反转链表的函数
ListNode* reverseList(ListNode* head) {
// 如果链表为空或者只有一个元素,直接返回
if (head == NULL || head->next == NULL) {
return head;
}
// 递归地处理剩余部分并保存当前节点的下一个节点
ListNode* newHead = reverseList(head->next);
// 将当前节点指向新的头节点
head->next->next = head;
// 更新头节点为当前节点的下一个节点
head->next = NULL;
return newHead;
}
// 测试函数
void printReverseList(ListNode* head) {
ListNode* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
}
int main() {
// 创建一个测试链表
ListNode* list = createLinkedList(); // 这里需要你自己定义链表创建函数
// 反转链表
list = reverseList(list);
// 输出反转后的链表
printReverseList(list);
return 0;
}
```
在这个代码片段中,`reverseList`函数是递归的核心部分,它会先处理链表的剩余部分,然后在最后一步改变当前节点的`next`指针,使其指向自己,完成一次循环。
用c语言编写:输入5个年份数字,用数组存放。用指针操作倒叙判断是否为闰年。最后输出结果格式:第一个: 是/否;第二个…总共有n个闰年
在C语言中,你可以这样做:
```c
#include <stdio.h>
// 判断是否为闰年的函数
int is_leap_year(int year) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 1; // 是闰年
}
else {
return 0; // 非闰年
}
}
int main() {
int years[5]; // 定义一个能存储5个整数的数组
int n = 0; // 记录已输入的年份数量
printf("请输入5个年份数字(用空格分隔): ");
for (int i = 0; i < 5; i++) {
scanf("%d", &years[i]);
n++;
}
// 使用指针遍历数组并判断闰年
int* ptr = years; // 指针初始化为数组的首地址
for (int i = n - 1; i >= 0; i--) { // 从后往前遍历
if (is_leap_year(*ptr)) {
printf("是 ; ");
} else {
printf("否 ; ");
}
ptr++; // 指针向前移动
}
printf("\n总共有%d个闰年。\n", is_leap_years(years, n)); // 自定义辅助函数计算总数
return 0;
}
```
这里假设添加了一个自定义函数`is_leap_years()`来计算总的闰年数量,因为C标准库并没有提供直接统计功能。
阅读全文