求大神帮忙,C语言:使用嵌套循环输出一个用星号绘制的矩形,但是它的长宽由用户定义。

我写的代码如下:--------------------------------#include<stdio.h>#include<stdlib.h>intmain(vo... 我写的代码如下: -------------------------------- #include <stdio.h> #include <stdlib.h> int main(void) { int x = 0; /*长度*/ int y = 0; /*宽度*/ int i = 1; int j = 1; on: printf("x="); scanf(" %d", &x); printf("y="); scanf(" %d", &y); if(x < 2 || y < 0) { printf("Please enter a right number"); goto on; } for( ; i <= x ; i++) printf("*"); /*先输出顶端的一条边*/ x -= 2; /*用来输出空格*/ for( ; j <= y ; j++) /*宽度*/ { printf("\n*"); /*先输出一个星号,后面输出空格*/ for( ; i <= x ; i++) printf(" "); /* 这个空格木有输出,问题出在哪里? */ printf("*"); /*输出完空格后要输出一个星号*/ } x += 1; /*现在到了输出最底边*/ printf("\n*"); /*先输出一个星号*/ for( ; i <= x ; i++) printf("*"); /*连续输出星号 (这个循环也木有输出,问题出在哪里?)*/ system("pause"); return 0; } ---------------------------------- 是不是没搞清楚循环的顺序啊还是循环语法有错误,那应该怎么写? 展开
 我来答
我很无聊LRT
2014-06-23 · 超过65用户采纳过TA的回答
知道答主
回答量:154
采纳率:66%
帮助的人:61.9万
展开全部
修改后源程序如下: #include<stdio.h> #include <stdlib.h> int main(void) { int x=0; /*长度*/ int y=0;/*宽度*/ int i=1; int j=1; on: printf("x="); scanf("%d", &x); printf("y="); scanf("%d", &y); if(x<2||y<0) { printf("Please enter a right number"); goto on; } for(;i<=x;i++) printf("*"); /*先输出顶端的一条边*/ x -= 2; /*用来输出空格*/ for(;j<=y-2;j++)/*宽度*/ { printf("\n*");/*先输出一个星号,后面输出空格*/ for(i=1;i<=x;i++) printf(" "); /*这个空格有输出*/ printf("*");/*输出完空格后要输出一个星号*/ } printf("\n"); x += 2; for( i = 1; i <= x ; i++) printf("*"); /*先输出顶端的一条边*/ system("pause"); printf("\n"); return 0; }
ljj1127
2014-06-23 · TA获得超过125个赞
知道答主
回答量:99
采纳率:0%
帮助的人:115万
展开全部
因为i没有重新赋值,当运行到循环那里,i的值早就超过x了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式