剛剛的程式可以幫我把他用stack方式,做一組一組長寬的隨機生成嗎用c語言
时间: 2023-05-26 09:03:22 浏览: 40
以下是用C語言實現的程式碼,使用stack方式生成一組組長寬的隨機數字:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 100
typedef struct {
int length;
int width;
} rectangle;
typedef struct {
rectangle data[MAX_SIZE];
int top;
} stack;
void initStack(stack *s) {
s->top = -1;
}
int isFull(stack *s) {
return s->top == MAX_SIZE - 1;
}
int isEmpty(stack *s) {
return s->top == -1;
}
void push(stack *s, rectangle r) {
if(isFull(s)) {
printf("Error: Stack is full\n");
return;
}
s->top++;
s->data[s->top] = r;
}
rectangle pop(stack *s) {
if(isEmpty(s)) {
printf("Error: Stack is empty\n");
rectangle r = {0, 0};
return r;
}
rectangle r = s->data[s->top];
s->top--;
return r;
}
void printStack(stack *s) {
printf("Stack: ");
for(int i = 0; i <= s->top; i++) {
printf("%d*%d ", s->data[i].length, s->data[i].width);
}
printf("\n");
}
int main() {
stack s;
initStack(&s);
srand(time(NULL));
for(int i = 0; i < 10; i++) {
rectangle r = {rand()%10+1, rand()%10+1};
push(&s, r);
}
printStack(&s);
return 0;
}
```
程式中使用了結構體定義了矩形的長寬,以及使用結構體定義了stack中的資料結構;然後寫了初始化stack、檢查stack是否滿、stack是否為空、push和pop函數。
在main函數中,使用srand函數設定了隨機數生成器的種子,然後使用for循環生成10個矩形的長寬,最後使用printStack函數打印stack中的所有元素。