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

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

1114

被折叠的 条评论
为什么被折叠?



