スタックを用いて整数配列の順序を入れ替えるプログラム
Posted: 2009年11月03日(火) 15:41
C言語プログラミングの超初心者です。
「スタックを用いて0~9の10個の整数配列を5個ずつ並び替えるプログラムをつくる」
(0123456789→4321098765)
という課題に取り組んでいます。
お恥ずかしいのですが私はC言語の基礎(繰り返しや関数の定義)を習った程度のレベルで、
スタック・プッシュ・ポップの関係は何とか理解しましたが、どのようにプログラミングを組めばよいのかわかりません…!
上記の課題の前提として、「0~100までの整数の並び順を逆にする」(0 1 2…100→100 99 98…0)が与えられていました。途中で分からなかった部分もあり、
致命的な間違いもしているかもしれないのですが、記述させていただきます。こちらのプログラムが参考になるようであれば、使っていただければ幸いです。
#include<stdio.h>
#include<stlib.h>
#define STACKLENGTH 100
#define LENGTH 10
int stack[STACKLENGTH];
int stack_p = 0;
void print(void);
void Print(char*,int*a,int);
int main(int arg,char** argv){
int a[LENGTH];
int ii;
for (ii=0; ii<LENGTH, ii++){
a[ii]= rand()%101;
}
Print("入れ替え前",a,LENGTH);
for(ii=0; ii<LENGTH; ii++){
push(a[ii]);
}
for (ii=0; ii){
a[ii]=Pop();
}
Print("入れ替え後",a,LENGTH );
}
void Puch(int a)
{ ここが分かりませんでした
}
int Pop()
{ ここがわかりませんでした
}
void Print(char* title,int* a, int n)
{
int ii;
printf("%s", title);
for (ii=0, ii<n; ii++){
printf("%d" , a[ii]);
}
printf("\n");
}
「スタックを用いて0~9の10個の整数配列を5個ずつ並び替えるプログラムをつくる」
(0123456789→4321098765)
という課題に取り組んでいます。
お恥ずかしいのですが私はC言語の基礎(繰り返しや関数の定義)を習った程度のレベルで、
スタック・プッシュ・ポップの関係は何とか理解しましたが、どのようにプログラミングを組めばよいのかわかりません…!
上記の課題の前提として、「0~100までの整数の並び順を逆にする」(0 1 2…100→100 99 98…0)が与えられていました。途中で分からなかった部分もあり、
致命的な間違いもしているかもしれないのですが、記述させていただきます。こちらのプログラムが参考になるようであれば、使っていただければ幸いです。
#include<stdio.h>
#include<stlib.h>
#define STACKLENGTH 100
#define LENGTH 10
int stack[STACKLENGTH];
int stack_p = 0;
void print(void);
void Print(char*,int*a,int);
int main(int arg,char** argv){
int a[LENGTH];
int ii;
for (ii=0; ii<LENGTH, ii++){
a[ii]= rand()%101;
}
Print("入れ替え前",a,LENGTH);
for(ii=0; ii<LENGTH; ii++){
push(a[ii]);
}
for (ii=0; ii){
a[ii]=Pop();
}
Print("入れ替え後",a,LENGTH );
}
void Puch(int a)
{ ここが分かりませんでした
}
int Pop()
{ ここがわかりませんでした
}
void Print(char* title,int* a, int n)
{
int ii;
printf("%s", title);
for (ii=0, ii<n; ii++){
printf("%d" , a[ii]);
}
printf("\n");
}