| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3894 人关注过本帖
标题:程序出了点问题,无论输入什么值,运行之后都不输出任何值。
只看楼主 加入收藏
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
结帖率:94.44%
收藏
已结贴  问题点数:20 回复次数:7 
程序出了点问题,无论输入什么值,运行之后都不输出任何值。
回文数(10分)
题目内容:
    输出所有不超过n(取n<256)的、其平方具有对称性质的正整数(也称为回文数)。
如:  1*1=1; 2*2=4;3*3=9;11*11=121;1,2,3,11是回文数。
输入格式:
    输入n(n<256)
输出格式:
    输出所有不超过n的回文数
输入样例:
3
输出样例:
1[回车]
2[回车]
程序代码:
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
int main()
{
    int n,i,s,j,l,a,b,c,d;
    int w[30]; 
    char st[30];
    
    scanf("%d",&n);
    
    for(i=1;i<=n;i++)
    {
    s=i*i;//i为要判断的数。
    sprintf(st,"%d",s);
    for(d=0;st[d]!=0;d++)
    w[d]=st[d]-'0';//将S的每一位依次赋值给w[0],w[1],w[2]……
    l=sizeof(w);//计算数组的长度
    a=0;b=l-1;c=1;
    while(a<=b)
    {
        if(w[a]!=w[b])//将数组对称位置数进行比较。
        c=c-1;//出现不相等,便减1
        a++;b--;
    }
    if(c>0)//如果比较之后发现对称对称位置的数值都相等,上面的c便不会减1。
    printf("%d\n",i);//是不是这里的问题? 
    }
    return 0;
}

为什么无论输入什么数C的值都是-59

[此贴子已经被作者于2016-11-10 10:56编辑过]

搜索更多相关主题的帖子: 正整数 color 
2016-11-09 23:10
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:7 
没看懂你是怎么判断回文数的。。。

φ(゜▽゜*)♪
2016-11-09 23:42
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:7 
#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);   
    for(int i=1;i<=n;i++)
    {
        int s,k=0;
        char st[20];
        char *pe=NULL,*ph=NULL;
        s=i*i;
        sprintf(st,"%d",s);        
        ph=st;
        pe=strlen(st)-1+st;
        while(pe>ph)
        {
            if(*ph!=*pe) break;
            ++ph;
            --pe;
        }
        if(pe==ph) printf("%d\n",i);        
    }
    return 0;
}
不想修改了,直接写一份作参考吧。
2016-11-09 23:54
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
回复 2楼 书生牛犊
我又添加了一些注释,麻烦您再给看一下。谢谢!
2016-11-10 07:12
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
回复 3楼 linlulu001
我看您用到了指针,可是我还没有学习指针,不过也十分感谢!
2016-11-10 07:47
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
程序代码:
#include <stdio.h>

bool ispadnum(int s)
{
    char dest[100]={'\0'};
    int slen=sprintf(dest,"%d",s)-1;
    for(int i=0;i<=slen;i++,slen--) if(dest[i]!=dest[slen]) return false;
    return true;
}

int main(void)
{
    for(int i=0;i<=256;i++)
        if(ispadnum(i*i)) printf("%5d*%5d=%5d %5d的平方是一个回文数\n",i,i,i*i,i);
    return 0;
}


不过我没按题目要求写  只是写了实现部分

[此贴子已经被作者于2016-11-10 09:53编辑过]


DO IT YOURSELF !
2016-11-10 09:47
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
谢谢各位
2016-11-10 13:17
o天道酬勤o
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2016-11-4
收藏
得分:0 
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
int main()
{

    int n,i,s,j,l,a,b,c,d;
    int w[30];
    char st[30];
   
    scanf("%d",&n);
   
    for(i=1;i<=n;i++)
{
    s=i*i;
    sprintf(st,"%d",s);
    for(d=0;st[d]!=0;++d)
    w[d]=st[d]-'0';

    a=0;b=d-1;c=1;
    while(a<=b)
    {
        if(w[a]!=w[b])
        c=c-1;
        a++;b--;
    }
    if(c>0)
    printf("%d\n",i);}
//    printf("%d",d);
//    printf("%dc\n%dw\n",c,w[1]);
/*for(int m=0;m<d;++m)
        printf("w[%d]=%d\t",m,w[m]);
        //printf("%d\n%d",l,d);*/
    return 0;
}
//}
把自己的改好了,但提交之后,显示才六分,还有两个用例未通过,实在无能为力了,
2016-11-10 21:21
快速回复:程序出了点问题,无论输入什么值,运行之后都不输出任何值。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029709 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved