C程序问题!求高手解答! 输入m,n输出所有1到m之间所有数,满足条件:m除以n得到的余数等于,该数各位数
解决时间 2021-01-28 00:02
- 提问者网友:心如荒岛囚我终老
- 2021-01-27 16:00
输入m,n输出所有1到m之间所有数,满足条件:m除以n得到的余数等于,该数各位数的平方和。
我编的sum子函数是求 一个数 各位数的平方和 例如sum(1030)=10;不知有没有错
求高手解答啊
#include
#include
main()
{
int m,n,j,mod;
printf("Please input two integers:");
scanf("%d %d",&m,&n);
mod=m/n;
while(j<=m)
{
j=1;
if(sum(j)==mod)
printf("%10d",sum(j));
j++;}
system("pause");
}
sum (j)
{ int u,a,b,c,k,num,total,f[5];
while(a!=0)
{
a=a/10;
num=num+1;
}
c=j;
for(u=1;u<=num;u++)
{
b=c%10;
c=c/10;
f[u]=b;
}
for(k=1;k<=num;k++)
total=(f[k])*(f[k])+total;
return total;
}
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-01-27 16:14
代码里面失误的地方蛮多的,需要再好好看看。
我贴出我修改过的代码,你那个求sum的算法我没看懂,另外写了个新的,测试结果(在Linux下)如下:
wenshan@wenshan:~/hacking$ ./a.out
Please input two integers:986 9
12
21
102
120
201
210
修正过的代码如下:
#include
#include
int main()
{
int m,n,j,mod;
printf("Please input two integers:");
scanf("%d %d",&m,&n);
mod = m%n;
j = 1;
while(j<=m)
{
if(sum(j)==mod)
printf("%10d\n", j);
j++;
}
return 0;
}
int sum (j)
{
int digit;
int sum = 0;
while (j != 0) {
digit = j%10;
sum = sum + digit*digit ;
j = j/10;
}
return sum;
}
全部回答
- 1楼网友:痴妹与他
- 2021-01-27 17:38
感觉你写的好乱啊,函数调用至少要申明吧。。运行了下,还是不能运行,你写的程序估计有问题吧。
再看看别人怎么说的。
我要举报
大家都在看
推荐资讯