#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分 |
上面有个地方讲错了啊。。。“证据就是在你的输出代码中并没有任何换行符,但是输出内容却自动换行了。”这句话是错的,,我脑残了,,请自动过滤,,。。
|