掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23699

二つの時間の差を関数を使って求めたいのですが・・・
投稿者---ran(2005/10/18 17:30:56)


二つの時間の差を求めたいのですが、関数のところがうまくいきません。

#include <stdio.h>

typedef struct {
int h;
int m;
int s;
} jikan;

jikan before(jikan *x, jikan *n, jikan *s);

main(){
jikan a={5,20,5};
jikan b={10,10,10};
jikan c;
static *mae,*ato;



c=before(&mae,&a,&b);

printf("時間差は%d時間%d分%d秒です\n",mae.h,mae.m,mae.s);
}

jikan before(jikan *mae,jikan *a,jikan *b){
int x,y,z;
x=a.h*3600+a.m*60+a.s;
y=b.h*3600+b.m*60+b.s;
z=x-y;
mae.h=x/3600;
x%=3600;
mae.m=x/60;
x%=60;
mae.s=x;

}
こういうものを作ってみたのですが、
>構造体/共用体でないものに . が適用された
というエラーがずっと出てうまくいきません。
どうしたらいいのかどなたか教えてください。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:二つの時間の差を関数を使って求めたいのですが・・・ 23700 Blue 2005/10/18 17:39:33
<子記事> Re:二つの時間の差を関数を使って求めたいのですが・・・ 23701 nop 2005/10/18 17:55:46


No.23700

Re:二つの時間の差を関数を使って求めたいのですが・・・
投稿者---Blue(2005/10/18 17:39:33)


before関数内のmae,a,bそれぞれの変数の型を再度確認してみてはいかがでしょうか?


それとエラーがでた場合は、省略せずにそのまま張るほうがベストです。
(パスはある程度変更してもいいけど)



この投稿にコメントする

削除パスワード

No.23701

Re:二つの時間の差を関数を使って求めたいのですが・・・
投稿者---nop(2005/10/18 17:55:46)


> static *mae,*ato;



< static int *mae,*ato;

と等価です。

> jikan before(jikan *x, jikan *n, jikan *s);
> c=before(&mae,&a,&b);

つまり、「jikan *」型を要求している引数とする事は出来ません。

また、

> printf("時間差は%d時間%d分%d秒です\n",mae.h,mae.m,mae.s);

「int *」である「mae」には、
メンバを参照するための「.」や「->」の演算子は適用できません。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧