C语言提取第N位数字的问题

C语言下:先让访问者输入一个数字(如13579),再希望让访问者再输一个N(小于等于位数),并把从右到左数的第N位提取出来,应该怎么做?如输入N=2,就把13579中的7... C语言下: 先让访问者输入一个数字(如13579),再希望让访问者再输一个N(小于等于位数),并把从右到左数的第N位提取出来 ,应该怎么做?

如输入N=2,就把13579中的7提取出来;输入4,就把3提出来;输入5,就把1提出来。
展开
 我来答
匿名用户
2013-07-08
展开全部
如果去第N个数 则进行N-1次循环除10 然后把最后一位取出来就可以了
#include <stdio.h>

int get_num(int n, int idx)
{
int i;
for(i = 0; i < idx-1; ++i)
n /= 10;
return n % 10;
}

void main(void)
{
int n, idx;
scanf("%d%d", &n, &idx);
printf("%d\n", get_num(n, idx));
}
匿名用户
2013-07-08
展开全部
#include <stdio.h>
#include "math.h"
void main()
{
int num, n;
printf ("请输入一个数字:");
scanf ("%d", &num);
do
{
printf ("请输入位置(小于等于位数):");
scanf ("%d", &n);
}while (!(num / pow(10, n)));
printf ("第%d位的数字为%d\n", n, num % pow(10, n) / pow(10, n - 1));
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-08
展开全部
main()
{
int a,b,i,s=1,c,d;
printf("请输入访问数字");
scanf("%d",&a);
printf("请输入位数");
scanf("%d",b);
for(i=0;i<b;i++)
{
s=s*10;
}
c=a/s;
d=a-c*s;
d=d/s;
printf("%d",d);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-08
展开全部
恩恩.你的想法基本正确..
实现代码如下:

----分割线-----
#include "iostream.h"
#include "stdio.h"
int putnum;
int i,j,w;

void cost(int i,int j)
{
int q=10;
int p=10;
for (int m=2;m<=w-j;m++)
{
q=q*10;
}

if (j==w)
{
q=1;
}
for (m=2;m<=j-i+1;m++)
{
p=p*10;
}
cout<<putnum/q%p<<"\n";
}
void main()
{
cout<<"输入你的位数 \n";
cin>>w;
cout<<"please put num (your num mast < 10 bit) \n";
cin>>putnum;
cout<<"输入你想要提取的i 到j \n";
cin>>i;
cin>>j;
cost(i,j);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式