今日练习:
65、有 n 个整数,使前面各数顺序向后移动 m 个位置,最后 m 个数变成最前面 m 个数,写一函数实现以上功能,在主函数中输入 n 个整数和输出调整后的 n 个数。(要求用指针)
66、 n 个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的使原来第几号的那位。(要求用指针)
67、写一个函数,求一个字符串的长度。在 main 函数中输入字符串,并输出其长度。(要求用指针)68、编写一个程序,输入月份号,输出该月的英文月名。例如,输入"3",则输出" March ",要求用指针数组处理。
有 n 个整数,使前面各数顺序向后移动 m 个位置,最后 m 个数变成最前面 m 个数,写一函数实现以上功能,在主函数中输入 n 个整数和输出调整后的 n 个数。(要求用指针)
运行代码
int main()
{
void move(int[20], int n, int m);
int number[20];
int n = 0;
int m = 0;
int i = 0;
printf("共有多少个数:");
scanf("%d", &n);
printf("输入这%d个数\n", n);
for (i = 0; i < n; i++)
{
scanf("%d", &number[i]);
}
printf("向后移动多少个数:");
scanf("%d", &m);
move(number, n, m);
for(i=0;i<n;i++)
{
printf(" %d ", number[i]);
}
printf("\n");
return 0;
}
void move(int arr[20], int n, int m)
{
int* p;
int arr_end;
arr_end = *(arr + n - 1);
for (p = arr + n - 1; p > arr; p--)
{
*p = *(p - 1);
}
*arr = arr_end;
m--;
if (m > 0)
{
move(arr, n, m);
}
}
运行结果
n 个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的使原来第几号的那位。(要求用指针)
运行代码
int main()
{
int i = 0;
int k = 0;
int n = 0;
int m = 0;
int num[50];
int* p;
printf("输入n=");
scanf("%d", &n);
p = num;
for (i = 0; i < n; i++)
{
*(p + i) = i + 1;
}
while (m < n - 1)
{
if (*(p + i) != 0)
{
k++;
}
if (k == 3)
{
*(p + i) = 0;
k = 0;
m++;
}
i++;
if (i == n)
{
i = 0;
}
}
while (*p == 0)
{
p++;
}
printf("最后一个数是:%d\n", *p);
return 0;
}
运行结果
写一个函数,求一个字符串的长度。在 main 函数中输入字符串,并输出其长度。(要求用指针)
运行代码
int main()
{
int sum(char* point);
int len = 0;
char str[20];
printf("请输入要求长度的字符串:");
scanf("%s", str);
len = sum(str);
printf("字符串的长度是%d\n", len);
return 0;
}
int sum(char* point)
{
int number = 0;
while (*point != '\0')
{
number++;
point++;
}
return number;
}
运行结果
编写一个程序,输入月份号,输出该月的英文月名。例如,输入"3",则输出" March ",要求用指针数组处理。
运行代码
int main()
{
char* month[13] = { "illegal month","January","February","March","April","May","June","July","August","September","October","November","December" };
int number = 0;
printf("输入月份:");
scanf("%d", &number);
if ((number <= 12) && (number >= 1))
{
printf("%d", number);
printf("月的英文是%s\n", *(month + number));
}
else
{
printf("输入错误\n");
}
}