正确代码奉上👍
#include<stdio.h>
int main()
{
int i,n;
char a[20];
gets(a);
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%s!",a);
printf("\n");
return 0;
}
题目简介:
下面是学生对于这一题的细节方面的一些想法,希望可以帮助到大家,加强大家对这一题的理解。
首先关于题目中提示:字符串*和+学生感觉没有特别的意思,不需要管这句话。若有大佬明白这一句的用处,还望在评论区指出。//感谢🙏
关于代码输入选择的错误
下面的是错误的代码!!!
#include<stdio.h>
int main()
{
int i,n;
char a[20];
scanf("%s",&a);//与正确代码的不同之处
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%s!",a);
printf("\n");
return 0;
}
这是学生第一次写的代码,与正确代码不同的地方就是输入字符串的选择不同,这种输入方式也许输入样例中的测试会正确,但是当输入的是含有空格的字符串时,就不可以,例如GO GO,这种中间含有空格的,遇到空格就认为当前字符串结束了,所以无法正确输入含有空格的字符串。
学生对于这一题的理解就到上面截至,下面是学生对于输入字符串两种方式的理解,若有兴趣,请接着往下看。
首先是第一种scanf,用%s来控制输入的是字符串,但正如我上面讲的,输入的是含有空格的字符串时,遇到空格就认为当前字符串结束了,所以无法正确输入含有空格的字符串。
但是scanf可以输入其他类型数据,不只是字符串。
其次是第二种gets(),这种输入方式可以输入含有空格的字符串,遇到回车键会停止。
但是gets()只可以输入字符串。
以上就是这篇文章的全部内容,若有帮助到你,可以我点上一个宝贵的赞👍吗?感谢🙏