整数分割问题


问题描述:

将一个整数的各个位数分离在数组a中,a[0]个位,a[1]十位,a[2]百位...最后返回数据的位数 


程序代码:

#include<stdio.h>
int main(){
int n,i=0,a[10],j;
scanf("%d",&n);
while(n!=0){       //n不等于0表示还没有输出完
a[i++]=n%10;   //余数
n=n/10;        //商
}
for(j=0;j<i;j++){
printf("%d ",a[j]);   //放置数组中输出 
}
printf("\n");
for(j=i-1;j>=0;j--){
printf("%d ",a[j]);   //逆序输出(也即按照百位十位个位由高位到低位按序输出) 
}
printf("\n");
printf("这个整数是%d位数",i);
return 0;
}



怎样定义声明一个数组 并为数组赋值 
int a[10];  for(i=1;i<=10;i++) a[i]=i; 


几个要点:
1.分离出来>>>>除10求余就是个位数,求商就是没有个位数的数,然后重复进行
2.逆序输出
3.放置数组中输出
4.输出是几位数>>>>2.3.4用数组即可一次解决


重点是:

这四行循环代码

while(n!=0){       //n不等于0表示还没有输出完
a[i++]=n%10;   //余数
n=n/10;        //商
}


存在问题:
当输入十位以上整数时结果有误 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值