高手进来帮忙调试下程序C语言.

来源:百度知道 编辑:UC知道 时间:2024/05/04 08:13:01
#include "math.h"
#include "stdio.h"
#include "conio.h"
main()
{
int i=1;
double f[100];
double F;/*合力*/
double a[99];/*夹角*/

int n;
printf("Please input how many F there are\n");
scanf("%d",&n);
do //**这里为什么有时出错:少输入一个f,有时又不会?**//
{
printf("Please input F\n");
scanf("%f",&f[i]);
if(i != n)
{
printf("please input a\n");
scanf("%f",&a[i]) ;
}
i++ ;
}
while(i<=n); /*输入所有力与角度*/
i=1;
do
{
F=sqrt(f[i]*f[i]+f[i+1]*f[i+1]+2*f[i]*f[i+1]*cos(a[i])); /*计算合力的公式*/
i++;
f[i]=F;
}
while(i<n);
printf("The F(sum)=%lf",F);
getch();
//**为什么算出来的F总为0?
}
解决一下//##...##//里的问题就好了,谢谢!!!!!
//##...##//是为了提问而加上去的,代码里没有
还有一问题:我在getch();前面加一个c=getchar()(c前

scanf("%lf",&f[i]); 把scanf里改成"%lf",因为你用的是double;

//**这里为什么有时出错:少输入一个f,有时又不会?**//
这个问题没发现?挺正常的

------------------------------------------
搜了搜
getchar()

getchar()是stdio.h中的库函数,等待用户输入直到按下Enter键(前提是stdin缓冲区无任何数据,包括回车符)。如果stdin有数据,则直接读取最前面的一个字符(读取完函数就结束,不等什么回车)。

getchar函数有回显功能,即读入一个字符,马上在屏幕上显示。

假设,当程序执行到getchar,我们输入“abcde”,则屏幕上会显示“abcde”,最后将第一个字符(即a)返回。

回显的定义:

如果输入一个a,屏幕马上显示一个a

要用getch(),getche()必须引入头文件conio.h

当然getch(),getche()没有用到缓冲区。getch()是一个输入命令,作用是从键盘接收一个字符,而且并不把这个字符显示出来,(等待用户输入,当用户按任意键时,函数调用结束,接着执行下面的语句)。

getche()和getch()很相似,不同之处就在于getch()无返回显示,getche()有返回显示

即 getchar();getche() 有返回显示

getch() 无返回显示

用VC++6.0是正常的
用Turbo C 或者 Win TC会出错 ,因为默认情况下它们都是不支持 // 的
若是用Win TC 可在运行->编译配置里选中 "//样式注释简易支持"

对于浮点数的运算,由于没有统一的规范,每个编译器生产厂家的实验方法是不同的,所以结果也会不同。