#include
using namespace std;
int x[100],c=0;
int main(){
for(int i=0;;i++){//第五行
cin>>x[i];
if(x[i]==0) break; //第七行
c=i;
}
for(int j=c;j>=0;j--)
cout< return 0;
}
和
#include
using namespace std;
int x[100],c=0;
int main(){
for(int i=0;x[i]!=0;i++){//第五行
cin>>x[i];
c=i;
}
for(int j=c;j>=0;j--)
cout<<x[j]<<" ";
return 0;
}
两处代码在第五行和第七行有一些不同,第二种编译器报错,这是为什么,个人认为没什么区别,求大神解答,有题目的照片
你确认是编译错误么?不谈运行结果,第二个程序可以编译。
但是两个程序并不等价
for(int i=0;;i++){//第五行
cin>>x[i];
if(x[i]==0) break; //第七行
c=i;
}
因为cin>>x[i];的存在,不能写成等价的for循环
可以写成
int i=0;
do
{
cin>>x[i];
}
while (x[i]!=0?1:(c=i,0));
这不是很简单的吗?使用数组啊
#include
using namespace std;
const int MAX=100;
int main()
{
int a[MAX],i=0,n;
while(cin>>n)
{
if(n==0)break;
else
{
a[i]=n;
i++;
}
}
for(int j=i-1;j>=0;j--)cout<<a[j]<<" ";
cout<<endl;
return 0;
}