当前位置: 代码迷 >> C语言 >> [求助]不增加程序的行数,下面程序怎么改才正确?
  详细解决方案

[求助]不增加程序的行数,下面程序怎么改才正确?

热度:284   发布时间:2006-11-27 09:26:47.0
[求助]不增加程序的行数,下面程序怎么改才正确?
#include<iostream.h>
void main()
{
int i,a[10],*p=a;
for(i=0;i<10;i++)
cin>>p++;
cout<<endl;
for(i=0;i<10;i++,p++)
cout<<*p;
}

----------------解决方案--------------------------------------------------------
#include<iostream.h>
void main()
{
int i,a[10],*p=a;
for(i=0;i<10;i++)
cin>>p++;
cout<<endl;
for(i=0,p-=10;i<10;i++,p++)
cout<<*p;
}

[此贴子已经被作者于2006-11-28 8:26:07编辑过]


----------------解决方案--------------------------------------------------------

真搞不懂
你是做什么!!!!!!!
谁知道顺便也给我看看!!!!!!!!!!


----------------解决方案--------------------------------------------------------
#include<iostream.h>
void main()
{
int i,a[10],*p=a;
for(i=0;i<10;i++)
cin>>p++;
cout<<endl;
for(i=0,p=a;i<10;i++,p++)
cout<<*p;
}
上面的改法可以吗?
----------------解决方案--------------------------------------------------------
以下是引用damofei在2006-11-28 9:10:33的发言:
#include<iostream.h>
void main()
{
int i,a[10],*p=a;
for(i=0;i<10;i++)
cin>>p++;
cout<<endl;
for(i=0,p=a;i<10;i++,p++)
cout<<*p;
}
上面的改法可以吗?

可以.把p指向数组a的首址是一定要做的
当然也可以这样
for(i=0,p=a;i<10;i++)
cout<<*(p+i);
----------------解决方案--------------------------------------------------------

可是编译通不过呀,我用的是vc++6.0,怎么回事?


----------------解决方案--------------------------------------------------------
我不会C++,路过.
----------------解决方案--------------------------------------------------------
#include<iostream.h>
void main()
{
int i,a[10],*p=a;
for(i=0;i<10;i++)
cin>>*p++; //将P++改成*p++就可以了.P是地址

cout<<endl;
for(i=0,p=a;i<10;i++,p++)
cout<<*p;
}

----------------解决方案--------------------------------------------------------
恩,我知道了,这是和c的不同!谢了!
----------------解决方案--------------------------------------------------------
  相关解决方案