① c语言中如何将一个数字的各个位上的数分别提取
#include<stdio.h>
int main()
{
int a;
int b[111]={0};//这里数组必须赋于初值,不然系统会随机赋值,将输出错误!赋值任何数
scanf("%d",&a);//都行!
int i=0;
while(a!=0)
{
b[i]=a%10;//将各个位的数赋值于数组b[i] ;
a/=10; //现在数组b[i]记录的是各个位上的数的反序;
i++;//i记录这个数是几位数 ;
}
for(int j=i-1;j>=0;j--)
{
printf("%d ",b[j]);//最后反序输出数组b[j];
}
return 0;
}
有不理解的地方,欢迎追问。望采纳!
② c语言里取一个数字的个,十位怎么写
代码如下:
#include<stdio.h>
int main(){
int n = 56789;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("个位:%d 十位:%d 百位:%d 千位:%d ", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}
运行结果:
个位:9
十位:8
百位:7
千位:6
(2)c语言咋取个位数扩展阅读:
C语言中的除法“/”和取余“%”
1、除法运算符“/”
二元运算符,具有左结合性。
参与运算的量均为整型时,结果为整型,舍去小数。
如果运算量中有一个为实型,结果为双精度实型。
例如:
5/2=2,1/2=0
5/2.0=2.5
2、求余运算符“%”
二元运算符,具有左结合性。
参与运算的量均为整型。
求余运算的结果等于两个数相除后的余数。
例如:
5%2=1,1%2=1
③ 用c语言如何表示出一个数的个位,百位,十位
如果n是个多位十进制数,那么n%10是个位数字,n/10%10是十位数字,n/100%10是百位数字,依此类推。
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10
代码如下:
#include<stdio.h>
int main(){
int n = 123456;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("个位:%d
十位:%d
百位:%d
千位:%d
", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}
(3)c语言咋取个位数扩展阅读:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
④ 怎么用c语言求一个3位数分别输出个位,十位,百位的数字
用c语言分别输出个位十位和百位的数字,可以根据下面步骤进行,c语言作为一种程序代码,因此在输入时绝对不能弄错任何符号。
1.#include<stdio.h>void main(){
2.int a,a0,a1,a2;scanf("%d",&a);
3.a2=a/100; /*确定x百位的数*/
4.a1=(a-a2*100)/10; /*确定x十位数*/
5.a0=a-a2*100-a1*10; /*确定x个位数*/
6.printf("百十个位数分别为:
7.%d,%d,%d ",a2,a1,a0);}
以上就是用c语言输入一个三位数的步骤。
⑤ c语言中如何求一个整数的各位数
用取余和取模的方法。比如a:a%10得到是各位。a/10得到的是去除个位的那些数,声明一个变量来存储这个数。如此循环就可以了。你可以提前声明一个足够大的一维数组来存放正整数的各个位。希望对你有帮助。上面那位的程序可以借鉴,但是不全,改一下。
⑥ 怎样用C程序提取一个3位数的各个数位
如果简单点就int i=123;int k,s;k=i%10;个位数s=(i-100)/10;十位数i=i/100;//百位数
#include
<stdio.h>
void
main()
{
int
a;
int
b,c,d;//各个位数上的数字
printf("请输入一个三位数:");
scanf("%d",&a);
b=a/100;
//百位
c=(a-b*100)/10;
//十位
d=a%10;
//个位
printf("百位:%d,十位:%d,个位%d ",b,c,d);
printf("它们的和是:%d ",b+c+d);
}
(6)c语言咋取个位数扩展阅读:
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。C语言也有自身的不足,比如:C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
C语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,又是一个实用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言。
⑦ c语言中如何提取二进制数中的某一位
下面是三种方式:
①通过模2除2(%2、/2)的方法
num%2——取出二进制的最后一位
num/2——右移去掉二进制的最后一位
通过while循环,依次取出二进制的最后一位数字判断是否为1,若为1则count++,while(num)只有当num变为0时循环结束。
问题:在测试-1出现bug,-1的二进制中应该有32个1,输出却为0。我们将-1带入代码中发现-1%2=0,count不增,然后-1/2=0,循环结束,故输出count的值为0。
解决方案:将变量num的数据类型改为unsigned int (无符号整型),此时表示的是正的整型的最大值,所以当num=-1时,表示二进制为32个1的正数,通过循环可以输出正确的个数。
②通过右移操作符(>>)、按位与操作符(&)实现
Example:当num=10(1010),通过右移操作num>>i,二进制向右移动i位。
//i=0,num>>0,右移0位,此时(1010)&(0001)=0
//i=1,num>>1,右移1位,此时(0101)&(0001)=1,count++
//i=2,num>>2,右移2位,此时(0010)&(0001)=0
//i=3,num>>3,右移3位,此时(0001)&(0001)=1,count++
……
因为二进制共32位,所以循环要执行32次后结束,得到count为2。
缺点:不够高效,必须循环32次。
③通过按位与操作符(&)巧妙运算实现
Example: 当num=15时,
1//num&(num-1)=(1111)&(1110)=(1110)
2//num&(num-1)=(1110)&(1101)=(1100)
3//num&(num-1)=(1100)&(1011)=(1000)
4//num&(num-1)=(1000)&(0111)=0 ,循环停止。共执行4次while循环。
(7)c语言咋取个位数扩展阅读
一、指定的某一位数置1
宏 #define setbit(x,y) x|=(1<<y)
二、指定的某一位数置0
宏 #define clrbit(x,y) x&=~(1<<y)
三、指定的某一位数取反
宏 #define reversebit(x,y) x^=(1<<y)
四、获取的某一位的值
宏 #define getbit(x,y) ((x) >> (y)&1)
⑧ c语言怎么取出数字
#include<stdio.h>
#include <stdlib.h>
int main()
{
int data;
int temp;
printf("请输入一个整数:");
scanf("%d", &data); // 接收用户输入的整数,并赋值给变量data
printf("%d从最低位到最高位分别为:\n", data);
int index = 0;
while (data > 0) // 当data=0或小于0时,退出循环,此时所以位数都已取出
{
if (index > 9)
break;
temp = data % 10; // 取出data的最低位
data = data / 10; // 将去掉data的最低位,次低位变为最低位
switch (index)
{
case 0:
printf("个位:%d \n", temp); // 输出最低位(个位)
break;
case 1:
printf("十位:%d \n", temp); // 输出最低位(十位)
break;
case 2:
printf("百位:%d \n", temp); //输出最低位(百位)
break;
case 3:
printf("千位:%d \n", temp); //输出最低位(千位)
break;
case 4:
printf("万位:%d \n", temp); //输出最低位(万位)
break;
case 5:
printf("十万位:%d \n", temp); //输出最低位(十万位)
break;
case 6:
printf("百万位:%d \n", temp); //输出最低位(百万位)
break;
case 7:
printf("千万位:%d \n", temp); //输出最低位(千万位)
break;
case 8:
printf("亿位:%d \n", temp); //输出最低位(亿位)
break;
default:
break;
}
index++;
}
}
⑨ C语言怎样提取一个数的十位个位百位千位
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10
代码如下:
#include<stdio.h>
int main(){
int n = 123456;
int unitPlace = n / 1 % 10;
int tenPlace = n / 10 % 10;
int hundredPlace = n / 100 % 10;
int thousandPlace = n / 1000 % 10;
printf("个位:%d 十位:%d 百位:%d 千位:%d ", unitPlace, tenPlace, hundredPlace, thousandPlace);
getchar();
return 0;
}
运行结果如图:
(9)c语言咋取个位数扩展阅读
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
⑩ c语言里怎么求任意正整数的位数
其实不用循环也可以做到,对其求以10为底的对数,然后取整数部分再加1,就是这个整数的位数.
下面是代码:
#include<stdio.h>
#include<math.h>
void main()
{
int n;
printf("please input an integer:");
scanf("%d",&n);
printf("%d的位数是%d\n",n,(int)log10(n)+1);
}