帮我看看一段c++语言里面的do-while循环

来源:百度知道 编辑:UC知道 时间:2024/05/12 05:57:32
int n=0,s=0,u,v,i,j,r,head,tail;
char filename[20];
float A[20][20];(A数组存储各个连接点的权值)
do{
if(s==1)
cout<<"文件不存在,请重新输入。"<<endl;
cout<<"请输入图名:";
cin>>filename;
ifstream in(filename);
in>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
in>>A[i][j];(依次输入16个点的权值)
s=1;(此处s表示步骤,无实际意义)
while(n==0);
head=16;
tail=17;
do{
if(s==2)
cout<<"起点超出范围,请输入0到"<<n-1<<"之间的整数。"<<endl;
cout<<"请输入起点:";
cin>>r;(起点R)
s=2;} }(第二步)
在这里S有实际意义吗??这两个do-while我弄不清他的执行顺序啊 ,两次判断s的值有什么意义,尤其是while(n==0)是怎么回事? 对了,最后面少一个 while(r<0||r>n-1);

经分析,你这段程序语法都不对,可能你拷贝错了,我对你的程序做了一点调整,原本应该是这样的:
S表示执行步骤:共两步,第一步输入二维数组的大小和各元素的值,如果大小n等于0,即语句while(n==0), 就一直循环,直到输入一个非0值; 第二步输入数值起点r,原理与第一步一样, r的范围是 0<r<n.

int n=0,s=0,u,v,i,j,r,head,tail;
char filename[20];
float A[20][20];(A数组存储各个连接点的权值)
do{
if(s==1)
cout<<"文件不存在,请重新输入。"<<endl;
cout<<"请输入图名:";
cin>>filename;
ifstream in(filename);
in>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
in>>A[i][j];(依次输入16个点的权值)
s=1;(此处s表示步骤,无实际意义)
}while(n==0);(第一步)
head=16;
tail=17;
do{
if(s==2)
cout<<"起点超出范围,请输入0到"<<n-1<<"之间的整数。"<<endl;
cout<<"请输入起点:";
cin>>r;(起点R)
s=2;
} while(r<0||r>n-1);(第二步)

这谁编的程序?看不清这程序想干嘛while(n==0);如果n等于0的话它是死循环,
就算不等于0,那也是没用的语句,我猜可能抄错了吧,while(n==0);这句应该前面加个花括号。下面的dowhile少了while。
至于s是有意