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

要求使用自定义函数返回数组或者使用getchar()获取四位数而不是简单的%10这种。求高人解答一种方法给标准答案,二种方法追加悬赏,谢谢各位了
最新回答
飞起

2025-06-27 01:53:22

1、首先在

电脑桌面
上打开vc++软件。

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

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

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

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

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

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

8、最后得到分解结果。

花颜诱人醉

2025-06-27 16:37:42

#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);//输出结果

}

祁梦

2025-06-27 02:32:58

思路:变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]);
}
思念成灾*

2025-06-27 19:52:54

只给你写了一种。可以实现输入的过滤,也就是只有输入的数字才会被录入。运行如下:

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

#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]);
}

}
枕头说它不想醒

2025-06-27 10:30:47

#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运行通过*/