程序运行示例为:请依次输入5个数据==> 1 2 3 4 5 输出如下:值为==>5 值为==>4 值为==>3 值为==>2 值为==>1。
时间: 2023-10-05 07:06:45 浏览: 71
这是一个倒序输出输入数据的程序示例,你可以参考以下代码:
```
#include <iostream>
using namespace std;
int main() {
int data[5];
cout << "请依次输入5个数据==> ";
for (int i = 0; i < 5; i++) {
cin >> data[i];
}
cout << "输出如下:" << endl;
for (int i = 4; i >= 0; i--) {
cout << "值为==>" << data[i] << endl;
}
return 0;
}
```
当你运行程序后,会提示你依次输入5个数据,你可以输入任意5个整数。程序会将输入数据存储到数组中,并按照倒序输出每个数据的值。所以,如果你输入的是1、2、3、4、5,程序输出的结果就是:
```
输出如下:
值为==>5
值为==>4
值为==>3
值为==>2
值为==>1
```
相关问题
建立一个链表,使链表中从头到尾的结点数据域依次是一个数组的各个元素的值。程序先建立链表然后再遍历输出(假定链表和数组均有6个整型元素)。 **输入提示:"输入数组%d个元素的值。\n" **输入格式:"%d" **输出提示:"此链表各个结点的数据域为:" **输出格式:"%d " 程序运行示例如下: 输入数组6个元素的值。↙ 1 3 5 7 9 11↙ 此链表各个结点的数据域为:1 3 5 7 9 11
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 链表结点结构体
typedef struct Node {
int data;
struct Node* next;
} Node;
int main() {
int arr[6];
printf("输入数组6个元素的值。\n");
for (int i = 0; i < 6; i++) {
scanf("%d", &arr[i]);
}
// 创建链表
Node* head = NULL;
Node* tail = NULL;
for (int i = 0; i < 6; i++) {
Node* newNode = (Node*) malloc(sizeof(Node));
newNode->data = arr[i];
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
// 遍历链表并输出
printf("此链表各个结点的数据域为:");
Node* p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
printf("\n");
return 0;
}
```
请用C语言代码实现:模拟商场会员积分兑换: 结构体类型定义如下: struct member{ char name[20]; char num[20]; int total; struct member *next; }; 要求实现如下功能: (1)建立链表:自定义函数建立单链表来存放会员的信息,如果输入大写‘Y’字符则继续创建结点存储会员信息,否则按任意键结束输入。 (2)积分兑换:自定义函数按照编号查找会员,并为这个会员兑换积分,5000分兑换10元,输入要兑换的积分数,输出兑换了多少元和剩余积分。如果没有找到,输出此会员不存在。 (3)写自定义函数释放链表所占内存。 (在主函数依次调用各函数即可) 输入输出如下: **创建节点提示:"请依次输入每个会员的编号、姓名、积分: \n" **输入节点数据格式:"%s %s %d" **是否继续创建提示:"是否继续输入,按Y键继续输入,其他键就结束.\n" **输入提示:"请输入要兑换积分的会员编号:\n" **输入格式:"%s" 如果没找到,输出"此会员不存在.\n" 找到了,完成兑换 **输入提示:"5000分兑换10元,你想兑换多少积分?\n" **输入格式:"%d" **输出格式:"你兑换了%d元,剩余积分为:%d\n" 程序运行示例1: 请依次输入每个会员的编号、姓名、积分: ↙ 1 zhang 30600 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请依次输入每个会员的编号、姓名、积分: ↙ 2 li 20008 是否继续输入,按Y键继续输入,其他键就结束.↙ Y 请依次输入每个会员的编号、姓名、积分: ↙ 3 fu 10000 是否继续输入,按Y键继续输入,其他键就结束.↙ n 请输入要兑换积分的会员编号:↙ 4 此会员不存在.↙
以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct member{
char name[20];
char num[20];
int total;
struct member *next;
};
// 建立链表
struct member *createList() {
struct member *head, *p, *q;
char choice;
head = p = (struct member *)malloc(sizeof(struct member));
printf("请依次输入每个会员的编号、姓名、积分:\n");
scanf("%s%s%d", p->num, p->name, &p->total);
printf("是否继续输入,按Y键继续输入,其他键就结束.\n");
scanf(" %c", &choice);
while (choice == 'Y' || choice == 'y') {
q = (struct member *)malloc(sizeof(struct member));
printf("请依次输入每个会员的编号、姓名、积分:\n");
scanf("%s%s%d", q->num, q->name, &q->total);
p->next = q;
p = q;
printf("是否继续输入,按Y键继续输入,其他键就结束.\n");
scanf(" %c", &choice);
}
p->next = NULL;
return head;
}
// 积分兑换
void exchange(struct member *head) {
char num[20];
int score;
struct member *p = head;
printf("请输入要兑换积分的会员编号:\n");
scanf("%s", num);
while (p != NULL) {
if (strcmp(p->num, num) == 0) {
printf("5000分兑换10元,你想兑换多少积分?\n");
scanf("%d", &score);
if (score > p->total) {
printf("兑换失败,积分不足!\n");
} else {
int money = score / 500;
int remain = p->total - score;
printf("你兑换了%d元,剩余积分为:%d\n", money, remain);
p->total = remain;
}
return;
}
p = p->next;
}
printf("此会员不存在.\n");
}
// 释放链表内存
void freeList(struct member *head) {
struct member *p = head, *q;
while (p != NULL) {
q = p->next;
free(p);
p = q;
}
}
int main() {
struct member *head = createList();
exchange(head);
freeList(head);
return 0;
}
```
运行示例:
```
请依次输入每个会员的编号、姓名、积分:
1 zhang 30600
是否继续输入,按Y键继续输入,其他键就结束.
Y
请依次输入每个会员的编号、姓名、积分:
2 li 20008
是否继续输入,按Y键继续输入,其他键就结束.
Y
请依次输入每个会员的编号、姓名、积分:
3 fu 10000
是否继续输入,按Y键继续输入,其他键就结束.
n
请输入要兑换积分的会员编号:
4
此会员不存在.
```