C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和。要求每行讲

C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和。要求每行讲解。。。

#include<stdio.h> /*包含头文件*/
void main()       /*主函数*/
{
  int n,sum=0,m=0;  /*定义整形函数,用n代替输入的数,sum为和,m代表位数*/
  printf("请输入一个整数:\n"); /*输入一个整数*/
  scanf("%d",&n);               /*输入一个整数*/
  while(n!=0)                   /*while 语句*/
  {
  sum+=n%10;                   /*将n的第一位赋予sum*/
  n/=10;/*把n的最右边一位去掉*/
  m++;  /*位数增加1*/
  }
  printf("整数的位数是%d\n",m);     /*输出*/
  printf("整数的各位数的和是%d\n",sum);/*输出*/
  }


PS :::不懂还可继续问。。。

追问

void?我们好像还没学。。。

追答

那是函数类型缺省的标志,也就是说该函数没有返回值。

追问

不写那个在最后加个return 0可以吗?

追答

可以的。
void 是缺省的标志。
如果你要是写return 0;
那么,主函数应该这样写:int main()或float main()......

追问

while(n!=0)是什么意思呢?

追答

当n不等于0的时候,做如下操作。

n/=10与n=n/10是等价的,这一条语句是将n的末位数去掉。然后赋予n

追问

哦!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-19
#include<stdio.h>
void main()
{
int a,s=0,n=0;//定义变量
printf("请输入一个整数:");//请求用户输入数据
scanf("%d",&a);//接收数据
while(a>0)//判断
{s=a%10+s;//取个位数相加
a=a/10;//将a缩小10倍
n++;}//统计位数
printf("位数为n=%4d,各位数之和为%4d\n",n,s);//输出
}
望采纳!追问

(´・ᆺ・`)怎么感觉好少。。。

追答

。。。。

第2个回答  2021-01-06
#include "stdio.h"
main() {
while (1)
{
int x = 0, n = 0;
printf("请输入一个正整数:");
scanf_s("%d", &x);
for (n = 0; x > 0; n++) {
x = x / 100;
}
printf("位数是%d\n", n);
}
}
相似回答