c语言程序设计求各位数之和,C语言for回圈设计输入一个正整数,求它的各位数字之和及位数 例如234的各位数之和为9 位数是3...

使用C语言通过for循环设计程序,输入一个正整数,计算其各位数字之和及位数。例如输入234,输出位数为3,各位数之和为9。程序通过不断除以10取余数累加求和,通过数除以10不为0的次数确定位数。

C语言for回圈设计输入一个正整数,求它的各位数字之和及位数 例如234的各位数之和为9 位数是3以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

cecaec16112d04d10d08a84bc5e4d064.png

C语言for回圈设计输入一个正整数,求它的各位数字之和及位数 例如234的各位数之和为9 位数是3

同意二楼,但得改一下

#include

int main(int argc, char* argv[])

{

int a,b=0,c=0;

printf("请输入一个正整数\n");

scanf("%d",&a);

do

{ c++;

b+=a%10;

a/=10;

}while(a>0);

printf("您输入的是%d位数,各个数的和是%d\n",c,b);

return 0;

}

输入一个整数,求它的各位数之和及位数。例如234的各位数字之和是9,位数是3

具体程式就不写了,给你个思路,用除十求余,然后把各个余数相加,除了几次十就有几个位数。

例如234/10=23余4 23/10=2余3 2/10=0余2 结束 将余数相加4+3+2=9 除了3次位数为3

c语言程式题 输入一个整数,求它的位数及各位数字之和。例如,123的位数是3,各位数字之和是6.

如果不用log函式,并假设输入的数indata是非负整数,则可以如下:

int n, s;

n = 0;

s = 0;

while ( indata ) {

n++;

s += indata % 10;

indata /= 10;

}

位数在n中,和在s中。

输入一个整数,求它的位数以及各位数字之和。例如345的位数是3,各位数字之和是12。c语言怎么写

#include int main(){ int n,count,sum,tmp; printf("Input an integer:"); while(scanf("%d",&n)!=EOF && n>=0) { count=1; sum=0; while(n>0) { tmp=n%10; sum+=tmp; n = n/10; if(n>0) { count++; } } printf("count=%d,sum=%d\n",count,sum); printf("Input an integer:"); } return 0;}

输入一个整数,求它的各位数字之和及位数

这个应该是用程式设计的吧,给你c++程式码

#include

using std::cout;

using std::cin;

using std::endl;

int main()

{

int num=0; 需要输入的整数

int sum=0; 各位数字之和

int weishu=1; 输入整数的位数

cin>>num;

while(1)

{

sum+=num%10;

if(num/10==0)

break;

else

{

num=num/10;

weishu++;

}

} 每一次回圈,num的最后一位数加到sum中,num自身除以10。如果num/10==0,说明

回圈到最高位了,于是退出回圈。

cout<

return 0;

}

从健盘输入一个4位数整数,计算并输出各位数字之和。例如:5331各位之和是5+3+3+1.用C语言

#include

void main(void)

{

int a,i,sum=0;

int temp,b;

printf("请输入一个四位数:\n");

scanf("%d",&a);

for(i=0; i<4;i++)

{

temp = a%10;

a /=10;

sum+=temp;

}

printf("%d的各个数字之和为:%d",b,sum);

sum就是最后的结果

}

编写程式,输入一个整数,求它的各位数之和及位数,例如123的各位数是6,位数是3

int sum(int num, int &t)

{

int result = 0;

t = 0;

num = abs(num);

while(num)

{

result += num % 10;

num /= 10;

++t;

}

return result;

}

void main(void)

{

int t;

int r = sum(123, t);

r = 6, t = 3

}

有一个1994位数A是9的倍数,它的各位数字之和为a,a的各位数字之和为 b,b的各位数字之和为c,则c=?

有一个1994位数A是9的倍数,它的各位数字之和为a,a的各位数字之和为 b,b的各位数字之和为c,则c=9

C语言:输入一个正整数, 计算并显示出该数的各位数字之和.

程式码:

#include int sum(int n){ int s = 0; while(n>0){ s += n%10; n/=10; } return s;}int main(){ int n; printf("请输入一个正整数:"); scanf("%d", &n); printf("输入的数为: %d , 其各位之和为: %d\n", n, sum(n)); return 0;}

输出:

请输入一个正整数:12345输入的数为: 12345 , 其各位之和为: 15请按任意键继续. . .

设计程式求输入一个正整数的各位数字之和

/**另外的回答用log10()求有多少位的方法也不错.

你参考我的回答完善一下,应该说就算比较完美的了..

因为我的程式对于差错控制.边界检测都做了**/

/**

*@author:banxi1988

*@date:2010-12-6

*/

#include

#include

#include

int main(int argc, char **agrv){

int nums[32];

int count = 0;

double n = 0;

double divide = 1;/**这个数的型别至少比 long大一个数量级才正确*/

unsigned long midn;

int i = 0;

int state = 0;

int sum = 0;

printf("请输入一个正整数:\n");

printf("请注意您所输入的数不得大于 %10lu \n",ULONG_MAX);

state = scanf("%lf",&n);

if(state==0||state==EOF){

printf("您的输入有误.\n");

exit(0);

}

if(n<0){

printf("您的输入了一个负数.\n");

exit(0);

}

if(n > ULONG_MAX){

printf("您的输入了一个大于%lu 的数.\n",ULONG_MAX);

exit(0);

}

midn =( unsigned long) n;

do{

divide = divide *10;

nums[count]=midn%10;

midn = midn/10;

count++;

}while( n>=divide);

printf("结果从个位开始如下:\n");

for(i = 0; i < count;i++){

printf("%3d",nums[i]);

sum = sum+nums[i];

}

printf("各位数相加之和为:%3d\n",sum);

putchar('\n');

return 0;

}main:

/********************测试结果如下(测试环境GNU/LINUX ubuntu10.04 g4.4.3):

banxi1988@banxi1988-desk:~/zhidao$ ./DivideN

请输入一个正整数:

请注意您所输入的数不得大于 4294967295

-1

您的输入了一个负数.

banxi1988@banxi1988-desk:~/zhidao$ ./DivideN

请输入一个正整数:

请注意您所输入的数不得大于 4294967295

@191

您的输入有误.

banxi1988@banxi1988-desk:~/zhidao$ ./DivideN

请输入一个正整数:

请注意您所输入的数不得大于 4294967295

4294967295

结果从个位开始如下:

5 9 2 7 6 9 4 9 2 4各位数相加之和为: 57

banxi1988@banxi1988-desk:~/zhidao$ ./DivideN

请输入一个正整数:

请注意您所输入的数不得大于 4294967295

4294967296

您的输入了一个大于4294967295 的数.

banxi1988@banxi1988-desk:~/zhidao$ ./DivideN

请输入一个正整数:

请注意您所输入的数不得大于 4294967295

100

结果从个位开始如下:

0 0 1各位数相加之和为: 1

banxi1988@banxi1988-desk:~/zhidao$

*******************************/

分页:

1

23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值