1. 程式人生 > >C語言訓練-整數位-1191

C語言訓練-整數位-1191

Problem Description 輸入一個不多於5位的正整數,要求: (1)求出它是幾位數; (2)分別輸出每一位數字; (3)按逆序輸出各位數字。 Input 輸入一個不多於5位的正整數。 Output 輸出資料有3行,第一行為正整數位數,第二行為各位數字,第三行為逆序的各位數字。 Sample Input 123 Sample Output 3 1 2 3 3 2 1

#include<stdio.h>
int main()
{
	int flag=0, n, i, a[10];
	scanf("%d", &n);
	while (n)     //分離整數
	{
		a[flag++] = n % 10;  //將每次取餘的值都存放在開始定義的數組裡並且flag的值+1
		n=n/10;      // 去掉數字的最後一位數
	}
	printf("%d\n", flag);
	for(i=flag-1;i>=0;i--)   //正序輸出
	{
		if(i==0)          //當輸入的值只有一個的時候
		printf("%d\n",a[i]);
		else  //當值不只有一個的時候
		printf("%d ",a[i]);
	}
	for(i=0;i<flag;i++)   //倒敘輸出
	{
		if(i==flag-1)
		printf("%d",a[i]);
		else printf("%d ",a[i]);
	}
	return 0;
}