C语言将一个4位数拆分成4个个位数

要求使用自定义函数返回数组或者使用getchar()获取四位数而不是简单的%10这种。求高人解答一种方法给标准答案,二种方法追加悬赏,谢谢各位了... 要求使用自定义函数返回数组或者使用getchar()获取四位数而不是简单的%10这种。求高人解答一种方法给标准答案,二种方法追加悬赏,谢谢各位了 展开
 我来答
做一个快乐的茶农
高粉答主

2019-11-13 · 每个回答都超有意思的
知道答主
回答量:1396
采纳率:100%
帮助的人:49万
展开全部

1、首先在电脑桌面上打开vc++软件。

2、在C++页面新建一个c文件。

3、定一个int型变量,然后进行初始化。

4、假设他是一个四位数,然后进行第一步分解,使用"a/1000"来获得千位数字。

5、然后通过"a/100%10"的方法获得百位。

6、通过"a/10%10"的方法得到十位。

7、通过"a%10"的方法获得个位。

8、最后得到分解结果。

爱教育爱学习
高粉答主

2019-11-13 · 说的都是干货,快来关注
知道小有建树答主
回答量:2774
采纳率:100%
帮助的人:100万
展开全部

#include<stdio.h>

voidmain()

{

inta,b,c,d,e,t;

printf("Pleaseinputanumber:\n");

scanf("%d",&t);

if(t>999&&t<10000)

{

a=t/1000;

b=t%1000/100;

c=t%100/10;

d=t%10;

e=a+b+c+d;

if(e%2==0)

printf("YES\n");

else

printf("NO\n");

}

else

printf("Invaliddata\n");}

扩展资料

C语言输入一个4位数的整数,逆序输出

#include<stdio.h>

voidmain(){

intnum,a,b,c,d,s;

printf(“请输入一个四位数的整数:\n”);

scanf("%d",&num);

a=num/1000;//求千位上的数

b=(num-a1000)/100;//求百位上的数

c=(num-a1000-b*100)/10;//求十位上的数

d=num%10;//求个位上的数

s=d1000+c100+b*10+a;//重新组合

printf(“逆序输出为:%d\n”,s);//输出结果

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-03-28 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:6660万
展开全部
思路:变int 为 字符串,各字符减'0' 就是各位数值。

void i_to_4(int x, int *v){
char s[8];
int i;
sprintf(s,"%d",x);
for (i=0;i<strlen(s);i++) v[i]=s[i]-'0';
}

main(){
int x=1234;
int v[4],i;
i_to_4(x,&v[0]);
for (i=0;i<4;i++) printf("%d ",v[i]);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-29
展开全部
只给你写了一种。可以实现输入的过滤,也就是只有输入的数字才会被录入。运行如下:

程序很简单,就没写什么注释

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
char buff[5] = {0};
int index = 0;
while (1)
{
buff[index] = getchar();
index = (buff[index] >= '0' && buff[index] <= '9') ? index + 1 : index;
if (index > 3)
{
break;
}
}

buff[index] = '\0';

printf("You input : %s\n", buff);

printf("Seprate the data as : ");
for (index = 0; index < 4; index++)
{
printf("%c ", buff[index]);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zweiking
2013-03-28 · TA获得超过319个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:50.6万
展开全部
#include "stdio.h"
void fun(int num,char *sz)
{ int i=0;
while(num>0)
{
sz[i]=num%10+'0';i++;
num/=10;
}
}
main(){
int n;char ss[20]={0};//20个数的存储空间已经超过了int型能够正常存储的范围,足够了
printf("please input the number");
scanf("%d",&n);
fun(n,ss);
printf("%s",ss);
}
/*vc++6.0运行通过*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式