wangyimin01 2018-01-09 12:01 采纳率: 100%
浏览 1481
已采纳

一道C++改错题,自己是个小渣渣改了半天不知道怎么还是运行不出来。。。

【程序功能】输出一个数的5进制表示方式,方法,采用除5求余法,将余数放入数组中,最低位存放于数组的最右边。例如,数175,存放在有20个整形元素组成的数组的形式是,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0,输出时忽略前面的0,输出1200.
【调试要求】在给定的程序中,可以修改或适当增加少数几个语句,但不允许删除语句。
【注意事项】 将源程序以“学号_1.cpp”为文件名存入Z盘自己的目录中。
【运行结果】 it is a reverse string!
评分依据:共6个错50分。其中2个是5分,其余为10分。

 #include <iostream.h>
void f(int p,int m)     
{
p=p+20;
    While(m)
{
*p++=m%5;
m/=5;
}
}

int main()
{
int d[20],x;
cout<<”请输入一个整型值”;
cin>>x;
f(d[20],x);
    int *p;
p=d;
int i=0;
while(*p==0)
p++;
while(i<20)
cout<<*p++;
}
  • 写回答

13条回答 默认 最新

  • threenewbee 2018-01-09 12:29
    关注
     #include <stdlib.h>
    #include <string.h>
    #include <iostream.h>
    void f(int * p,int m)     
    {
    p=p+19;
    while (m)
    {
    *(p--)=m%5;
    m/=5;
    }
    }
    
    int main()
    {
    int d[20],x;
    memset(d,0,20*sizeof(int));
    cout<<"please input";
    cin>>x;
    f(d,x);
    int *p;
    p=d;
    int i=0;
    while(*p==0)
    {p++;
    i++;}
    while(i<20)
    {cout<<*p++;i++;}
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?