「ブロック機能」のリニューアルについて

bList.c
#include "bList.h"

void B_makeEmpty(bLIST *x) {// リストを初期化する
x->L = x->R = 0;
}

int B_isEmpty(bLIST *x) {// リストが空であれば1を,そうでなければ0を返す
return (x->L == x->R);
}

int B_size(bLIST *x) {// リストの要素数を返す
return x->R - x->L;
}

int B_isFull(bLIST *x) {// リストが一杯であれば1を,そうでなければ0を返す
return (B_size(x)==MAXLENGTH);
}

static int pos(int i) {
while (i < 0) i += MAXLENGTH;
return i%MAXLENGTH;
}

void B_pushFront(bLIST *x, bSHAPE e) {// リストの先頭に要素eを追加する
int p = pos(--x->L);
x->elem[p] = e;
}

void B_pushBack(bLIST *x, bSHAPE e) {// リストの末尾に要素eを追加する
int p = pos(x->R++);
x->elem[p] = e;
}

bSHAPE B_popFront(bLIST *x) {// リストの先頭から要素を取り出す
int p = pos(x->L++);
return x->elem[p];
}

bSHAPE B_popBack(bLIST *x) {// リストの末尾から要素を取り出す
int p = pos(--x->R);
return x->elem[p];
}

bSHAPE B_retrieve(bLIST *x, int i) {// リストのi番目の要素を返す
int p = pos(x->L+i);
return x->elem[p];
}

void B_swap(bLIST *x, int i, int j) {// リストのi番目とj番目の要素を入れ替える
int p = pos(x->L+i);
int q = pos(x->L+j);
bSHAPE temp = x->elem[p];
x->elem[p] = x->elem[q];
x->elem[q] = temp;
}

void B_printList(bLIST *x) {// リストの内容をプリントする
printf("[");
for (int i = 0; i < B_size(x); i++){
if (i > 0) printf(", ");
bSHAPE e = B_retrieve(x, i);
printf("(%d,%d)", e.BlockID, e.Direction);
}
printf("]");
}

bList.h
#ifndef BLIST_H
#define BLIST_H

#include <stdio.h>

typedef struct {
int BlockID; // 0, 1, ..., 9
int Direction; // 0, 1
} bSHAPE;

#define MAXLENGTH (100)
typedef struct {
int L;
int R;
bSHAPE elem[MAXLENGTH];//要素を格納する配列
} bLIST;

void B_makeEmpty(bLIST *x); // リストを初期化する
int B_isEmpty(bLIST *x); // リストが空であれば1を,そうでなければ0を返す
int B_size(bLIST *x); // リストの要素数を返す
int B_isFull(bLIST *x); // リストが一杯であれば1を,そうでなければ0を返す
void B_pushFront(bLIST *x, bSHAPE e); // リストの先頭に要素eを追加する
void B_pushBack(bLIST *x, bSHAPE e); // リストの末尾に要素eを追加する
bSHAPE B_popFront(bLIST *x); // リストの先頭から要素を取り出す
bSHAPE B_popBack(bLIST *x); // リストの末尾から要素を取り出す
bSHAPE B_retrieve(bLIST *x, int i); // リストのi番目の要素を返す
void B_swap(bLIST *x, int i, int j);// リストのi番目とj番目の要素を入れ替える
void B_printList(bLIST *x); // リストの内容をプリントする

#endif

これを教えてください。

教えて!goo グレード

A 回答 (4件)

質問文のコードを試した感じ、回答者(トモクンアヤチャン)さんの言ってることが正しいですね。



https://ideone.com/PuXjdB

Compilation error [略](.text+0x20): undefined reference to `main'

質問者(とに1001)さjavascript:void 0;んが見てるエラーが上記と異なるのであれば、正確な情報を出したほうが回答を得られやすいです。
    • good
    • 0
この回答へのお礼

ここでは文字数が多すぎて書ききれないのでなにかコードを個人的に添削していただけないでしょうか?

お礼日時:2021/12/03 16:30

mainはどこにあるかと聞いています。


お答えください。
    • good
    • 0
この回答へのお礼

どの部分をUTF-8にすればよいのでしょうか?

お礼日時:2021/11/27 05:41

mainがな久手いいのでしょうか。

    • good
    • 0
この回答へのお礼

https://oshiete.goo.ne.jp/qa/12688913.html
この質問が派生となっております。良ければ回答お願いします。

お礼日時:2021/11/26 10:56

どの様なエラーが出るのかを書くべきですね。

    • good
    • 0
この回答へのお礼

https://oshiete.goo.ne.jp/qa/12688913.html
この質問に派生しているので回答お願いします。

お礼日時:2021/11/26 10:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング