2301_77118124 2023-04-26 19:06 采纳率: 66.7%
浏览 27
已结题

设计一个算法,将计算机产生的n个随机数分为奇数、偶数两组,并将它们分别压入两个栈中,然后在屏幕上输出。

这个程序用c语言该怎么写啊,没有思路
设计一个算法,将计算机产生的n个随机数分为奇数、偶数两组,并将它们分别压入两个栈中,然后在屏幕上输出。

  • 写回答

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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月26日

悬赏问题

  • ¥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打包时,为什么有的依赖打不进去包