我正在努力制定欧姆的法律计划。 V = IR。
#include <stdio.h>
int main(int argc, const char * argv[]) {
int V,I,R;
printf("please enter the value of the current if the value is not known make I=0 ");
scanf("%d", &I);
printf("please entre the value of the resistance if the value is not known make R=0");
scanf("%d", &R);
printf("please enter the value of the voltage, if unknown make V=0");
scanf("%d", &V);
if (V == 0)
V = I*R;
{
printf(" V = %d",V);
}
else if (I==0)
I = V/R;
{
printf("I = %d ",I);
}
else
R = V/I;
{
printf("R= %d",R);
}
return 0;
}
我是初学者,我如何改进我的代码,所以它有效? 任何帮助都非常感谢谢谢。
答案 0 :(得分:1)
使用浮点变量:
#include <stdio.h>
int main(int argc, const char * argv[])
{
float V,I,R;
printf("welcome to my lovely program");
printf("please enter the value of the current if the value is not known make I=0 ");
scanf("%f", &I);
printf("please entre the value of the resistance if the value is not known make R=0");
scanf("%f", &R);
printf("please enter the value of the voltage, if unknown make V=0");
scanf("%f", &V);
if (V == 0)
{
V = I*R;
printf(" V = %f",V);
}
else if (I==0)
{
I = V/R;
printf("I = %f ",I);
}
else
{
R = V/I;
printf("R= %f",R);
}
return 0;
}
如果您使用int
而不是float
或double
,则在划分时会出现截断值。并且请学会缩进你的代码 - 你的if-else块都搞砸了。
答案 1 :(得分:1)
你需要学习缩进,并且应该在if / else if / else块中给出语句
if (V == 0) {
V = I*R;
printf(" V = %d",V);
} else if (I == 0) {
I = V/R;
printf("I = %d ",I);
} else {
R = V/I;
printf("R= %d",R);
}
让你所有的声明浮动,因为你在第二和第三中计算I和R因为整数你将得到整数部分。
答案 2 :(得分:0)
首先 - 如果在“if”条件中要执行多于1行的条件,则条件遵循括号,因此您应将第一行放在括号内的if条件之后,而不仅仅是print statement.same for all你使用的条件语句就像elseif
答案 3 :(得分:0)
虽然您可以使用不带括号的if语句编写决策,但您所做的事情(在if语句之后添加决策,然后放置括号,然后添加另一个决策)是C中的错误语法。通常,我总是做出决定在括号内的if或else语句中,因为它使您和其他人更容易阅读和编辑您的代码。因此,对于它的工作,请根据上述说明进行以下操作
#include <stdio.h>
int main(int argc, const char * argv[]) {
int V,I,R;
printf("please enter the value of the current if the value is not known make I=0 ");
scanf("%d", &I);
printf("please entre the value of the resistance if the value is not known make R=0");
scanf("%d", &R);
printf("please enter the value of the voltage, if unknown make V=0");
scanf("%d", &V);
if (V == 0)
{
V = I*R;
printf(" V = %d",V);
}
else if (I==0)
I = V/R;
{
printf("I = %d ",I);
}
else
{
R = V/I;
printf("R= %d",R);
}
return 0;
}
然而,这仅适用于整数,所以如果我是你,我会使用浮点数或双数据类型(尽管不使用双数据类型,因为它使用的内存比浮点更多,而且你不会'真的需要一个数字到太多的小数位。还有为什么你甚至一次不使用它们就把参数放在int main函数中?