//修改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;
}
}
《C程序设计语言》第二版练习3-6参考程序
最新推荐文章于 2022-05-22 23:00:33 发布