整數分割問題


問題描述:

將一個整數的各個位數分離在數組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;        //商
}


存在問題:
當輸入十位以上整數時結果有誤 

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