这个程序用c语言该怎么写啊,没有思路
设计一个算法,将计算机产生的n个随机数分为奇数、偶数两组,并将它们分别压入两个栈中,然后在屏幕上输出。
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
设计一个算法,将计算机产生的n个随机数分为奇数、偶数两组,并将它们分别压入两个栈中,然后在屏幕上输出。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 创意程序员 2023-04-26 19:35关注
先定义一个栈结构体,其中包含一个整型数组和一个整型变量top,表示栈的元素和栈顶位置。接下来,定义一些基本的栈操作函数,如初始化栈、判断栈是否为空、判断栈是否已满、压入元素、弹出元素等。
然后使用rand函数生成n个随机数,并将它们分别压入奇数栈和偶数栈中。依次从两个栈中弹出元素并输出。示例代码如下:#include <stdio.h> #include <stdlib.h> #include <time.h> #define STACK_SIZE 100 typedef struct Stack { int data[STACK_SIZE]; int top; } Stack; void initStack(Stack* stack) { stack->top = -1; } int isEmpty(Stack* stack) { return stack->top == -1; } int isFull(Stack* stack) { return stack->top == STACK_SIZE - 1; } int push(Stack* stack, int value) {( if (isFull(stack)) { return 0; } stack->data[++stack->top] = value; return 1; } int pop(Stack* stack, int* value) { if (isEmpty(stack)) { return 0; } *value = stack->data[stack->top--]; return 1; } int main() { Stack oddStack, evenStack; initStack(&oddStack); initStack(&evenStack); srand(time(NULL)); int n = 10; for (int i = 0; i < n; i++) { int num = rand() % 100; if (num % 2 == 0) { push(&evenStack, num); } else { push(&oddStack, num); } } printf("奇数:\n"); while (!isEmpty(&oddStack)) { int num; pop(&oddStack, &num); printf("%d ", num); } printf("\n"); printf("偶数:\n"); while (!isEmpty(&evenStack)) { int num; pop(&evenStack, &num); printf("%d ", num); } printf("\n"); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 求解决为什么json数据完整,却解析失败
- ¥15 打开Smart schedule运行examples/transformer-xl/scripts/run_enwik8_base_moe.sh 报错
- ¥15 求一个C# sm4 加密解密的代码
- ¥15 想做个网络加速器,怎么实现
- ¥20 centos7下载mysql提示DNS解析异常
- ¥20 vx转账功能对方不能领取
- ¥15 vue2+codemirror 运行后页面光标太大了
- ¥15 pdfjs库如何在前端实现打印、旋转等功能
- ¥15 combobox数据绑定问题
- ¥15 maven打包时,为什么有的依赖打不进去包