求助数组赋值问题!!!

ra3 2002-11-25 03:52:26
我的目的是把 num 拆开比如 num=2312; 把它们分开赋值到数组中
ps[10]={2,3,1,2,0,0,0,0,0,0}; //象这样。

可是 ps 输出的都是 0; tem 的值却正确啊。

//(用VC6编译)
/////////////////////////////////////////////////////////////////////
#include <iostream.h>

void fun(int num)
{
int ps[10]; //定义一个数组
int tem=0;

for(int j=0;j<sizeof(ps)/sizeof(*ps);j++) //把数组初始化为 0
ps[j]=0;
cout<<"initialize ok!\n";

for(int i=0;num>=10;i++)
{
tem=num/10;

for(;tem>=10;tem/=10);

cout<<"i"<<i<<"="<<tem<<" "; //输出 tem 的值
ps[i]=tem; // tem 赋值给 ps[i];

for(;tem<num;tem*=10);
tem/=10;
num-=tem;
if(num==0)
{
for(;tem>10;tem/=10,i++);
}
}
ps[i++]=num; //赋值最后一位数
cout<<"i"<<i-1<<"="<<num<<" end.\n"<<endl;

for(j=0;j<i;j++)
cout<<ps[i]<<"\n";
cout<<endl;
}

void main()
{
fun(2312);
}


运行结果:
initialize ok!
i0=2 i1=3 i2=1 i3=2 end.

0
0
0
0
...全文
33 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sea_lover 2002-11-25
  • 打赏
  • 举报
回复
你写的太复杂了!
以下是我定的,已经通了验正,你可以看看
#include <iostream.h>
void main()
{
int a[10];
int num;
int i=0;
cout << "Input the num :" << endl;
cin >> num;
if(!num)
cout << "Input is wrong!num=0" << endl;
else
{
while(i!=10)
{
if(!num)
a[i]=0;
else
{
a[i]=num%10;
num=num/10;
}
i++;
}
}
for(int j=0;j<10;j++)
cout << a[j] << " ";
cout << endl;
}
ashchan 2002-11-25
  • 打赏
  • 举报
回复
除了上述大侠说的,请再注意一点:
i 和 j 分别为两个 for 循环的内部局部变量,但你在这两个循环之外又用到了。在标准 C++ 里,这是一种错误的用法。
Louis819 2002-11-25
  • 打赏
  • 举报
回复
同意zxm954712
Raser 2002-11-25
  • 打赏
  • 举报
回复
检查程序总比写程序还麻烦。
ra3 2002-11-25
  • 打赏
  • 举报
回复
我晕,我说怎么了》》》》老是不对。
:(
sxbobo2002 2002-11-25
  • 打赏
  • 举报
回复
up
ietj 2002-11-25
  • 打赏
  • 举报
回复
同意zxm954712
zxm954712 2002-11-25
  • 打赏
  • 举报
回复
for(j=0;j<i;j++)
cout<<ps[i]<<"\n";
改为:
for(j=0;j<i;j++)
cout<<ps[j]<<"\n";
试试,呵呵
shclhs 2002-11-25
  • 打赏
  • 举报
回复
for(j=0;j<i;j++)
cout<<ps[i]<<"\n";

改为

for(j=0;j<i;j++)
cout<<ps[j]<<"\n";

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧