mappy1983のプロフィール
- ベストアンサー数
- 7
- ベストアンサー率
- 70%
- お礼率
- 0%
- 登録日2005/03/18
- 関数のポインタ
char* check(int a,int b,int c) { return(\"yes\"); とした場合char* checkは何を表しているのでしょうか。 また、 char *str_copy(char d[], char s[]) { char *t=d; while(*d++ = *s++) ; return t; とした場合との違いはあるのでしょうか。 ポインタを返すときに*をつけると教わったのですがいまいち理解できなかったのですがどのような処理が行われているのでしょうか、お願いします。
- 締切済み
- C・C++・C#
- shiroshi77
- 回答数4
- 関数のポインタ
char* check(int a,int b,int c) { return(\"yes\"); とした場合char* checkは何を表しているのでしょうか。 また、 char *str_copy(char d[], char s[]) { char *t=d; while(*d++ = *s++) ; return t; とした場合との違いはあるのでしょうか。 ポインタを返すときに*をつけると教わったのですがいまいち理解できなかったのですがどのような処理が行われているのでしょうか、お願いします。
- 締切済み
- C・C++・C#
- shiroshi77
- 回答数4
- 複素数の四則計算
複素数の四則計算を構造体を使って実行させたいのですが、いまいち構造体のことを理解できていません。 以下の何が間違っているのでしょうか? コンパイルはできますがおそらく間違った値が出てしまっているようです。 #include <stdio.h> typedef struct{ float re, im; } COMPLEX; COMPLEX cal ( COMPLEX a, char c, COMPLEX b ) { COMPLEX d; switch (c) { case '+' : d.re = a.re + b.re; d.im = a.im + b.im; break; case '-' : d.re = a.re - b.re; d.im = a.im - b.im; break; case '*' : d.re = (a.re * b.re) - (a.im * b.im); d.im = (a.im * b.re) + (a.re * b.im); break; case '/' : d.re = (a.re * b.re + a.im * b.im) / ( pow(b.re,2) + pow(b.im,2) ); d.im = (a.im * b.re - a.re * b.im) / ( pow(b.re,2) + pow(b.im,2) ); break; default :puts("不適切な演算です。"); break; } return d; } int main(void) { COMPLEX a; COMPLEX b; printf("aの実数部を入力:"); scanf("%f",&a.re); printf("aの虚数部を入力:"); scanf("%f",&a.im); printf("bの実数部を入力:"); scanf("%f",&b.re); printf("bの虚数部を入力:"); scanf("%f",&b.im); printf("%f + (%f)*i\n",cal(a,'+',b)); printf("%f + (%f)*i\n",cal(a,'-',b)); printf("%f + (%f)*i\n",cal(a,'*',b)); printf("%f + (%f)*i\n",cal(a,'/',b)); } 以上です。 ちなみに、例えばcal(a,'+',b)とすると和が返るようにしなさいという指示がありました。 どなたか教えて頂けるとありがたいです…。
- ベストアンサー
- C・C++・C#
- noname#90946
- 回答数7
- 複素数の四則計算
複素数の四則計算を構造体を使って実行させたいのですが、いまいち構造体のことを理解できていません。 以下の何が間違っているのでしょうか? コンパイルはできますがおそらく間違った値が出てしまっているようです。 #include <stdio.h> typedef struct{ float re, im; } COMPLEX; COMPLEX cal ( COMPLEX a, char c, COMPLEX b ) { COMPLEX d; switch (c) { case '+' : d.re = a.re + b.re; d.im = a.im + b.im; break; case '-' : d.re = a.re - b.re; d.im = a.im - b.im; break; case '*' : d.re = (a.re * b.re) - (a.im * b.im); d.im = (a.im * b.re) + (a.re * b.im); break; case '/' : d.re = (a.re * b.re + a.im * b.im) / ( pow(b.re,2) + pow(b.im,2) ); d.im = (a.im * b.re - a.re * b.im) / ( pow(b.re,2) + pow(b.im,2) ); break; default :puts("不適切な演算です。"); break; } return d; } int main(void) { COMPLEX a; COMPLEX b; printf("aの実数部を入力:"); scanf("%f",&a.re); printf("aの虚数部を入力:"); scanf("%f",&a.im); printf("bの実数部を入力:"); scanf("%f",&b.re); printf("bの虚数部を入力:"); scanf("%f",&b.im); printf("%f + (%f)*i\n",cal(a,'+',b)); printf("%f + (%f)*i\n",cal(a,'-',b)); printf("%f + (%f)*i\n",cal(a,'*',b)); printf("%f + (%f)*i\n",cal(a,'/',b)); } 以上です。 ちなみに、例えばcal(a,'+',b)とすると和が返るようにしなさいという指示がありました。 どなたか教えて頂けるとありがたいです…。
- ベストアンサー
- C・C++・C#
- noname#90946
- 回答数7
- OpenGL
OpenGLのプログラムをBoland C++5.5でコンパイルしたときに一応コンパイルは通るが、Warningで、マクロ 'M_PI' の重複定義と出てきます。この他にも幾つか同じような重複定義が出てきます。実行ファイルはなんら問題なく動くのでよいのですが、気になるのでどなたか対処法知っている方教えてください。
- 締切済み
- C・C++・C#
- hashimotok
- 回答数1