#include<stdio.h>
int main() {
int i,n;
scanf("%d",&n);
for(i=1; i<=n; i++)
if(i*i<=n)
printf("%d\n",i*i);
else
break;
return 0;
}
想输入:
15
20
输出:
1 4 9
1 4 9 16
#include<stdio.h>
int main() {
int i,n;
scanf("%d",&n);
for(i=1; i<=n; i++)
if(i*i<=n)
printf("%d\n",i*i);
else
break;
return 0;
}
想输入:
15
20
输出:
1 4 9
1 4 9 16
scanf函数遇到空格就认为是一次输入,敲击回车后结束输入,所以你输入15(空格) 20(回车)后,需要用两次scanf才能把数据读完。修改后的代码如下:(如有帮助,请采纳一下,谢谢)
#include <cstdio>
int main()
{
int i,n;
while(1)
{
scanf("%d",&n);
for(i=1; i<=n; i++)
{
if(i*i<=n)
printf("%d ",i*i);
else
break;
}
printf("\n");
}
return 0;
}