|
#include<stdio.h> |
|
| 35分 |
# include <stdio.h>
void copy(char *, int, int);
int main(void)
{
int n, m;
int i;
char str[20] = {0};
printf("enter num\n");
scanf("%d %d", &n, &m);
getchar();
for (i = 0; i < n; i++)
{
scanf("%c", &str[i]);
}
copy(str, m, n);
return 0;
}
void copy(char * str, int m, int n)
{
int i;
for (i = m-1; i < n; i++)
printf("%c", str[i]);
printf("\n");
}
问题出在你输入数字之后按下的那个回车,被下面循环中的获取字符操作,存在了字符数组里,你看上去输入的是qwerty,其实应该是\nqwert并没有Y。你传进去的参数m是2,在数组中是第三个元素,即w,所以输出的内容是wert。证据就是在你的输出代码中并没有任何换行符,但是输出内容却自动换行了。在scanf2个数字之后使用getchar()接住换行符,或者使用flushall()清空缓冲区即可。 |
| 5分 |
上面有个地方讲错了啊。。。“证据就是在你的输出代码中并没有任何换行符,但是输出内容却自动换行了。”这句话是错的,,我脑残了,,请自动过滤,,。。
|
