C言語を勉強中です・・・
0秒から1.0秒まで0.01秒刻みでデータ(s[i])を配列から表示させていく簡単なプログラムです。
0から0.2までは"30"
0.2から0.4までは"29"
0.4から1.0までは"30"と表示させたいのですが、
全て"30"と表示されてしまいます。
配列の仕方が悪いのでしょうか??
すごく基本的な質問かもしれませんが、どなたか分かる方、よろしくお願いします。
#include <stdio.h>
#include <math.h>
#define number0 (100)
#define h (0.01)
#define f1 (30.0)
#define f2 (29.0)
void main(void){
double s[number0]={0};
int i;
double t;
for(i=0; i<number0; i++){
t=h*i;
if(0<=i<20){
s[i]=f1;
} else {
if (20<=i<40){
s[i]=f2;
} else {
s[i]=f1;
}
}
printf("%g %g\n",t,s[i]);
}
}
No.2ベストアンサー
- 回答日時:
こんにちわ。
条件式には、複数の条件を一度に指定はできません。
複数の条件式を指定するには、&& (and), || (or) を使います。
「if (20 <= i < 40)」と記述している部分を、
「if ((20 <= i) && (i < 40)) のように記述して下さい。
(内側の括弧は必須ではありませんが、上記のようにすると
ミスが少なくなります。)
georgia さんのプログラム (部分) をもう少し分かりやすく書くと
以下のようになります。
プログラム1, 2 共同じ結果が得られます。
参考にして下さい。
-------------------------------------
プログラム1
for (i = 0; i < number0; i++) {
t=h*i;
if (i < 20) {
s[i]=f1;
} else if (i < 40){
s[i]=f2;
} else {
s[i]=f1;
}
printf("%g %g\n",t,s[i]);
}
-------------------------------------
プログラム2
for (i = 0; i < number0; i++) {
t=h*i;
s[i] = ((i < 20) || (i >= 40)) ? (f1) : (f2);
printf("%g %g\n",t,s[i]);
}
-------------------------------------
めちゃめちゃ分かりやすかったです!! 簡単なプログラムだったんですが、とっても困っていたので相当助かりました!! 本当にありがとうございました!! C言語の勉強頑張ります・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
XnViewにwebpを「いつも開く」...
-
読み込み中にアクセス違反が発...
-
VBAでユーザーフォームが自動的...
-
VC++でプログラムの多言語化を...
-
少ない順 昇順 降順
-
エクセルとワードをデスクトッ...
-
PICマイコンのコピー(クローン...
-
基本的なC言語のプログラム
-
VBAにてメール作成した際、一部...
-
1. 仮想CPU「exmini」を使用し...
-
C#での台形の面積を求めるプロ...
-
閉じるを押してもデバッグが終...
-
Excelに埋め込んだVBAのプログ...
-
NC旋盤の原点設定
-
テキストファイルを間違えて保...
-
VB.netで自作プログラムがウイ...
-
エクセルVBA 検索時に除外を設...
-
TK-85においてプログラム作成に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで4096点以上のFFTの方法
-
あるプログラムのコマンドライ...
-
VBAにてメール作成した際、一部...
-
PICマイコンのコピー(クローン...
-
長距離・マラソンをやりながら...
-
Excelに埋め込んだVBAのプログ...
-
「Outlookが他のプログラムによ...
-
自動クエリとはどういうもので...
-
未使用の変数を一括検索する方法
-
読み込み中にアクセス違反が発...
-
VBAでユーザーフォームが自動的...
-
エクセルとワードをデスクトッ...
-
モジュール、アプリケーション...
-
テキストボックスのエンターキ...
-
画像を読み込むのと取り込むの...
-
Vba 実数および実数タイプの変...
-
インクリメント演算子のみを用...
-
main関数を先頭に置くデメリット
-
C言語でのaccess violationに...
-
Application.ScreenUpdatingが...
おすすめ情報