我是C语言的新手,请帮助我。 好吧,我正在编写一个代码来制作一个方形的星号。但我无法想象如何完全制作广场。这是我的代码:
#include<stdio.h>
int main(void){
int n;
for(n=1;n<5;n++){
printf("*");
}
for (n=1;n<4;n++){
printf("*\n");
}
for (n=1;n<=5;n++){
printf("*");
}
for(n=5;n<=1;n--){
printf("*\n");
}
getchar();
return 0;
}
谢谢!! 它应该特别像
*****
* *
* *
* *
*****
答案 0 :(得分:3)
由于您希望创建空心方块的星号:
考虑 如何创建它。经过一番思考,你会意识到:
使用它,我们可以构建:
const int n = 5;
for(int i=0; i < n; i++) {
for(int j=0; j < n; j++) {
if (i == 0 || i == n - 1) {
printf("*");
}
else if(j == 0 || j == n - 1) {
printf("*");
}
else {
printf(" ");
}
printf(" ");
}
printf("\n");
}
可以将其放入n*m
案例的一般解决方案中:
const int ROWS = 5;
const int COLS = 5;
for(int i=0; i < ROWS; i++) {
for(int j=0; j < COLS; j++) {
if (i == 0 || i == ROWS - 1) {
printf("*");
}
else if(j == 0 || j == COLS -1) {
printf("*");
}
else {
printf(" ");
}
printf(" ");
}
printf("\n");
}
答案 1 :(得分:2)
你让它变得过于复杂 - 试试这个:
#include <stdio.h>
int main(void)
{
printf("*****\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("*****\n");
return 0;
}
答案 2 :(得分:1)
#include <stdio.h>
#include <string.h>
#define LINE_SIZE 32
int main(void){
int i, n = 5;
char line1[LINE_SIZE] = {0}, line2[LINE_SIZE] = {0};
memset(line1, ' ', sizeof(line1)-1);
memset(line1+sizeof(line1)-n-1, '*', n);
memcpy(line2, line1, sizeof(line1));
memset(line2+sizeof(line2)-n, ' ', n-2);
puts(line1);
for(i = n-2; i ; --i)
puts(line2);
puts(line1);
return 0;
}
答案 3 :(得分:0)
void print_square(int size)
{
int i;
int j;
for(i = 0; i < size; i++)
{
printf("*");
}
printf("\n");
for(i = 1; i < size - 1; i++)
{
printf("*");
for(j = 1; j < size - 1; j++)
{
printf(" ");
}
printf("*");
printf("\n");
}
for(i = 0; i < size; i++)
{
printf("*");
}
printf("\n");
}
答案 4 :(得分:0)
#include<stdio.h>
main()
{
int n;
for(n=1;n<4;n++){
printf("*");
}
for (n=1;n<4;n++){
printf("* *\n");
}
for (n=1;n<=5;n++){
printf("*");
}
for(n=5;n<4;n--){
printf("*\n");
}
getch();
}
答案 5 :(得分:0)
#include<stdio.h>
#include<string.h>
#define row 70
#define coloumn 70
#define buff_size row*coloumn
int draw_Box(int x,int y,int height,int width,int pixel_width,char *);
typedef struct
{
char r;
char g;
char b;
char a;
}rgba_t;
typedef struct
{
int x;
int y;
int height;
int width;
int pixel_width;
char * base_ptr;
}box_t;
rgba_t *rgba_ptr;
unsigned char data[buff_size]={1};
void main()
{
long unsigned int status,i,j=0;
memset(data,' ',sizeof(data));
if(status = draw_Box(28,28,15 ,15,3,data))
{
printf("out of boundary");
return ;
}
for(i=0;i<buff_size;i++)
{
if(i%coloumn==0)
{
if(i==0)
{
}
else
{
printf("%3d\n\n",(j++));
}
}
printf("%2c ",data[i]);
}
printf("%3d\n\n",j);
for(i=0;i<coloumn;i++)
{
printf("%2d ",i);
}
return ;
}
int draw_Box(int x,int y,int height,int width,int thick,char *base_ptr)
{
int x1,y1,i,j;
x1 = x + height-1;
y1 = y + width-1;
// char *box_base_ptr = (base_ptr+((x*10)+y));
if((x1)>row || (y1) >coloumn)
{
return 1;
}
#if 1
for(j=0;j<thick;j++)
{
for(i=x+j;i<=x1-j;i++)
{
*(base_ptr+(i*coloumn)+y+j)=0x31+j;
*(base_ptr+(i*coloumn)+y1-j)=0x31+j;
}
}
#endif
#if 1
for(j=0;j<thick;j++)
{
for(i=y+1+j;i<y1-j;i++)
{
*(base_ptr+((x+j)*coloumn)+i)=0x31+j;
*(base_ptr+((x1-j)*coloumn)+i)=0x31+j;
}
}
#endif
return 0;
// for(i=x;)
}