C语言 输出正方形,不知道哪错了,求解

#include"stdio.h"main(){intn,i=1,k=1;scanf("%n",&n);for(k=1;k<=n;k++){while(i<=n){pri... #include"stdio.h"
main()
{
int n,i=1,k=1;
scanf("%n",&n);
for (k=1;k<=n;k++)
{
while(i<=n)
{ printf("*");
i++;
}
}
}
展开
 我来答
yffyeah
2013-04-10
知道答主
回答量:42
采纳率:0%
帮助的人:27.7万
展开全部
scanf里面如果想读进一个数字应该用%d
你的while里面没有输出一个回车,怎么可能是正方形呢
你就是输出了n*n个星号,你需要在while的外面printf("\n")打印一个回车
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2013-04-10 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6621万
展开全部
把scanf("%n",&n);中的%n改成%d;
在i++后的}后加两句:
printf("\n");
i=1;
就OK了。原因自己看……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伊·梵beec
2013-04-10 · TA获得超过2160个赞
知道大有可为答主
回答量:1897
采纳率:0%
帮助的人:1380万
展开全部
scanf("%n",&n);

没有%n的用法

你的程序不能输出正方形
追问
好吧...我把n改成了d,但还是输出的一排星星,没有输出正方形的星星
追答
#include"stdio.h"
main()
{
int n,i=1,k=1;
scanf("%d",&n);
for (k=1;k<=n;k++)
{
i=1;//要重新赋值,因为while中会改变i的值
while(i<=n)
{ printf("*");
i++;
}
printf("\n"); //要换行
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汐日南莘
2013-04-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7560万
展开全部
#include"stdio.h"
main()
{
int n,i=1,k=1;
scanf("%d",&n);
while(i<=n)
{
printf(" *");
i++;
}
printf("\n");
i=1;
while(i<=n-2)
{
printf(" *");
for(int j=1;j<=n-2;j++)
printf(" ");
printf(" *");
printf("\n");
i++;
}
i=1;
while(i<=n)
{
printf(" *");
i++;
}
printf("\n");
}
//有时间的话可以看看这个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wl1247l
2013-04-10
知道答主
回答量:35
采纳率:0%
帮助的人:20万
展开全部
#include <stdio.h>
int main()
{
int n,i,k=1;
scanf("%d",&n);
for (k=1;k<=n;k++)
{
if(k==1||k==n)
{
for(i=0;i<n;i++)
printf("* ");
printf("\n");
}
else
{
printf("* ");
for(i=0;i<n-2;i++)
printf(" ");
printf("* ");
printf("\n");
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式