教えてください。
Re:教えてください。
他の行に真のエラー原因があって、その行だけを見ても
何もわからないことがあります。
できれば、ソースコード全体を見せてくださるのが望ましいと思います。
そうすれば、こちらでも実際にコンパイルしてみることができますから。
何もわからないことがあります。
できれば、ソースコード全体を見せてくださるのが望ましいと思います。
そうすれば、こちらでも実際にコンパイルしてみることができますから。
Re:教えてください。
> 構造体は、mainの中ではダメなんですか??
昇順や降順にソートする関数の引数に使っている
構造体の定義を、なぜ当該関数の中で行なっているのですか?
というご指摘を受けています。
昇順や降順にソートする関数の引数に使っている
構造体の定義を、なぜ当該関数の中で行なっているのですか?
というご指摘を受けています。
Re:教えてください。
そうではありません。
問題は、引数として使うよりも「前に」構造体を定義していない、という点にあります。
また、今のコードでは、引数として渡している変数の型が不明ですね。
構造体ではない型、例えばint型の変数を引数として渡すとき、どういう風に書きますか?

問題は、引数として使うよりも「前に」構造体を定義していない、という点にあります。
また、今のコードでは、引数として渡している変数の型が不明ですね。
構造体ではない型、例えばint型の変数を引数として渡すとき、どういう風に書きますか?

Re:教えてください。
こう言う感じですか??
void func(int x, int y){
printf("%d %d", x, y);
}
void main(void){
int a, b;
a = 5;
b = 3;
func(a, b);
}
void func(int x, int y){
printf("%d %d", x, y);
}
void main(void){
int a, b;
a = 5;
b = 3;
func(a, b);
}
Re:教えてください。
> void func(int x, int y){
こういう風に、引数の並びを書くときは、
「型名 変数名(, 型名, 変数名 ...)」と書きますね。
ひるがえって、最初のコードを見てください。
引数の型がどこにも書いてありません。
こういう風に、引数の並びを書くときは、
「型名 変数名(, 型名, 変数名 ...)」と書きますね。
ひるがえって、最初のコードを見てください。
引数の型がどこにも書いてありません。
Re:教えてください。
> void ascending_order(unsigned char list[LIST_ITEM].sp, unsigned long list[LIST_ITEM].p){
仮引数名(list[LIST_ITEM].sp、list[LIST_ITEM].p))が不正です。
spとかpとか簡単な名前に置き換えてください。
仮引数名(list[LIST_ITEM].sp、list[LIST_ITEM].p))が不正です。
spとかpとか簡単な名前に置き換えてください。
Re:教えてください。
MistさんのNo.56380を再読してください。
構造体を宣言する場所が、本当にそこでいいでしょうか。
また、構造体のメンバー構成が同じでも、
shoppingという構造体とcoursesという構造体とは別物として扱います。
今回のプログラムではそういう扱いでいいのでしょうか。
構造体を宣言する場所が、本当にそこでいいでしょうか。
また、構造体のメンバー構成が同じでも、
shoppingという構造体とcoursesという構造体とは別物として扱います。
今回のプログラムではそういう扱いでいいのでしょうか。
Re:教えてください。
こんにちは。
関数を取り払って、まず構造体から直してみました。
でも、まだ直ってないのですがどこが悪いのか指摘してください。
因みに、「未定義のシンボル sp(関数 main)」って返ってきます。
お願いします。
関数を取り払って、まず構造体から直してみました。
でも、まだ直ってないのですがどこが悪いのか指摘してください。
因みに、「未定義のシンボル sp(関数 main)」って返ってきます。
お願いします。
Re:教えてください。
気付いたところとしては
scanf("%s", &liste[LIST_ITEM].sp); ここの&は必要ないと思います。 liste.p < liste.sp この比較は明らかにおかしいです。
Re:教えてください。
>「未定義のシンボル sp(関数 main)」って返ってきます。
struct shopping{
unsigned long p;
unsinged char sp[SP_ITEM];
};
unsinged → unsigned です。
予約語の色を変えてくれるエディタなどを使うと、こういう綴りミスはすぐに見つけられると思います。
いろいろ問題はありますが、とりあえず1つ挙げておくと、
構造体変数は比較はできませんが代入はできるので、ソートの内部はもっと簡単にできます。
struct shopping{
unsigned long p;
unsinged char sp[SP_ITEM];
};
unsinged → unsigned です。
予約語の色を変えてくれるエディタなどを使うと、こういう綴りミスはすぐに見つけられると思います。
いろいろ問題はありますが、とりあえず1つ挙げておくと、
構造体変数は比較はできませんが代入はできるので、ソートの内部はもっと簡単にできます。
Re:教えてください。
みなさん、ありがとうございます。
>もぐりん
>コンパイラは何を使用していますか?
Borlandです。「独習C(参考書)」についてたものです。
>白い時空
>scanf("%s", &liste[LIST_ITEM].sp);
>ここの&は必要ないと思います。
なぜですか??
>liste.p < liste.sp
>この比較は明らかにおかしいです。
すいません。これは「liste.p < liste[j].p」です。
>fatens
>unsinged → unsigned です。
すいません。簡単なミスですね。
動くようにはなったのですが、文字化けしてしまってるんです。
自分の環境ではないところでは、上手くいってたのですが…。
>もぐりん
>コンパイラは何を使用していますか?
Borlandです。「独習C(参考書)」についてたものです。
>白い時空
>scanf("%s", &liste[LIST_ITEM].sp);
>ここの&は必要ないと思います。
なぜですか??
>liste.p < liste.sp
>この比較は明らかにおかしいです。
すいません。これは「liste.p < liste[j].p」です。
>fatens
>unsinged → unsigned です。
すいません。簡単なミスですね。
動くようにはなったのですが、文字化けしてしまってるんです。
自分の環境ではないところでは、上手くいってたのですが…。
Re:教えてください。
>for(i = 0; i < LIST_ITEM; i++){
> printf("買い物:");
> scanf("%s", &liste[LIST_ITEM].sp);
> printf("値段:");
> scanf("%lu", &liste[LIST_ITEM].p);
>}
入力した値をどこに格納しているか確認してください。
> printf("買い物:");
> scanf("%s", &liste[LIST_ITEM].sp);
> printf("値段:");
> scanf("%lu", &liste[LIST_ITEM].p);
>}
入力した値をどこに格納しているか確認してください。
Re:教えてください。
>>scanf("%s", &liste[LIST_ITEM].sp);
>>ここの&は必要ないと思います。
>なぜですか??
scanf関数の第2引数以降は、ポインタである必要がありますね。
また、C言語の大前提として、「配列名は、その配列の先頭要素へのポインタである」
というものがあります。よって、
scanf("%s", liste[LIST_ITEM].sp);
という結論を得ます。
>>ここの&は必要ないと思います。
>なぜですか??
scanf関数の第2引数以降は、ポインタである必要がありますね。
また、C言語の大前提として、「配列名は、その配列の先頭要素へのポインタである」
というものがあります。よって、
scanf("%s", liste[LIST_ITEM].sp);
という結論を得ます。