C语言 10位的整数 按位取出来
设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10
代码如下:
#include
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;
}
运行结果如图:
扩展资料C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
参考资料:百度百科--C语言
#include
#define N 100
int main()
{
int a[N];
long b,i = 0,j,status;
scanf("%d",&b);
a[i] = b % 10;
status = b / 10;
while(status != 0)
{
i++;
a[i] = status % 10;
status = status / 10;
}
printf("%d
",i + 1);
for(j = 0; j <= i; j++)
printf("%d ",a[j]);
printf("
");
for(j = i;j >= 0; j--)
printf("%d",a[j]);
printf("
");
return 0;
}
一般使用的数据都不会超过100位,就算是long型或者是long long型都不会,所以就随便选100了。
如果你想使用c99标准里的变长数组,这个我就不在此赘述了,请你百度一下。
另外,还有一种方法是,把数字当做是字符串输入,然后进行类似处理就ok了。
相信你可以的。
一下以实用函数形式单独列出,带上测试例子!
int select_bit_fifo(int n,int buf[]);
函数select_bit_fifo可将输入的任意正整数n,按从高到低的顺序存储到矩阵buf[],并返回n的位数!
#include<stdio.h>
int select_bit_fifo(int n,int buf[]);
int main(void)
{
int i,len,B[18]={0},n=1324569780;
printf("请输入一个任意测试的正整数n...\n");
scanf("%d",&n);
len=select_bit_fifo(n,B);
printf("输入的数据长度为%d\n输出B中存储的数据...\n",len);
for(i=0;i<len;i++)
printf("B[%d]=%d\n",i,B[i]);
return 0;
}
int select_bit_fifo(int n,int buf[])
{
int m,len=0;
while(n>10){
m=1;
while(n/m>=10) m*=10;
buf[len++]=n/m;
n%=m;
}
buf[len++]=n;
return len;
}
************************************
先前的程序,供算法参考
#include<stdio.h>
int main(void)
{
int i,temp,B[10],m,n=1324569780;//n赋初始值1324569780
for(i=0;i<10;i++){
m=1;
while(n/m>=10) m*=10;
B[i]=n/m;
n%=m;
}
for(i=0;i<10;i++)
printf("%d ",B[i]);//输出矩阵b中的数据1324569780
return 0;
}
终于写好了,以下是程序的算法思路,C的细枝末节,什么#include 那些,你自己写吧
int num=1324569780;//这是你的十位整数
int B[]=new int[10];//
for(int i=0;i<10;i++)
{
int ssss=1;//这个将成为十的幂级如10,100,1000……
for(int j=0;j<i+1;j++){ //这里通过循环得到,10,100,1000……
ssss=ssss*10;
}
int mid=num%ssss; //先取余数
array[i]=mid/(ssss/10); //再对余数取商
//举个例子,1324569780除以1000取余数是780,得到的余数780除以100,取得商就是7 。所以每位数字都是这样来的
}
楼主记得给分哦。有什么问题再问。这个是在vc下的。int型能装下10位。
#include <stdio.h>
#define N 10 //10位
int main(void)
{
unsigned int n=1324569780;
int B[N]={0};
int i;
for (i=0;i<N;i++)
{
B[N-i-1]=n%10;
n=n/10;
}
return 0;
}
#include<stdio.h>
int main()
{
int num[10];
long in;
scanf("%ld" , &in);
for(int temp = 9; temp >= 0; temp--)
{
num[temp]=in % 10;
in = in / 10;
}
return 0;
}
#include "stdio.h"
void main()
{
long a;
scanf("%ld",&a);
int numbers[10],j=0;
for(long i=1e9;i>=1;a%=i,i/=10)
numbers[j++]=a/i;
for(j=0;j<10;j++)
printf("%d",numbers[j]);
}
C语言中整数如何按顺序输出?
在C语言中,可以使用循环来实现整数的正序和反序输出。下面是一个简单的示例代码:在这个示例代码中,我们首先利用while循环,从给定的整数num中依次取余数(即取出个位数字),然后打印出来。通过不断的将num除以10,我们可以逐渐将数字的位数去除,直到num变成0为止。这样就实现了整数的正序输出。要实现反...
求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
要实现一个C++程序,可以从键盘输入10个整数并按升序排序,下面是具体步骤:首先,创建一个结构体,包含整数值(int),对应的排名(int)以及序号(int)。接着,定义一个结构体数组`d`来存储这10个整数的信息。自定义一个函数,用于比较两个整数的大小,这将在排序过程中起到关键作用。另一个函数则...
同一个整数10,分别是byte类型和int类型,按位取反的结果为什么不同?
如果用数没有正负之分那可以表示 0~255 共256个数字. 也可以叫做 2的8次方,你用计算器算算,2的8次方是不是等于256?如果数有正负之分那可以表示-128~+127 也是256个数,因为8位里面拿走一个位用来表示正负了,所以只能表示最大127 接下来 : 9位 = 2的九次方 =512个数字 接下来: 10位 =...
C语言 输入一个9位以内的正整数n,按数值从高到低的顺序输出n的各位数 ...
include "stdio.h"int main(int argc,char *argv[]){char s[10],i,j,k;printf("Please enter a positive integer(0~999999999)...\\n");scanf("%9[0-9]",s);for(i=0;s[i];i++){for(k=i,j=k+1;s[j];j++)if(s[k]...
C语言:输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的...
貌似都是书上的题啊 第1个应该很简单,定义数组大一点,输入要查找的数据后,对比找到第一个比它大的数的位置,然后将该位置后的数全部顺延一位,将数据放入该位置 第2个 include<stdio.h> define N 20 \/\/宏定义数组大小 int main(){ int a[N];int n,Con=0,i=0,Total_p;printf("input n(...
C语言 递归实现顺序输出整数 要求实现一个函数,对一个整数进行按位顺序...
比如要执行printdigits(1234),则执行 printdigits(1234\/10);printf("%d\\n",1234%10);要先执行printdigits(1234\/10),即printdigits(123),变成执行 printdigits(123\/10);printf("%d\\n",123%10);printf("%d\\n",1234%10);要先执行printdigits(123\/10),即printdigits(12),变成执行 print...
本人C语言初学者。 题:取出一个无符号的十进制整数中的所有奇数数字,按...
因为十多位的时候,数据溢出了,你把读入的数存在int上,以目前一般的32位平台,int最大都只支持4294967296,更别说16位了,你输入的超过这个,int类型就存不下了。你这种题目应该用字符串读取,然后对每一位进行处理。读取一个字符串,然后从第一位开始判断,是奇数就取出来放到另一个字符串,最后...
在C语言中什么叫选择法
选择法是每趟选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序或升序排序。算法要求:用选择法对10个整数按降序排序。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。
c++ 给一个不多于10位数的正整数,①求出它是几位数;②按从高位到低位...
int aa = 30;stringstream ss;ss<<aa;string s1 = ss.str();cout<<"number: "<< s1.length()<<" digitals: "<<s1<<endl;
程序每次读入一个正整数N(N的位数小于10位),然后输出按位逆序的数字
include <stdio.h>int main(){int m=0,n;scanf("%d",&n);while(n){m=m*10+n%10;n\/=10;}printf("%d",m);return 0;}\/\/运行示例: