問題描述:
將一個整數的各個位數分離在數組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; //商
}
當輸入十位以上整數時結果有誤