我在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用作其他函数中使用的全局变量。
答案 0 :(得分:3)
你有一个名字冲突:ws已在iostream.h中定义