質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

667閲覧

printfが出力されない

xxxrrrr

総合スコア17

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/09/01 02:16

編集2018/09/01 02:18

C言語初心者の学生です。
2抵抗r1,r2を入力して、直列、並列の合成抵抗をそれぞれc,hに出力するプログラムを作っているのですが、入力後printfが出力されず、
Integer division by zero.
と出ます。

(抵抗値が負であれば再入力させたいです。)
なにか間違いがあれば、教えていただきたいです。

C言語

1#include<stdio.h> 2#include<stdlib.h> 3#include<math.h> 4 5int main(void) 6{ 7 int r1,r2,c,h; 8 9 printf("r1="); 10 scanf("%d", &r1); 11 printf("r2="); 12 scanf("%d", &r2); 13 14 if (r1 < 0 || r2 < 0) 15 { 16 printf("r1="); 17 scanf("%d", &r1); 18 printf("r2="); 19 scanf("%d", &r2); 20 } 21 else 22 { 23 c = r1 + r2; 24 h = 1 / ((1 / r1) + (1 / r2)); 25 } 26 27 printf("%d,%d", c, h); 28 29 system("PAUSE"); 30 return 0; 31} 32

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xxxrrrr

2018/09/01 02:23

追記:すみません、すべてfloatにしたら解決できました。初歩的なところでした。整数部分だけでも出力されないのですね。
BeatStar

2018/09/01 02:31

解決したのなら他の人がわかるように「(自己)解決しました」的なエリアがあるはず(回答者からは提示されるまでは見えない...)だからそこに書く。そうしないと解決済み扱いにはなりませんから、後々面倒ですよ。
guest

回答2

0

r1 も r2 も整数型なので、r1 もしくは、r2 が 1 でないと
計算結果が途中過程で 0 になり、0 除算 のエラーが起きます。

h = 1 / ((1 / r1) + (1 / r2));

普通は、小数点以下が計算できる、float か double を使います。

投稿2018/09/01 02:45

PingHermit

総合スコア478

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

自己解決できました。失礼いたしました。
コメント欄ではなくここでいうのですね。
気をつけます。

投稿2018/09/01 02:43

xxxrrrr

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問