求大神帮忙,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; } ---------------------------------- 是不是没搞清楚循环的顺序啊还是循环语法有错误,那应该怎么写?
展开
2个回答
展开全部
修改后源程序如下: #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; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询