一道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);
}
}
哪里错了。。 展开
#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);
}
}
哪里错了。。 展开
3个回答
展开全部
#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);
}
是否可以解决您的问题?
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);
}
是否可以解决您的问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是
t=n;
s=0;
while(t>0)
{
a=t%10;
t=t/10;
s=s+a*a*a;
}
t=n;
s=0;
while(t>0)
{
a=t%10;
t=t/10;
s=s+a*a*a;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询