C语言 编写一个程序,输入一个正整数,求出它是几位数。
while前加一句if(x==0) i=1;
另外建议用字符串做
因为可能有很多位 例如1000位
#include
void main(){ int a,sum=0;
printf("请输入一个大于0的正整数~~");
scanf("%d",&a);
while(a!=0) //循环结束的条件是 a等于 0
{
sum+=a%10;// a%10 的作用是取a这个数的个位 比如 108除以10的余数是不是8
a/=10;//执行上一句代码之后还要把a的值 除以10吧 比如 我输入的是108 我取完8之后还要取这个数的十位 108 除以10 就等于10了 我定义的是 int型 没有小数的
} printf("%d",sum);}
对了 你输入数字测试的时候可别输入太大的数字 太大的话 溢出 的话 得到的结果就不对了。
求一个正整数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
",num);
return 0;
}
/*
输出:
123456
6
*/
扩展资料:
正整数,即大于0的整数,如,1,2,3…
0既不是正整数,也不是负整数(0是整数)。
负整数,即小于0的整数,如,-1,-2,-3…
知道正整数的一种分类办法是按照其约数或积因子的多少来划分的,比如仅仅有两个的(当然我们总是多余地强调这两个是1和其本身),就称之为质数或素数,而多于两个的就称之为合数。
参考资料来源:百度百科-正整数
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。
2、然后定义一个变量【result】,如下图所示。
3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。
4、接下来就可以调用输出,如下图所示。
5、最后点击运行,如下图所示,就可以运行测试。
#include <stdio.h>
int weishu(long n,int a[])
{int i=0;
while(n)
{
a[i++]=n%10;
n/=10;
}
return i;
}
void main (void)
{
long n;
int k,i,j,t,a[20];
scanf("%ld",&n);
printf("原数:%ld
",n);
k=weishu(n,a);
printf("位数:%d
",k);
for(i=0;i<k-1;i++)
for(j=0;j<k-1-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("从小到大:");
for(i=0;i<k;i++)
printf("%d",a[i]);
printf("
从大到小:");
for(i=k-1;i>=0;i--)
printf("%d",a[i]);
printf("
");
getch();
}
编写程序,输入任意一个正整数,求出它是几位数。
自定义一个不限定长度的字符串输入函数,在主函数中调用输入数字字符串后求字符串各元素代表的十进制数字之和。举例代码如下:
可潘乳糖:[答案] #include int main(){int a,b,i,t;int k = 0,sum = 0;scanf("%d",&a); //输入整数at = 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,就有...
安图县13136139132: C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和. - ?
可潘乳糖: #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,就有一位k++; ...
安图县13136139132: 如何用C语言编写一个程序,输入任意输入一个正整数,反序输出每一位 - ?
可潘乳糖: #include <stdio.h> int main() {int n;scanf("%d", &n);do{printf("%d", n % 10);}while(n /= 10);printf("\n");return 0; }
安图县13136139132: 编写一个C程序,读入一个正整数n(n不大于10000),输出所有连续正整数的和等于n的情况注意对于给定的n不一定有答案,如4,6就无解. 排除只有一个数的... - ?
可潘乳糖:[答案] #include main() { int num; printf("请输入小于10000的数字\n"); scanf("%d",&num); if(num>10000) printf("你输入有误\n"); else { if(num%3!=0) printf("无解\n"); else printf("数字为%d,%d,%d\n",num/3-1,num/3,num/3+1); } }
安图县13136139132: 如何用C语言编写程序输入一个正整数n,编程序输出从2到n间的所有完数. - ?
可潘乳糖: C语言实现如下:#include<stdio.h> void main() { int i,j,k,n; scanf("%d",&n); //输入一个正整数n for(i=2;i<=n;i++) { k=0; for(j=1;j<=i-1;j++) if(i%j==0) k+=j; if(k==i) printf("%d\n",i); //判断i的所有真因子之和是否等于i,是则输出i. } }注意:建议n...
安图县13136139132: C语言 编写程序,从键盘输入一个正数,计算该数的平方根. - ?
可潘乳糖: # include <stdio.h> #include<math.h> int main() {double x;scanf("%lf",&x);printf("%lf\n",sqrt(x));return 0; }
安图县13136139132: C语言 编写一个程序,输入一个正整数,求出它是几位数. - ?
可潘乳糖: main() {int a; int i,N; scanf("%d",&a); for(i=0;a;i++) a=a/10; N=i; printf("N=%d\n",N); }
安图县13136139132: c语言编写程序,输入一个正整数n,计算1+(1/3)+(1/5)+...的前n项之和.求过程 - ?
可潘乳糖: #include<stdio.h> int main(void) { int n; float s=0.0; printf("请输入需要计算数列前多少项:"); while(!scanf("%d",&n)){ printf("输入错误!请重新输入:"); fflush(stdin); } for(int i=0;i<n;i++){ s+=1.0/(2*i+1); } printf("数列前 %d 项之和为:%g\n",n,s); return 0; }
安图县13136139132: 用C语言编写程序从键盘输入一个正整数数n,输出n! - ?
可潘乳糖: 晚上好楼主,我已经编译通过请看图 谢谢采纳!#include <stdio.h> int Cacu(int n) { int i,sum=1; for(i=1;i<=n;i++) sum=sum*i; return sum; }void main() { int n,result; printf("please input a number for you to operate\n"); scanf("%d",&n); result=Cacu(n); printf("the result you want to get is:\n"); printf("%d\n",result); }图:
安图县13136139132: 用C语言编写一个程序,输入任意一个正整数n,输出P({1,2,...,n})的所有元素. - ?
可潘乳糖: #include<stdio.h>#include<iostream.h> void main() { int a=1,b,c,i; cout<<"please input max b"<<endl; cin>>b; c=a; for(;c<b+1;c++) {i=1; for(i=2;i<=c;i++) { if(c%i==0) break; }if(i==c) cout<<c<<'\0'; } }