如何修复C ++中非法使用浮点错误

时间:2014-09-12 12:21:46

标签: c++ floating-point turbo-c++

我在Turbo C ++中的C ++程序中遇到类型不匹配和非法使用浮点错误。 在这里,我试图说明GO BACK和ARQ协议,但我不知道为什么ws变量涉及错误。

#include<iostream.h>
#include<conio.h>
#include<math.h>

int ws,sf,ef,m;       //Type mismatch error
int i,ack[50];
char ch;

void send(int sf){
for(i=sf;i<=(ws-1);i++){
    cout<<"\n\n\nFrame "<<i<<" got acknowledged?(y/n)";
    cin>>ch;
    if(ch=='y'){
        ack[i]=1;
        cout<<"Acknowledgement recieved for frame "<<i;
        }
    if(ch=='n'){
        cout<<"Acknowledgement not recieved for frame "<<i;
        ack[i]=0;
        }
    }
    }
int check()
{
for(int k=0;k<=(ws-1);k++)
{
if(ack[k]==0)
return 1;
}
return 0;
}

int main()
{
int m;
cout<<"Enter the size of data";
cin>>m;
ws=pow(2,m)-1;         //illegal floating point error
sf=0;
ef=sf+ws-1;
send(0);
while(check())
{
for(i=0;i<ws-1;i++)
{
    if(ack[i]==0)
    {
    send(i);
    }
}
}
cout<<"Packet recieved";

getch();
return 0;
}

我想将ws用作其他函数中使用的全局变量。

1 个答案:

答案 0 :(得分:3)

你有一个名字冲突:ws已在iostream.h中定义