首页 > 试题广场 >

小飞机

[编程题]小飞机
  • 热度指数:250063 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}KiKi学会了在屏幕输出信息,他想输出一架小飞机(形如下图所示,仅由空格、换行和半角星号构成)。请帮他编写程序输出这架小飞机。

输入描述:
\hspace{15pt}本题没有任何输入。


输出描述:
\hspace{15pt}输出一共六行,表示你所绘制的小飞机。

备注:
本题已于下方时间节点更新,请注意题解时效性:
1. 2025-10-24 优化题面文本与格式。
我不会用循环,我只会纯输出。加油!
#include <stdio.h>

int main(){
    printf("     **     \n");
    printf("     **     \n");
    printf("************\n");
    printf("************\n");
    printf("    *  *     \n");
    printf("    *  *     \n");
    
    return 0;
}
发表于 2020-04-13 22:12:18 回复(8)
#include<stdio.h>
 int main()
 {
     int j = 0, i = 0;
         for (j = 0; j < 6; j++)
         {
             for (i = 0; i < 12; i++)
             {
                 if ((i == 5 || i == 6) && (j == 0 || j == 1))
                 {
                     printf("*");
                 }
                 else if (j == 2 || j == 3)
                 {
                     printf("*");
                 }
                 else if ((j == 4 || j == 5) && (i == 4 || i == 7))
                 {
                     printf("*");
                 }
                 else
                 {
                     printf(" ");
                 }
             }
             printf("\n");
         }
     return 0;
 }
   
 
编辑于 2022-02-12 12:11:00 回复(4)
//下面的兄弟们来新手区炸鱼来了
public class Main{
    public static void main(String[] args){
        System.out.println("     **");
        System.out.println("     **");
        System.out.println("************");
        System.out.println("************");
        System.out.println("    *  *");
        System.out.println("    *  *");

    }
}
发表于 2021-10-15 10:07:21 回复(0)
arr = []

arr.append('**'.center(12,' '))
arr.append('*'*12)
arr.append('*  *'.center(12,' '))

for i in arr:
    print(i)
    print(i)


发表于 2020-04-24 11:42:16 回复(2)
#include<iostream>
#include<vector>
using namespace std;

int main() {
    vector<string> str { "     **     " ,"************" ,"    *  *    " };
    for (int i = 0;i < 3;i++) {
        for (int j = 0; j < 2; j++) {
            cout << str[i] << endl;
        }    
    }
    return 0;
}
c++的写法

编辑于 2020-04-30 09:49:48 回复(5)
#include <bits/stdc++.h>
using namespace std;
int main()
{
for(int i=0;i<11;i++){
      if(i%2==0){
	  	 printf("\n");
	  }
	if(i==1||i==3){
	printf("     **\n");	
		
	}
	if(i==5||i==7){
		printf("************\n");	
			
		}
	if(i==9||i==11){
			printf("    *  *\n");	
				
			}	
}
return 0;

}为啥我这个不行啊,有没有大佬捞捞我
发表于 2021-11-17 17:51:05 回复(2)
void Print1(){
     cout<<"     **     "<<endl;
 }
 void Print2(){
     cout<<"************"<<endl;
 }
 void Print3(){
     cout<<"    *  *    "<<endl;
 }
 int main(){
     Print1();
     Print1();
     Print2();
     Print2();
     Print3();
     Print3();
 }
编辑于 2022-02-12 12:11:14 回复(0)
#include <stdio.h>
int main()
{
    printf("     **     \n");
    printf("     **     \n");
    printf("************\n");
    printf("************\n");
    printf("    *  *    \n");
    printf("    *  *    \n");
    return 0;
}

发表于 2020-03-08 19:41:06 回复(1)
#include <stdio.h>

int main()
{
    printf("%7s\n", "**");
    printf("%7s\n", "**");
    printf("************\n");
    printf("************\n");
    printf("%8s\n", "*  *");
    printf("%8s\n", "*  *");
    return 0;
}
发表于 2023-10-31 22:15:34 回复(0)
print(' '*5+'**'+' '*5)
print(' '*5+'**'+' '*5)
print('*'*12)
print('*'*12)
print(' '*4+'*  *'+' '*4)
print(' '*4+'*  *'+' '*4)
#加号拼接字符串
print('{:^12}'.format('**'))
print('{:^12}'.format('**'))
print('*'*12)
print('*'*12)
print('{:^12}'.format('*  *'))
print('{:^12}'.format('*  *'))
#format居中的格式化输出


发表于 2022-04-28 21:21:53 回复(0)
public class Main {
    public static void main(String[] args) {
        for (int i = 0; i < 6; i++) {
            switch (i) {
                case 0:
                case 1:
                    Main.setSpace(5);
                    Main.setCross(2);
                    System.out.println("");
                    break;
                case 2:
                case 3:
                    Main.setCross(12);
                    System.out.println("");
                    break;
                default:
                    Main.setSpace(4);
                    Main.setCross(1);
                    Main.setSpace(2);
                    Main.setCross(1);
                    System.out.println("");
                    break;
            }
        }
    }

    public static void setSpace(int num) {
        for (int i = 0; i < num; i++) {
            System.out.print(" ");
        }
    }

    public static void setCross(int num) {
        for (int i = 0; i < num; i++) {
            System.out.print("*");
        }
    }
}

发表于 2022-01-23 00:22:25 回复(0)
public class Main{
    public static void main(String[] args){
        printA();
        printA();
        printB();
        printB();
        printC();
        printC();
    }
        static void printA(){
            System.out.println("     **");
        }
        static void printB(){
            System.out.println("************");
        }
        static void printC(){
            System.out.println("    *  *");
        }
    
}
发表于 2022-04-05 18:02:01 回复(0)
#include <iostream>
using namespace std;

int main() {
	cout << "     **     " << endl;
	cout << "     **     " << endl;
	cout << "************" << endl;
	cout << "************" << endl;
	cout << "    *  *    " << endl;
	cout << "    *  *    " << endl;

	return 0;
}

发表于 2021-09-14 21:33:22 回复(1)
a = []
a.append("**")
a.append("*"*12)
a.append("*  *")
for i in a:
    print("{:^12}".format(i))
    print("{:^12}".format(i))


发表于 2021-09-08 23:12:51 回复(0)
#include<stdio.h>
int main ()   {
printf("     **     \n")
prinft("     **     /n)
prinft("************/n)
prinft("************/n)
prinft(    *  *    /n)
prinft(    *  *    /n)
return  0;
}
发表于 2024-10-02 11:08:51 回复(0)
public class Main{
    public static void main(String[] args){
        for(int i=1;i<=6;i++){
            if(i<3){
                System.out.println("     **");
            }else if(i<5){
                System.out.println("************");
            }else{
                System.out.println("    *  *");
            }
        }
    }
}

发表于 2022-06-06 13:46:59 回复(0)
print('     **     ') print('     **     ') print('************') print('************') print('    *  *    ') print('    *  *    ')
发表于 2020-04-11 16:25:20 回复(2)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#define PLANE_ROWS 6
#define PLANE_MAX_COLS 12
#define BINARY_BASE 2
#define ASCII_STAR 42
#define ASCII_SPACE 32

typedef void (*PlaneOutputFunc)(int);
typedef int (*ValidationFunc)(const char*);
typedef void (*MemoryOperationFunc)(void*);

struct PlaneData {
    unsigned char row_data[PLANE_ROWS][PLANE_MAX_COLS + 1];
    int row_lengths[PLANE_ROWS];
    struct {
        int current_row;
        volatile int output_count;
    } state;
    PlaneOutputFunc output_func;
};

struct PlaneConfig {
    struct PlaneData* data;
    ValidationFunc validator;
    MemoryOperationFunc cleanup_func;
    void** pointer_array;
    int array_size;
};

void recursive_output_row(struct PlaneData* data, int row, int col);
int fibonacci(int n);
void complex_pointer_arithmetic(char*** ptr, int depth);

void encode_plane_data(struct PlaneData* data) {
    const char* plane_pattern[PLANE_ROWS] = {
        "     **",
        "     **",
        "************",
        "************",
        "    *  *",
        "    *  *"
    };

    for (int i = 0; i < PLANE_ROWS; i++) {
        int len = 0;
        while (plane_pattern[i][len] != '\0') {
            data->row_data[i][len] = (unsigned char)plane_pattern[i][len];
            len++;
        }
        data->row_data[i][len] = '\0';
        data->row_lengths[i] = len;
    }
}

struct PlaneConfig* allocate_complex_config() {
    struct PlaneConfig* config = (struct PlaneConfig*)malloc(sizeof(
                                     struct PlaneConfig));
    if (!config) return NULL;

    config->data = (struct PlaneData*)calloc(1, sizeof(struct PlaneData));

    config->array_size = 4;
    config->pointer_array = (void**)malloc(config->array_size * sizeof(void*));

    for (int i = 0; i < config->array_size; i++) {
        config->pointer_array[i] = malloc(16);
        memset(config->pointer_array[i], i + 1, 16);
    }

    return config;
}

void recursive_output_row(struct PlaneData* data, int row, int col) {
    if (row >= PLANE_ROWS) return;

    if (col < data->row_lengths[row]) {
        putchar((data->row_data[row][col] == '*') ?
                (ASCII_STAR) : (ASCII_SPACE));
        recursive_output_row(data, row, col + 1);
    } else {
        putchar('\n');
        recursive_output_row(data, row + 1, 0);
    }
}

int fibonacci(int n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

void complex_pointer_arithmetic(char*** ptr, int depth) {
    if (depth <= 0) return;

    char** temp = *ptr;
    for (int i = 0; i < depth; i++) {
        char* new_str = (char*)malloc(32);
        sprintf(new_str, "Depth: %d, Fibonacci: %d", i, fibonacci(i % 10));
        temp[i] = new_str;
    }
}

int always_valid(const char* str) {
    volatile int result = 1;
    for (int i = 0; i < 100; i++) {
        result ^= (i % 2);
    }
    return result;
}

void complex_cleanup(void* ptr) {
    struct PlaneConfig* config = (struct PlaneConfig*)ptr;

    for (int i = 0; i < config->array_size; i++) {
        free(config->pointer_array[i]);
    }
    free(config->pointer_array);
    free(config->data);
    free(config);
}

void plane_output_function(int row) {
    static const char* lines[] = {
        "     **",
        "     **",
        "************",
        "************",
        "    *  *",
        "    *  *"
    };

    if (row >= 0 && row < PLANE_ROWS) {
        printf("%s\n", lines[row]);
    }
}

void output_plane_complex() {
    struct PlaneConfig* config = allocate_complex_config();

    if (!config || !config->data) {
        fprintf(stderr, "Memory allocation failed!\n");
        return;
    }

    config->validator = always_valid;
    config->cleanup_func = complex_cleanup;
    config->data->output_func = plane_output_function;

    encode_plane_data(config->data);

    char*** triple_ptr = (char***)malloc(sizeof(char**));
    *triple_ptr = (char**)malloc(5 * sizeof(char*));

    complex_pointer_arithmetic(triple_ptr, 5);

    recursive_output_row(config->data, 0, 0);

    volatile int unused_value = 0;
    for (int i = 0; i < 1000; i++) {
        unused_value += (i * i) % 7;
    }

    for (int i = 0; i < 5; i++) {
        free((*triple_ptr)[i]);
    }
    free(*triple_ptr);
    free(triple_ptr);

    config->cleanup_func(config);
}

int main() {
    volatile int start_marker = 0xDEADBEEF;

    output_plane_complex();

    start_marker ^= 0xCAFEBABE;

    int fib_result = fibonacci(12);

    register int reg_var = 0;
    for (reg_var = 0; reg_var < 100; reg_var++) {
    }

    return 0;
}

发表于 2026-01-26 19:33:48 回复(0)
#include<stdio.h>
int main()
{
    char *a[]={"     **","************","    *  *"};
    printf("%s\n%s\n%s\n%s\n%s\n%s\n",a[0],a[0],a[1],a[1],a[2],a[2]);
    return 0;  
}

发表于 2026-01-15 15:57:44 回复(0)
int main()
{
printf("     **\n");
printf("     **\n");
printf("************\n");
printf("************\n");
printf("    *  *\n");
printf("    *  *\n");

}
发表于 2024-08-14 16:26:45 回复(0)

问题信息

上传者:牛客309119号
难度:
276条回答 8011浏览

热门推荐

通过挑战的用户

查看代码
小飞机