以下のプログラムを作りたいのですが、あってるでしょうか?教えてください。
コンパイルしたときのエラーは、.c:37: error: ‘rear’ undeclared here (not in a function)
.c:37: error: expected ‘;’, ‘,’ or ‘)’ before ‘=’ token
char型の1次元配列q[MAX]を用いてキューを表現する。そのときに、データが入っている要素の先頭の添字をtopという変数で保持し、データが入っている要素の最大の添字より1つ大きな値をrearという変数で保持することによって、キューのデータ構造を表現
キューの内容を出力する関数:void print_queue_ary(char *q, int top, int rear)を作成して、キューの要素についてはプログラム内で初期値として与え、作成した関数の動作確認を行う。
出力例としては、キューの中身が[a,b,c,d]でtopが3,rearが7の場合の結果を示す。
a<---TOP=3
b
c
d
<---REAR=7
#include<stdio.h>
#define MAX 100
void print_queue_ary(char *q,int top,int rear);
void enqueue(char,char*,int*,int*);
int main(void)
{
int num = 0, num2 = 0, i=0;
char x[MAX], y;
printf("------------------------\n");
printf("enqueue動作前\n");
printf("<---TOP=%d\n", num);
printf("<---REAR=%d\n", num2);
printf("enqueueする文字:");
while( (y=getchar()) != EOF )
{
if( y != '\n' && y != '\0' )
{
enqueue(y,x,&num,&num2); //関数の処理
printf("enqueue動作後\n");
print_queue_ary(x,num,num2); //関数の処理
printf("------------------------\n");
printf("enqueue動作前\n");
print_queue_ary(x,num,num2); //関数の処理
printf("enqueueする文字:");
}
}
printf("\n^D\n");
return 0;
}
void print_queue_ary(char*
q[*rear] = c; /
No.1ベストアンサー
- 回答日時:
コードが最後までないのですから、コンパイルエラーになるのは当然かと思いますが…。
>void print_queue_ary(char *q,int top,int rear);
と言うプロトタイプ宣言に対し、
void print_queue_ary(char* q[*rear] = c;
という謎のコードですし。
# ってか仮引数が書かれるべき場所にコードがあるのはいかがなものか?
あと、プロトタイプ宣言通りであればrearはint型の変数であってポインタ変数ではないはずですが?
# sizeof(int) = sizeof(char*)な環境なら無理矢理動く…かも知れませんが。
軽く意訳(?)してみる。
>37: error: ‘rear’ undeclared here (not in a function)
「rearが未定義です。」
>37: error: expected ‘;’, ‘,’ or ‘)’ before ‘=’ token
「’=’の前に';'、','または’)’がありません」
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
C言語でヘッダファイルにグローバル変数を宣言する
C言語・C++・C#
-
至急です! マクロ定義で #define NUMBER 10とし 関数で max(double ma
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
charでの計算?
-
文字列から空白を取り除きたい...
-
RGBをCMYKに変換するプログラム
-
コマンドラインに入力されてい...
-
-'0'の意味について
-
recvfrom関数の戻り値がおかし...
-
データの取得をしたいのですが…
-
char* を渡したとき、不適切なP...
-
プログラムの関数化
-
間接操作のレベルとは
-
Cで部分配列
-
C言語の式を教えて頂きたいの...
-
型変換
-
下記のプログラムがコンパイラ...
-
error C2664
-
YUV⇔RGB変換がうまくいきません。
-
'const char *' 型は 'char *' ...
-
CStringをwchar_tに変換したい
-
絶対パスからのファイル名の切...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
CStringをwchar_tに変換したい
-
charでの計算?
-
文字列から空白を取り除きたい...
-
charからLPTSTRへの変換方法
-
'const char *' 型は 'char *' ...
-
テキストデータをそのままバイ...
-
配列をnビットシフトする
-
半角カナ→16進
-
double型の値をchar配列に変換...
-
sprintfに同じ変数は使えるか
-
ファイル名である文字列からbas...
-
ネットワークにつながっている...
-
ftoa の作り方
-
間接操作のレベルとは
-
型変換
-
C言語です
-
C言語のfor文です。 繰り返しの...
-
Win32APIでのエディットボック...
-
【C言語】文字型と整数型の違い
おすすめ情報