C语言中,求一个数字的各位数用“a=num%10”。可数字一大就不行了;还有其它更好的方法吗?

作者&投稿:双乳 (若有异议请与网页底部的电邮联系)
C语言,为什么a%10%10这种求十位数上的数的求法是错误的?~

求十位上的数的正确方式是a/10%10。a%10是个位上的数。再%10还是个位上的数。

在C语言中/=是复合赋值运算符的一种,是两种运算(除、赋值)的结合,x/=10等同于x=x/10。
先进行左侧表达式除以右侧表达式的除法运算。然后进行把结果赋值给左侧表达式的赋值运算。这种运算符主要是为了简化表达式写法,当某个表达式要进行除法操作并且把除法结果赋值给自己的时候,可以用这种写法。
类似的其他运算符还有:
+=、 -=、 *=、 %=、 &=、 |=、 ^=、 >=其中等号左边的运算符分别是:加、减、乘、取余、按位与、按位或、按位异或、左移、右移。

扩展资料:
运算符号,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。因算术比特右移较适于处理带整数,所以几乎所有的编译器都是算术比特右移。
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
参考资料来源:百度百科-C语言

数字一大为什么就不行了,不应该还行的啊 追问: 比如我输入99999999999就显示1了;是不是超范围了? 回答: 你定义的nu m值 是什么类型的,int是32位,double是64位,用计算器算一下是不是超过范围了即可 追问: #include<stdio.h> main() { double a,c; scanf("%lf",&a); c=a%10; printf("%lf",c); } 这样哪里出问题了? 回答: #include<stdio.h> int main() { long long a,c; scanf("%lld",&a); c = (a % 10); printf("%lld",c); } 追问: 又一个错误,不知道是不是 环境问题 。。。 回答: 你用的什么 编译器 ?vc?还是gcc?


c语言里,输入一个字符,输出一个数字该怎么写?
1、首先需要知道字符本来就是用ascII码储存的,所以需要函数转换。打开VS。2、输入一段转换代码。3、红色方框内,将变量定义为char类型,然后输出的时候输出为%d(ASII码)。4、写好代码后按下F7或者依次选择构建-组建,等待结果如果所示即可。如果出现1 error,表示代码出错,具体错误可根据提示排除。5、...

用C语言编程,输入一个正整数,计算并显示该数的各位数字之和。
以下是一份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;} \/\/...

C语言 编写一个程序,输入一个正整数,求出它是几位数。
求一个正整数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)...

c语言编程从键盘输入一个任意正整数,求其各位数字立方和。
include<stdio.h> intmain(){ inta;scanf("%d",&a);intb[10]={0};intk=0;while(a){ b[k]=a%10;a=a\/10;k++;} printf("%d\\n",k);inti=0,sum=0;while(i<=k){ sum=sum+b[i]*b[i]*b[i];i++;} printf("%d\\n",sum);} ...

如何用C语言求1到100中各位数字之和等于9的数的平均值?
对于每个数,我们计算它的各位数字之和,并检查该数字之和是否等于 9。如果等于 9,则将该数加入总和 sum 中,并将符合条件的数的数量加 1。最后,我们检查是否存在各位数字之和为 9 的数,如果存在,则输出它们的平均值。如果不存在,则输出提示信息。以下是一个可以解决这个问题的 C 代码:#...

怎样用c语言实现取一个数字的个位
取一个数字的个位,可以分为取整数的个位,和浮点数的个位两种情况:1)取一个整数的个位,可以直接求余 例如 变量 int num=127;num%10 就可以得到个位的7 2)取浮点数的个位 因为%是不能对浮点数直接运算的,因此需要强制取整之后执行 例如变量 double num=27.83;((int)num)%10 就可以得到...

C语言编程 1:输入一行字符,求其中数字,英文字母,空格,其他字符的个数...
int main(){int i,sz=0,zm=0,kg=0,qt=0;char s[200];gets(s);for(i=0;s[i];i++)if(s[i]>='0'&&s[i]<='9')sz++;else if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')zm++;else if(s[i]==' ')kg++;else qt++;printf("数字:%d\\n英文字母:%d...

用C语言求一个n位数的各位数之积,(n小于10)
1、建立一个工程和.c文件,如下图所示:2、输入头文件和主函数,如下图所示:3、定义变量类型并初始化,如下图所示:4、输入整数,如下图所示:5、先乘以整数的个位数,如下图所示:6、剔除整数的个位数 7、输出结果 8、编译,运行

c语言要求求一个数的绝对值!!!过程!!!
(1)求绝对值就是让将负数转成正数,正数还是其本身,以下是代码:include<stdio.h>int Abs(int a){ if(a<0) return -a; return a;}void main(){ int a; printf("请输入一个数:"); scanf("%d",&a); printf("%d的绝对值是:%d\\n",a,Abs(a));}(2)以...

C语言求一个数是几位数
else if(f\/1>0)printf("you 1 wei\\n"); \/*这里错了 写着 不能到达的代码在 main 函数中*\/ for(i=0;f!=0;f\/=10,i++)a[i]=f%10;k=i;printf("kaishi de shu wei ");for(i=k-1;i>=0;i--)printf("%d ",a[i]);printf("\\ndao guo lai de shu wei ");for(i=0...

广阳区13524828254: 两道C语言编程题:一、输入一个整数,求它的位数以及各位数字之和. -
欧童立思: 一:#include<stdio.h> void main() { int a,i=0,sum=0; scanf("%d",&a); while(a) { sum+=(a%10);//sum是个位数之和 a/=10; i++;//i为位数 } printf("%d位数,各位数字之和为%d\n",i,sum); } 二:#include<stdio.h> int issxh(int number) { int x1,x2,x3;...

广阳区13524828254: 利用C语言怎样求整数的位数以及各位数之和 -
欧童立思: 将此段文字复制到编码区即可. #include "stdio.h"int main() { int number,i=0,sum=0; printf("please input a number:"); scanf("%d",&number); while(number!=0) { sum+=number%10; number/=10; i++;} printf("sum=%d\n",sum); printf(...

广阳区13524828254: C语言 怎么求出一个多位数 每位的数字??? -
欧童立思: int a=0; int i=0; int b[10]={0};//存放解析后的数字 scanf("%d"&a); for(i=0 ; ;i++) { b[i]=a%10; if(a< 10) break; a=a/10; } 你把头尾完善一下就行了,这个在数组b中是逆序拍的,输出的时候你倒着输出就可以了

广阳区13524828254: c语言程序题 输入一个整数,求它的位数及各位数字之和.例如,123的位数是3,各位数字之和是6.负数也要 -
欧童立思: 思路给你 用这个数字来除以10 do{b++;a=a/10;}while(a>=10) 这样算位数 各位数字之和 就这样 do{ sum+=a%10; a=a/10;}while(a>=10)

广阳区13524828254: C语言中如何判断一个数的位数 -
欧童立思: 我告诉你一个非常简单的方法,并且不改变原值: strlen(itoa(a,str,10));//a为你需要判断的数,这里的a为整型 ==============代码如下================= #include<stdio.h> #include<string.h> #include<stdlib.h> void main() {int a;char str[40];printf("请输入一个整数:");scanf("%d",&a);printf("它是%d位数\n",strlen(itoa(a,str,10))); } //程序我已经调试过了,不懂的可追问哦

广阳区13524828254: 怎样用c语言实现取一个数字的个位 -
欧童立思: 取a的个位i:i=a%10,一个数除以10的余数就是它的个位.

广阳区13524828254: 如何用C语言编写一个程序,内容是输入一个数字即可得到它的位数 -
欧童立思: 123456789 #include<stdio.h> voidmain() { inta,cnt=0; scanf("%d",&a); for(;a>0;a=a/10) cnt++; printf("%d\n",cnt); }

广阳区13524828254: 用C语言编一个程序求一个数各位数之积 -
欧童立思: 这个问题其实很简单! 办法有两个, 1.因为不知道你要输入的是几位数,所以可以用动态数组,输入数字之后,每一个位置其实就只有一个数字,那么就可以直接用每个位置的数字相乘! 2,不用动态数组的话,可以直接用int,思路是,不停的除以10,求余数,得到的余数就是那一位的数字!一直到余数为0的时候停止! 这里只给出大概思路.可以根据这两个思路自己编! 祝你成功!

广阳区13524828254: 用C语言编写程序,输入一个任意整数,求它的位数及各位数字之立方和.【使用while语句】 -
欧童立思: #include<stdio.h> main() {int n,i,s=0,sum=0;printf("请输入一个整数:");scanf("%d",&n);i=n;while(i!=0){ s+=(i%10)*(i%10)*(i%10);i/=10;sum++; }printf("是%d位数,各位立方和为%d\n",sum,s);}

广阳区13524828254: C语言编程 求a+aa+aaa+aaaa+………的值,直到加到n个a那一项,其中a是一个数字,n表示a的位数. -
欧童立思: #include"stdio.h" void main() { int a,n,t,i; long int s=0; printf("请输入一个0-9的数字,再输入任意一个整数\n"); scanf("%d%d",&a,&n); t=a; for(i=1;i<=n;i++) {s=s+a;a=a*10+t; } printf("和为%ld\n",s); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网