C语言中,如何得到某个数字的某几位

leaway211 2006-07-12 12:40:10
例如 int = 1234;
我要得到第2-3位,有没有什么简单的方法能得到答案23呢?
...全文
2632 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wodeyouxian 2006-07-25
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
look!
apricot0819 2006-07-20
  • 打赏
  • 举报
回复 1
可以把数的每个位数分开放进一个整型数组里。。

再想取哪位就随便了啊
xddzccn 2006-07-20
  • 打赏
  • 举报
回复 1
#include "string.h"
#include "stdio.h"
main()
{ int a;
char chb[4];
printf("plrease input a number");
scanf("%d",&a);
sprintf(chb,"%d",a);
printf("%c%c",chb[1],chb[2]);


}
想知道sprintf(chb,"%d",a);为什么是%d,而不是%s啊
唐巧 2006-07-20
  • 打赏
  • 举报
回复
sprintf比较方便。
xddzccn 2006-07-12
  • 打赏
  • 举报
回复
int sihui(long b);
main()
{long a;
printf("please input a number");
scanf("%d",&a);
printf("%d",ishui(a));}


int ishui(long b)
{
long a[9],i,n=0;
do{a[n++]=b%10;
}while(b=b/10);
for(i=0;i<n/2;i++)
if(a[i]!=a[n-1-i])return 0;
return 1;
}
jixingzhong 2006-07-12
  • 打赏
  • 举报
回复
例如 int = 1234;
我要得到第2-3位,有没有什么简单的方法能得到答案23呢?
===========================
char s[10];
int num = 1234;
int i;

sprintf(s, "%d", num);
for(i=0; s[i] != 0; i++)
printf("In the num %d, the %d number is %c.\n", num, i+1, s[i]);

在字符串 s 中,
第 i 位数字就是 元素 s[i-1] (数组下标从0开始)....
chenhu_doc 2006-07-12
  • 打赏
  • 举报
回复
顶~
PDD123 2006-07-12
  • 打赏
  • 举报
回复
没有直接的函数
xiaojun19830916 2006-07-12
  • 打赏
  • 举报
回复
int i=1234;
个位数=i%10;
十位数=1%100-个位数;
百位数=i%1000-十位数*10-个位数;
du51 2006-07-12
  • 打赏
  • 举报
回复
//C++下可以这样.
#include<sstream>
#include<iostream>
#include<string>
#define START 2//开始
#define NUM 2//个数
using namespace std;
int main()
{
int n=1234;
stringstream ss;
ss<<1234;
cout<<ss.str().substr(START-1,NUM)<<endl;
system("PAUSE");
return 0;
}
tanglucose 2006-07-12
  • 打赏
  • 举报
回复
jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) 正解!!
stecdeng 2006-07-12
  • 打赏
  • 举报
回复

jixingzhong(瞌睡虫:选择了远方,只顾风雨兼程!) 的例子是使用了 SPRINTF函数
讲得详细也比较通用



函数名: sprintf
功 能: 送格式化输出到字符串中
用 法: int sprintf(char *string, char *farmat [,argument,...]);
程序例:

#include
#include

int main(void)
{
char buffer[80];

sprintf(buffer, "An approximation of Pi is %f\n", M_PI);
puts(buffer);
return 0;
}

stecdeng 2006-07-12
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int i=1234,j;
j=(i/10)%100;
printf("%d\n",j);
system("PAUSE");
return 0;
}



1234除以10为123
再除以100 余数为23

如果只要某位数1234除以100得12
12除以10 余数为2

yingge 2006-07-12
  • 打赏
  • 举报
回复

#include <stdio.h>

int getsubdec(int n,int low,int high){
int i,j;
for(i=1;i<low;i++)
n/=10;
for(j=1,i=low;i<=high;i++)
j*=10;
return n-j;
}

int main(){
int i=1234;
printf("%d\n",getsubdec(i,2,3));
return 0;
}

liubingqian 2006-07-12
  • 打赏
  • 举报
回复
int i=1234;
个位数=i%10;
十位数=1%100-个位数;
百位数=i%1000-十位数*10-个位数;

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧