huafajihe 发表于 2019-4-20 11:35:10

怎么样可以把输出的字母放在同一行而不是一列

写了一个可以用*来输出任意字母图形的代码,但是输出的字母只能在同一列,想知道怎么才能让字母在同一行输出

huafajihe 发表于 2019-4-20 11:37:07

本帖最后由 huafajihe 于 2019-4-20 11:39 编辑

好像上传不了图片

jackz007 发表于 2019-4-20 11:43:53

    只要去掉 printf() 输出序列中的回车符 '\n' 就可以了。
#include <stdio.h>

int main(void)
{
    int i                                  ;
    for(i = 0 ; i < 10 ; i ++) printf("*") ;
    printf("\n")                           ;
}

huafajihe 发表于 2019-4-20 12:29:49

jackz007 发表于 2019-4-20 11:43
只要去掉 printf() 输出序列中的回车符 '\n' 就可以了。

我有一部分代码是这样的,如果把\n去掉的话,图形输出就乱了
#include <stdio.h>

int main ()
{
        printf("请随意输入几个大写字母:");
       
        int i=1;
        char a;
        do{
               scanf("%c",&a);
              
                if(a=='A'){
                        switch(i){
                                case 1:printf("    *\n");
                                case 2:printf("   * *\n");
                                case 3:printf("*****\n");
                                case 4:printf(" *   *\n");
                                case 5:printf("*       *\n");break;
                        }
                }
                if(a=='B'){
                        switch(i){
                                case 1:printf("*****\n");
                                case 2:printf("*    *\n");
                                case 3:printf("*****\n");
                                case 4:printf("*    *\n");
                                case 5:printf("*****\n");break;
                        }       
                }       

jackz007 发表于 2019-4-20 14:02:37

本帖最后由 jackz007 于 2019-4-20 14:03 编辑

huafajihe 发表于 2019-4-20 12:29
我有一部分代码是这样的,如果把\n去掉的话,图形输出就乱了
#include



      楼主,你到底想要什么效果?就以你的代码为例,键盘输入什么字符组合,想得到什么图案,直接用 '*' 图案来描述。

Croper 发表于 2019-4-20 14:14:13

本帖最后由 Croper 于 2019-4-20 14:16 编辑

你要的大概是这种效果吧,
不过你的代码得大改,
需要使用一个字符串记录输入的文字,
另外注意一下空格和回车的位置
#include <stdio.h>

int main (){
    printf("请随意输入几个大写字母:");
    char sz;
    scanf("%s",sz);
    int i,j;
    for (i=1;i<6;++i){
            for (j=0;sz!='\0';++j){
            char a=sz;
            if(a=='A'){
                switch(i){
                  case 1:printf("    *   ");break;
                  case 2:printf("   * *    ");break;
                  case 3:printf("*****   ");break;
                  case 4:printf(" *   *");break;
                  case 5:printf("*       * ");break;
                }
            }
            if(a=='B'){
                switch(i){
                  case 1:printf(" *****   ");break;
                  case 2:printf(" *    *");break;
                  case 3:printf(" *****   ");break;
                  case 4:printf(" *    *");break;
                  case 5:printf(" *****   ");break;
                }      
            }
      }
      printf("\n");
    }
}

huafajihe 发表于 2019-4-20 17:21:25

Croper 发表于 2019-4-20 14:14
你要的大概是这种效果吧,
不过你的代码得大改,
需要使用一个字符串记录输入的文字,


谢谢
页: [1]
查看完整版本: 怎么样可以把输出的字母放在同一行而不是一列