hms2secという関数自分で作り、この関数を使ったプログラムをしたいと考えています。ifを使ってh,m,sが0<=h<60,0<=m<60,0<=s<60でない時、-1となるようにしたいです。(0<h<60,0<m<60,0<s<60の時は、秒数を表す。)一応組んではみたのですが、h,m,sが宣言されていないと出てしまいました。どのように改善すれば下記のようにコンパイルの結果が出るのでしょうか。お答えお待ちしております。
c
1#include <stdio.h> 2int hms2sec(int h,int m,int s){ 3int x; 4x=h*3600+m*60+s; 5 6return x; 7} 8 9int main(){ 10 11 if(0<=h<60,0<=m<60,0<=s<60){ 12 int n; 13 n= hms2sec(0,0,10); 14 printf("%d秒\n",n); 15 int l; 16 l=hms2sec(2,33,51); 17 printf("%d秒\n",l); 18 int o; 19 o=hms2sec(24,0,0); 20 printf("%d秒\n",o); 21 int p; 22 p=hms2sec(-1,23,45); 23 printf("%d秒\n",p); 24 int q; 25 q=hms2sec(23,45,67); 26 printf("%d秒\n"); 27 int r; 28 r=hms2sec(1,-3,0); 29 printf("%d秒\n"); 30 } 31 else 32 printf("-1秒\n"); 33 34 35} 36
コンパイルの結果↓
clang-7 -pthread -lm -o main main.c main.c:11:8: error: use of undeclared identifier 'h' if(0<=h<=60,0<=m<=60,0<=s<=60){ ^ main.c:11:17: error: use of undeclared identifier 'm' if(0<=h<=60,0<=m<=60,0<=s<=60){ ^ main.c:11:26: error: use of undeclared identifier 's' if(0<=h<=60,0<=m<=60,0<=s<=60){ ^ compiler exit status 1 main.c:26:12: warning: more '%' conversions than data arguments [-Wformat] printf("%d秒\n"); ~^ main.c:29:12: warning: more '%' conversions than data arguments [-Wformat] printf("%d秒\n"); ~^ 2 warnings and 3 errors generated.
理想のコンパイル結果↓
10秒 9231秒 86400秒 -1秒 -1秒 -1秒
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。