pintia上的一题 ,新生求助
#include<stdio.h>int main(){
char a;
int i,n,j;
scanf("%s\n",&a);
scanf("%d %d",&i,&n);
for(j=i-1;j<=i-2+n;j++){
printf("%c",a);
}
printf("\n");
return 0;
}
应用字符数组存储从键盘输入一行字符(100个以内),用户输入整数i和n的值,编写算法输出该字符串中从第i个字符开始的n个字符。
提示:若i<1则认为i=1,若字符串剩余的字符不够n个则输出剩余的全部字符。
输入
I love China!
8 8 总是输出不了预期结果 将第5行 scanf("%s\n",&a); 改为:scanf("%s",a); 试试 风过无痕1989 发表于 2020-11-16 21:05
将第5行 scanf("%s\n",&a); 改为:scanf("%s",a); 试试
不对呀,还是什么都输出不了, 936241151 发表于 2020-11-16 23:15
不对呀,还是什么都输出不了,
那种改法,输入的字符串中间不能有空格。若中间有空格,则用下面这个程序
// 输出字符串中第 i 个字符之后的 n 个字符
#include<stdio.h>
int main()
{
char a;
int i, n, j,k = 0;
while((a = getchar()) != '\n')
k++;
scanf("%d%d", &i, &n);
for (j = i;j <= i + n;j++)
{
printf("%c", a);
}
printf("\n");
return 0;
}
风过无痕1989 发表于 2020-11-16 23:56
那种改法,输入的字符串中间不能有空格。若中间有空格,则用下面这个程序
{:10_323:} for (j = i;j <= i + n;j++) 要改成这个for (j =i-1;j<=i+n-2;j++)
但是while((a = getchar()) != '\n')
k++; 是什么意思,搞不懂这一部
页:
[1]