一道C语言题

(1)如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗... (1) 如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。

#include<stdio.h>
void main()
{
int n,a,t,s=0;
for(n=1;n<=1000;n++)
{
t=n;
while(t>0)
{
a=t%10;
t=t/10;
s=s+a*a*a;
}
if(s==n)
printf("%4d",n);
}
}
哪里错了。。
展开
 我来答
Linyar
2014-06-07 · TA获得超过757个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:242万
展开全部
#include<stdio.h>
void main()
{
    int n,a,t,s=0;
    for(n=1;n<=1000;n++)
    {
        t=n;
        s=0;        //应该加入一行s复位。
        while(t>0)
        {
            a=t%10;
            t=t/10;
            s=s+a*a*a;
        }
        if(s==n)
            printf("%4d",n);
    }
}
希望能帮助到你,你的好评是我前进的动力!谢谢!
手机用户14703
2014-06-07 · 超过70用户采纳过TA的回答
知道答主
回答量:181
采纳率:100%
帮助的人:67.5万
展开全部
#include<iostream>
using namespace std;
fun(char *w,int n )
{
char t,*s1,*s2; //s1,s2相当于字符数组的首地址比如"a[]"中的a
s1=w;s2=w+n-1;//将字符串常量"1234567"的首地址赋给s1,将字符串中"7"的地址赋给s2
while(s1<s2) //一开始s1中的地址小于s2中的地址 s1 < s2
{ //第一次执行while时:{t ='1';*s1 = '7'; *s2 = '1'},p指向字符串"1,7,3,4,5,1,7"
t=*s1++; // s1 <s2
*s1=*s2--;//第二次执行while时:{t ='7';*s1 = '1'; *s2 = '7'},p指向字符串"1,7,1,4,7,1,7"
*s2=t; // s1=s2=w+3
} //第三次执行while时:{t ='1';*s1 = '7';*s2 = '1'},p指向字符串"1,7,1,1,7,1,7"
}
main()
{
char p[] = "1234567";
//p="1234567";注意此处有一个错误,字符指针p指向一个常量字符后面在fun函数中就不能对其进行改变,不然会出错
//应该改为p[]="1234567",数组内容才可以改变,最后输出内容及执行次数已经分析,希望能帮到你!
fun(p,strlen(p));
puts(p);

}

是否可以解决您的问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whacjq
2014-06-07 · TA获得超过576个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:181万
展开全部
应该是
t=n;
s=0;
while(t>0)
{
a=t%10;
t=t/10;
s=s+a*a*a;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式