永发信息网

c语言中如何读取多位数每一位的数字,在V C++平台上,比如1234,具体语句,从定义开始。

答案:3  悬赏:80  手机版
解决时间 2021-05-05 02:00
  • 提问者网友:雾里闻花香
  • 2021-05-04 17:46
c语言中如何读取多位数每一位的数字,在V C++平台上,比如1234,具体语句,从定义开始。
最佳答案
  • 五星知识达人网友:玩世
  • 2021-05-04 19:20
int a=0,b=0;
scanf("%d",&a);
while(a/10)
{
b+=a%10;
a/=10;
}
b+=a;
b的值就是各位的总和追问可否用定义字符那种方法追答#include
int main(void)
{
int b=0,i=0;
char a[10]="0";
scanf("%s",a);
while(a[i])
{
b+=(a[i]-'0');
i++;
}
printf("%d",b);
return 0;
}追问
运行后这样我想要分出每个数字在再进行运算追答那你就定义4个变量分别存数,或者用数组更方便追问你刚刚给的程序运行不出我要的结果,可否看下哪有问题追答你先学基础吧
全部回答
  • 1楼网友:第四晚心情
  • 2021-05-04 22:10
int n = 1234;
while(n != 0)
{
printf("%d\n",n%10);
n /= 10;
}
差不多就是这样就能把n从个位到最高位输出追问如果我还要拿输出的4个数字运算呢追答那就把这些数字用数组存起来:
int n = 1234;
int a[100];
int cnt = 0;
while(n != 0)
{
a[cnt] = n % 10;
cnt++;
n /= 10;
}
这样在数组a[0] ~ a[cnt-1]就是各位的数字了
  • 2楼网友:过活
  • 2021-05-04 20:35

提供一种方法供参考。
将多位数转换为字符串,然后字符串里的每个字符就是对应的数位。使用itoa函数如下:
#include 
#include 
int main ()
{
  int i;
  char buffer [33];
  printf ("Enter a number: ");
  scanf ("%d",&i);
  itoa (i,buffer,10);
  printf ("decimal: %s ",buffer);
}
还有其他思路,例如逐个字节的解释多位数等等。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯