《C程序設計語言》第二版練習3-6參考程序

//修改itoa函數,使得該函數可以接收三個參數。其中,第三個參數爲最小字段寬度。
//爲了保證轉化後所得結果至少具有第三參數指定的最小寬度,必要時應在所得結果的左邊添加一定的空格
#include <stdio.h>
#include <stdlib.h>
#define SIZE 40
void itoa_modify(char s[], int n, int a);
void reverse(char t[]);
int main(void)
{
	char a[SIZE];
	int m;
	int b = 10;
	printf("Please enter a number:\n");
	while ((scanf("%d\n", &m)) == 1)
	{
		itoa_modify(a, m, b);
		for (int k = 0; a[k] != '\0'; k++)
		{
			printf("%c", a[k]);
		}
		printf("\n");
		printf("Please enter another number:\n");
	}
}
void itoa_modify(char s[], int n, int a)
{
	int i, sign;
	if ((sign = n) < 0)
	{
		n = -n;
	}
	i = 0;
	do
	{
		s[i++] = n % 10 + '0';
	} while (n /= 10);
	if (sign < 0)
	{
		s[i++] = '-';
	}
	while (i < a)
	{
		s[i++] = '*';
	}
	s[i] = '\0';
	reverse(s);
}
void reverse(char t[])
{
	int i, j,tmp;
	for (j = 0; t[j] != '\0'; j++)
		;
	j--;
	for (i = 0; i < j; i++,j--)
	{
		tmp = t[i];
		t[i] = t[j];
		t[j] = tmp;
	}
}

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