简单C奇怪
这一点点C代码快把我逼疯了。它请求输入电压,但随后跳过电阻器1并请求电阻器2。我错过了一些非常明显的东西。。。到底发生了什么事简单C奇怪,c,C,这一点点C代码快把我逼疯了。它请求输入电压,但随后跳过电阻器1并请求电阻器2。我错过了一些非常明显的东西。。。到底发生了什么事 #include <stdio.h> int main() { float Vin; int R1; int R2; printf("Input Voltage: "); scanf("%.3f", &Vin); printf("\nResistor 1: "); scanf("%d"
#include <stdio.h>
int main()
{
float Vin;
int R1;
int R2;
printf("Input Voltage: ");
scanf("%.3f", &Vin);
printf("\nResistor 1: ");
scanf("%d", &R1);
printf("\nResistor 2: ");
scanf("%d", &R2);
return(0);
}
#包括
int main()
{
浮动Vin;
int R1;
int R2;
printf(“输入电压:”);
scanf(“%.3f”和Vin);
printf(“\nRestor1:”);
scanf(“%d”和&R1);
printf(“\nRestor2:”);
scanf(“%d”和&R2);
返回(0);
}
使用简单的%f。以下是示例:
printf("Input Voltage: ");
scanf("%f", &Vin);
printf("\nResistor 1: ");
scanf("%d", &R1);
printf("\nResistor 2: ");
scanf("%d", &R2);
使用简单的%f。以下是示例:
printf("Input Voltage: ");
scanf("%f", &Vin);
printf("\nResistor 1: ");
scanf("%d", &R1);
printf("\nResistor 2: ");
scanf("%d", &R2);
卸下
.3
部件:
scanf("%f", &Vin);
为输入配置小数位数是没有意义的:)因此,
scanf
不支持它。float
始终有8位十进制数字。启动编译器的警告级别。删除.3
部分:
scanf("%f", &Vin);
为输入配置小数位数是没有意义的:)因此,
scanf
不支持它。float
始终有8位十进制数字。启动编译器的警告级别。如果在编译器上打开-Wall
,则会收到警告:
警告:格式为[-Wformat]的未知转换类型字符“.”
警告:格式[-Wformat extra args]的参数太多
因此,只要从
scanf
中删除.3,如果在编译器上打开-Wall
,则会收到以下警告:
警告:格式为[-Wformat]的未知转换类型字符“.”
警告:格式[-Wformat extra args]的参数太多
因此,只要从臀部将.3从
scanf
中移除就行了-我的直觉告诉我,第一个scanf
被你的输入字符串“满足”,还有剩余的输入,第二个scanf
将所有内容更新到新行
尝试将中的第一个格式字符串替换为
“%f”
,然后查看它是否仍然存在。或者,当你看到愚蠢的行为时,打印出电压和R1的值。不管怎样,在阅读之后,最好还是担心电压输入的舍入/截断。从臀部开始拍摄-我的直觉告诉我,第一个scanf
被你的输入字符串“满足”,还有剩余的输入,第二个scanf
正在将所有内容更新
尝试将中的第一个格式字符串替换为
“%f”
,然后查看它是否仍然存在。或者,当你看到愚蠢的行为时,打印出电压和R1的值。无论如何,在读过之后,担心舍入/截断电压输入可能更好。几乎没有任何关于这个代码的C++。除了这里没有C++的标题之外,我没有看到C++。我简化了这个。删除C++标签,因为它与问题无关。C++代码是有效的。它只使用<代码> STDIO .H./C>而不是<代码> IoSturi这几乎没有任何关于C++的代码。除了这里没有任何一个头,我没有看到C++。我简化了这个。删除C++标签,因为它与问题无关。C++代码是有效的。它只是使用stdio.h
而不是iostream
…为什么?我需要3个小数位你只需要打印出来…为什么?我需要3个小数位你只需要在printf中