今日练习:
61、写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出"1990"。
62、用递归法将一个整数 n 转换成字符串。例如,输入483,应该输出字符串"483"。 n 的位数不确定,可以是任意位数的整数
63、给出年,月,日,计算该日是该年的第几天。
64、输入3个整数,按由小到大的顺序输出。(本题目要求用指针方法处理)
写一个函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1990,应输出"1990"。
运行代码
int main()
{
void insert(char str[]);
char str[80];
printf("输入一个4位数字:");
scanf("%s", str);
insert(str);
return 0;
}
void insert(char str[])
{
int i = 0;
for (i = strlen(str); i > 0; i--)
{
str[2 * i] = str[i];
str[2 * i - 1] = ' ';
}
printf("输出结果是:%s\n", str);
}
运行结果
用递归法将一个整数 n 转换成字符串。例如,输入483,应该输出字符串"483"。 n 的位数不确定,可以是任意位数的整数
运行代码
int main()
{
void convert(int n);
int number = 0;
printf("输入一个整数:");
scanf("%d", &number);
printf("输出结构:");
if (number < 0)
{
putchar('-');
putchar(' ');
number = -number;
}
convert(number);
printf("\n");
return 0;
}
void convert(int n)
{
int i = 0;
if ((i = n / 10) != 0)
{
convert(i);
}
putchar(n % 10 + '0');
putchar(32);
}
运行结果
给出年,月,日,计算该日是该年的第几天。
运行代码
int main()
{
int sum_day(int month, int day);
int leap(int year);
int year = 0;
int month = 0;
int day = 0;
int days = 0;
printf("输入日期:");
scanf("%d %d %d", &year, &month, &day);
printf("%d-%d-%d", year, month, day);
days = sum_day(month, day);
if (leap(year) && month >= 3)
{
days = days + 1;
}
printf("是这一年的第%d天\n", days);
return 0;
}
int sum_day(int month, int day)
{
int day_tab[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int i = 0;
for (i = 1; i < month;i++)
{
day += day_tab[i];
}
return day;
}
int leap(int year)
{
int leap = 0;
leap = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
return leap;
}
运行结果
输入3个整数,按由小到大的顺序输出。(本题目要求用指针方法处理)
运行代码
int main()
{
void swap(int* p1, int* p2);
int n1 = 0;
int n2 = 0;
int n3 = 0;
int* p1, * p2, * p3;
printf("请输入3个整数:");
scanf("%d%d%d", &n1, &n2, &n3);
p1 = &n1;
p2 = &n2;
p3 = &n3;
if (n1 > n2)
{
swap(p1, p2);
}
if (n1 > n3)
{
swap(p1, p3);
}
if (n2 > n3)
{
swap(p2, p3);
}
printf("输出结果是:%d %d %d\n", n1, n2, n3);
return 0;
}
void swap(int* p1, int* p2)
{
int p = 0;
p = *p1;
*p1 = *p2;
*p2 = p;
}