//修改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參考程序
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.