アルファベット順になるように

解決


木更津  2005-07-04 05:32:39  No: 58158

アルファベッド順に出力したいのに
Annaでループしてしまいます、
もしよろしければ修正点をお願いします。
#include  <stdio.h>

typedef struct  list{
  char  name[10];
  int    next;
}NODE;

void main(void)
{
  NODE  tbl[]={
  {"Ben",4},{"Dennis",3},{"Anna",2},{"Emma",1},{"Candy",0}
  };
  int  head = 2,i;

  printf("*** リストの内容 ***\n");
  i=head;
  while(i!=99){
    printf("%s\n", tbl[i].name);
    i=tbl[i].next;
  }
}


まきじ  2005-07-04 06:02:03  No: 58159

リストになってないと思います。

char tbl[5][32]={"Ben","Dennis","Anna","Emma","Candy"};

などにして、ソートすれば良いと思います。


dairygoods  2005-07-04 06:17:35  No: 58160

tbl[2]のnextが2ですから、無限ループするのは当然でしょう。


diaradiara  2005-07-04 07:53:12  No: 58161

> {"Ben",4},{"Dennis",3},{"Anna",2},{"Emma",1},{"Candy",0}

ここは、逆順にすべきでは。配列は0からスタートするんだから。
もしやるなら
 {"Candy",1},{"Emma",2},{"Anna",3},{"Dennis",4}, {"Ben",5}
こうでは。
あと、headは0にして。

ただ、もし、リンクリストのつもりなら、まちがってますよ。作り方
(こういう構造体だ、といわれたら、納得するけど)

それにソートしてないと、アルファベット順にはならないです。


diaradiara  2005-07-04 07:58:33  No: 58162

あ、あと
>while(i!=99){

while(i!=5){
としないと、だめですね。

配列の最大数を、定数で書いておくのが良いかと。


木更津  2005-07-04 08:20:37  No: 58163

皆様ありがとうございます。
色々いじくって正常に動きました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加