VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 665|回复: 5

[求助] 求问为什么明明执行了数组a的赋值,可是最后输出是还是输出0

[复制链接]
49_avatar_middle
在线会员 发表于 2016-5-18 22:17:55 | 显示全部楼层 |阅读模式
#include<iostream>
using namespace std;
int main()
{
        int n,k;
        cin>>n;
        while(n!=0)
        {
                int a[17]={0},x=0,i=0;//数组a用来存放满足回文的数制
                for(i=2;i<=16;i++)
                {
                        int b[16]={0},j=0;//数组b用来存放数值转换后的值
                        int m=n;
                        while(m!=0)
                        {
                                b[j]=m%i;
                                j++;
                                m=m/i;
                        }
                        bool flag=true;
                        for(k=0;k<j/2;k++)
                                if(b[k]!=b[j-1-k])
                                {
                                        flag=false;
                                        break;
                                }
                        if(flag==true)
                        {
                                a[x]=i;
                                x++;
                        }
                }

                if(x==0)
                        cout<<"Number "<<n<<" is not a palindrom"<<endl;
                else
                {
                        cout<<"Number "<<n<<" is palindrom in basis ";
                        for(k=0;k<x-1;k++)
                                cout<<a[x]<<" ";
                        cout<<a[x]<<endl;
                }
                cin>>n;
        }
        return 0;
}



C++新手,求帮忙。求问为什么明明执行了数组a的赋值,可是最后输出是还是输出0





上一篇:动态创建的控件无法显示在列表上
下一篇:【Visual Studio 个性化设置】
51_avatar_middle
online_admins 发表于 2016-5-19 09:00:53 | 显示全部楼层
你这个代码有问题啊:
  1. int b[16] = { 0 }, j = 0;//数组b用来存放数值转换后的值
  2. int m = n;
  3. while (m != 0)
  4. {
  5.         b[j] = m%i;
  6.         j++;
  7.         m = m / i;
  8. }
复制代码


循环的时候 j 已经超过 15 了,明显越界了,b[16] 哦
49_avatar_middle
ico_lz  楼主| 发表于 2016-5-20 19:02:38 | 显示全部楼层
Syc 发表于 2016-5-19 09:00
你这个代码有问题啊:

但是最终输出结果还是错误的,比如输入17,应输出2 4 16,但是程序却输出0 0 0
49_avatar_middle
ico_lz  楼主| 发表于 2016-5-20 19:03:03 | 显示全部楼层
Syc 发表于 2016-5-19 09:00
你这个代码有问题啊:

但是最终输出结果还是错误的,比如输入17,应输出2 4 16,但是程序却输出0 0 0
49_avatar_middle
ico_lz  楼主| 发表于 2016-5-20 19:07:14 | 显示全部楼层
luo4869 发表于 2016-5-20 19:03
但是最终输出结果还是错误的,比如输入17,应输出2 4 16,但是程序却输出0 0 0

哦,我找出错误了,是for(k=0;k<x-1;k++)
                                cout<<a[k]<<" ";
                        cout<<a[k]<<endl;
写错了求问为什么明明执行了数组a的赋值,可是最后输出是还是输出0
80_avatar_middle
在线会员 发表于 2016-5-20 22:04:14 | 显示全部楼层
学习求问为什么明明执行了数组a的赋值,可是最后输出是还是输出0求问为什么明明执行了数组a的赋值,可是最后输出是还是输出0
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-26 23:37

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表