C言語関係掲示板

過去ログ

No851 forを使わず構造体の配列を参照

[戻る] [ホームページ]
No.10960

構造体の参照について
投稿者---ゆーこ(2003/12/09 03:29:01)


学校の宿題で、困ってしまっています。
下記のような構造体があります。

typedef struct{
int a;
int b;
int c;
}ans;

const ans tbl[]=
{ 1, 2, 3},
{ 3, 4, 5},
{ 6, 7, 8},
{ 9, 10, 11 };

a, b を指定して、cを求めたいのですが、
どのようにすればいいのでしょうか?

for文を使用すればできるのですが、
使わずに処理する方法を教えてください。

よろしくお願いします。

No.10962

Re:構造体の参照について
投稿者---RAPT(2003/12/09 06:57:59)


> for文を使用すればできるのですが、
では、for文を使用したコードを書いてください。
何をしたいのか、読み取れません。

No.10964

Re:構造体の参照について
投稿者---JUN2(2003/12/09 10:56:50)


if((tbl[0].a == 指定a) && (tbl[0].b == 指定b)){
    c = tbl[0].c;
}
上記をelse ifでつないでtbl[3]までやるのじゃだめだめだよね。
while()は?
この手のたぐいは基本的にfor()かwhile()でループらせる
のが基本なんだけど。


No.10968

Re:構造体の参照について
投稿者---おでん(2003/12/09 15:26:42)


>
if((tbl[0].a == 指定a) && (tbl[0].b == 指定b)){
    c = tbl[0].c;
}
上記をelse ifでつないでtbl[3]までやるのじゃだめだめだよね。
while()は?
この手のたぐいは基本的にfor()かwhile()でループらせる
のが基本なんだけど。

こんなのは?
#include <stdio.h>

typedef struct{
  int a;
  int b;
  int c;
}ans;

const ans tbl[]={
  { 1, 2, 3},
  { 3, 4, 5},
  { 6, 7, 8},
  { 9, 10, 11 },
  { 0, 10, 11 }
};


int abc( const ans * ptr, int a, int b ){
    if( ptr->a == 0 ){
        return 0 ;
    }
    if( ptr->a == a && ptr->b == b ){
        return ptr->c ;
    }
    return abc( ++ptr, a, b ) ;
}

int main( )
{

  printf("%d\n",abc(tbl, 3, 4 )) ;

  return 0 ;
}


No.10969

Re:構造体の参照について
投稿者---JUN2(2003/12/09 16:00:27)


> #include <stdio.h>
> typedef struct{
>  int a;
>  int b;
>  int c;
> }ans;

> const ans tbl[]={
>  { 1, 2, 3},
>  { 3, 4, 5},
>  { 6, 7, 8},
>  { 9, 10, 11 },
>  { 0, 10, 11 }
> };


> int abc( const ans * ptr, int a, int b ){
>    if( ptr->a == 0 ){
>        return 0 ;
>    }
>    if( ptr->a == a && ptr->b == b ){
>        return ptr->c ;
>    }
>    return abc( ++ptr, a, b ) ;
> }

> int main( )
> {
>  printf("%d\n",abc(tbl, 3, 4 )) ;
>  return 0 ;
> }


データ量が少ないか、多くなってもスタックに余裕があれば
いいね。



No.10970

Re:構造体の参照について
投稿者---JUN2(2003/12/09 16:01:34)


あっ、がっこの課題ならデータ量、スタックなんか
考えなくていいのか。

No.10974

Re:構造体の参照について
投稿者---たいちう(2003/12/09 17:16:22)


>あっ、がっこの課題ならデータ量、スタックなんか
>考えなくていいのか。

この構造体でループを使うなというが課題の条件ならば、
課題のほうがどうかしてると思うのですが。

forを使わないのは、本当に条件なのか、勘違いか、好みか、好奇心か。

No.10979

Re:構造体の参照について
投稿者---JUN2(2003/12/10 09:55:50)


再帰を教えたかったとおもふ。

No.10982

Re:構造体の参照について
投稿者---たか(2003/12/10 10:56:31)


forがだめならgotoという切り札があります。

但しgotoはプログラムを読みにくくする、バグの温床になりやすいなどの
理由でC言語では(C++でも)あまり使用は推奨されていません。

主な使い道は二重以上のループやswitch文を含むループからの脱出など
です。