本人新学C语言,但是有一个问题不会请大家解答。
题目:要求将各位数求和,例如:1234求和就是10,如此类推。
以下是我所编的程序:
#include <stdio.h>
void main()
{
int f(int x);
int a,b;
scanf("%d",&a);
b=f(a);
printf("%d",b);
}
int f(int x)
{
int c,sum;
if (x<10)
sum=x;
else
for (x;(x/10)<1;x=x/10)
{
c=x%10;
sum=0;
x=x/10;
sum=sum+c;
}
return(sum);
}
本人清楚在我的循环那里出现了错误,但是就是不知道应该怎么改正才对,请各路高手指教。。
一些小问题. 帮你改正了. 你看看加粗的部分
#include <stdio.h>
void main()
{
int f(int x);
int a,b;
scanf("%d",&a);
b=f(a);
printf("%d",b);
}
int f( int x )
{
int c,sum = 0;
if ( x < 10 )
sum = x;
else
{
for( x; x; x=x/10 ) //条件错了.
{
c=x%10;
//sum=0; //每次循环都将sum置0了.
//x=x/10; //for的步长就是x/10
sum=sum+c;
}
}
return(sum);
}
#include <stdio.h>
void main()
{
int f(int x);
int a,b;
scanf("%d",&a);
b=f(a);
printf("%d",b);
}
int f(int x)
{
int c,sum=0;
if (x<10)
sum=x;
else
//for (x;(x/10)>0;x=x/10)
{
c=x%10;
//sum=0;
//x=x/10;
sum=c+f(x/10);
}
return(sum);
}
你那个FOR语句问题很严重.下面的赋值也一塌糊涂.而且函数完全不是你想要实现的功能.
其实你想得太复杂了,以下是我写的,给你参考一下
#include<stdio.h>
int f(int x);
int main()
{
int a,b;
scanf("%d",&a);
printf("%d\n",fun(a));
return 0;
}
int f(int x)
{
int res=0;
while(x){
res+=x%10;
x=x/10;
}
return res;
}