如何用C语言编写一个计算正整数位数的程序?

   更新日期:2024.05.17

此程序可通过以下步骤实现:

    1、输入一个正整数

    2、将整数转换为字符串(使用sprintf函数)

    3、求字符串的长度(strlen函数),即正整数的位数

代码如下:

#include <stdio.h>
#include <string.h>

int main()
{
long num;
char str[20];

scanf("%ld", &num);
sprintf(str, "%ld", num);
printf("%d", strlen(str));

return 0;
}

这样写主要是考虑到整数的前面可能有0,比如:00090,是两位数。如果确认没有前置0的话,可以简化过程,省去转换为字符串的过程,直接用gets得到字符串。



  • 17314313326 :用C语言编程计算两个超长正整数(长度小于100)的加法
    卞炭郊909 :答:输入至多100行的文本,每行是一个至多100位的十进制无符号大整数,最后的输入行为零。要求计算出这些大整数的和,并以十进制方式显示。示例输入:123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0 示例输出:370370367037037036703703703670 include <cstdio> include <cstring> ...
  • 17314313326 :C语言 编写一个程序,输入一个正整数,求出它是几位数。
    卞炭郊909 :答:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。include <stdio.h> int main(){ int n,num=0;scanf("%d",&n);while(n){ num++;n/=10;} printf("%d\n",num)...
  • 17314313326 :用C语言编程,输入一个正整数,计算并显示该数的各位数字之和。_百度知...
    卞炭郊909 :答:以下是一份C语言程序,能够计算并显示一个正整数的各位数字之和:```c include <stdio.h> int main() { int num, sum = 0;printf("Please input a positive integer:");scanf("%d", &num);// 循环提取num的个位数字并求和 while (num > 0) { sum += num % 10;num /= 10;} //...
  • 17314313326 :C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。_百度知...
    卞炭郊909 :答:include "stdio.h"include "math.h"int jiecheng(int i){ int k = 1;while(i>=1){ k*=i;i--;} return k;} void main(){ printf("请输入一个x和n\n");double x,sum=0,elem=0;int sign = 1;scanf("%lf,%d",&x,&n);int i = 1;for (i=0;i<2*n;i++){ int k ...
  • 17314313326 :C语言:输入一个正整数, 计算并显示出该数的各位数字之和.
    卞炭郊909 :答:代码:include <stdio.h>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;} 输出:请输入一个正整数...
  • 17314313326 :c语言输入一个不多于5位正整数要求:求出它是几位数;分别打印出每一位...
    卞炭郊909 :答:include <stdio.h> int main(void){ long int x;int y,i=1;printf("请输入一个不超过100000的整数:"); // <---请把,x去掉 scanf("%ld",&x);if (x>99999||x<1) printf("你所输入的数据超出计算范围\n");else { while (x!=0) // <---请把 do 去掉 { y=x%10;printf("...
  • 17314313326 :用C语言编写:“输入一个正整数,统计该整数的位数并计算其各个数位上...
    卞炭郊909 :答:include <stdio.h> int main(){ int num = 0;int s = 0;int i = 0;scanf("%d", &num);while(num){ s += num%10;num = num/10;i++;} printf("数字个数为%d,各个数相加为%d\n",i, s );return 0;}
  • 17314313326 :如何用C语言编写“计算n”的程序?
    卞炭郊909 :答:include<iostream> using namespace std;int main(){ int n;cout<<"请输入一个正整数:";cin>>n;while(n<=0){ cout<<"输入无效,请重新输入:";cin>>n;} int result=1;for(int i=1;i<=n;i++)result *= i;cout<<"n!="<<result<<endl;return 0;} ...
  • 17314313326 :用c语言编程输入一个任意的正整数,这个正整数要求小于20。要求计算出...
    卞炭郊909 :答:void main(){ int i,j,num=0,n,flg;printf("输入任意小于20的正整数:\n >>");scanf("%d",&i);while(i>=20||i<=0){ printf("Error!\n请重新输入:\n >>");scanf("%d",&i);} n=i*100;printf("\n%d至%d之间的素数有:\n",i,n);for(;i<n;i++){ if(i==1)cont...
  • 17314313326 :C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个...
    卞炭郊909 :答:include <stdio.h> int main(){ int a, b, i, t;int k = 0, sum = 0;scanf("%d", &a); //输入整数a t = a;if(a / 10 == 0){ k = 1;sum = a;printf("%d\n", k);printf("%d\n", sum);} else { while(a / 10 != 0){ a = a / 10; //每除10,就有...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网