C 如何修复我的代码?我想问题是第一次扫描?
我正试图创建一个程序来计算一个值Vt,给定Vo、a和tm的值。当我运行代码时,程序会问第一个问题,然后在我给它一个值后,它会加快代码的速度,而不让我给其他两个变量的值。我用C语言编程。代码如下:C 如何修复我的代码?我想问题是第一次扫描?,c,C,我正试图创建一个程序来计算一个值Vt,给定Vo、a和tm的值。当我运行代码时,程序会问第一个问题,然后在我给它一个值后,它会加快代码的速度,而不让我给其他两个变量的值。我用C语言编程。代码如下: #include <stdio.h> main () { float Vt; float Vo; float a; float tm; printf(" At what time in flight do you wish to know the
#include <stdio.h>
main () {
float Vt;
float Vo;
float a;
float tm;
printf(" At what time in flight do you wish to know the velocity? To the
nearest hundredth. :");
scanf(" %.2f", &tm);
printf (" What is the angle of trajectory? :");
scanf (" %.2f", &a);
printf (" What is the initial velocity? :");
scanf (" %.2f", &Vo);
float sina = sin (a);
float cosa = cos (a);
float tana = tan (a);
Vt = sqrt((pow((Vo * cosa), 2.0)) + (pow((Vo * sina - (9.8 *tm)), 2.0)));
printf("\n\n\n\n %.3f", Vt);
return 0;
}
#包括
主要(){
浮动;
浮动Vo;
浮动a;
浮动tm;
printf(“您希望在飞行中的什么时候知道速度?到
最接近百分之一。:);
scanf(“%.2f”和&tm);
printf(“轨迹的角度是多少?”:”;
scanf(“%.2f”和&a);
printf(“初始速度是多少?:”);
scanf(“%.2f”和&Vo);
浮点数=sin(a);
浮动cosa=cos(a);
浮动tana=tan(a);
Vt=sqrt((pow((Vo*cosa),2.0))+(pow((Vo*sina-(9.8*tm)),2.0));
printf(“\n\n\n%.3f”,Vt);
返回0;
}
您的scanf格式字符串无效。将它们更改为“%f”
。也就是说,改变
scanf(“%.2f”和&tm)代码>到
scanf(“%f”和&tm)代码>
scanf(“%.2f”和&a)代码>到
scanf(“%f”和&a)代码>
scanf(“%.2f”和&Vo)代码>到
scanf(“%f”和&Vo)代码>
如果您打算最多扫描N个字符,则必须使用
%Nf”
格式字符串(例如%2f”
或%3f”
),其中N是大于0的整数。主字符串的可能副本非常旧,您应该升级!尝试%f
而不是%.2f
scanf
对交互式UI不起作用。我只需要使用fgets
(或类似的东西)将数据放入一个字符串中,并使用sscanf
(或只使用atof
)分别解析每一行。在printf的末尾添加\n
可以解决这个问题