整数分割问题


问题描述:

将一个整数的各个位数分离在数组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;        //商
}


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章