| 
 | 
 
 
发表于 2020-11-7 09:21:09
|
显示全部楼层
 
 
 
报错帮你解决了,也能打印出两个字符了,但是不是横向的。错误的原因已经注释在代码里面了 
 
- #include <stdio.h>
 
 - //打印字母 
 
 - # define char_line 7  //每个字母的行数 
 
 - void print_I();
 
 - char** print_c();                // 同 22 行
 
  
- int main()
 
 - {
 
 -    int i,m,n;
 
 -    printf("请输入两个字符间的间隔数目(空格数目):");
 
 -    scanf("%d:",&i); 
 
 -    char** letter;
 
 -    letter = print_c();
 
 -    for(m = 0; m < char_line ; m++)
 
 -    {
 
 -             printf("%s",*(letter + m));
 
 -    }
 
 -    print_I(); // print_c()
 
 -    return 0;
 
 - }
 
  
- char** print_c()                // 修改的地方 返回值应该是char ** 而不是 char
 
 - {
 
 -    static char *letter[7] = {                 // 修改的地方, 弄成static的表示这个letter不再是临时变量了,print_c函数调用结束后,letter不会被回收
 
 -            "  #####   \n",
 
 -            "##     ##\n",
 
 -            "##       \n",
 
 -            "##       \n",
 
 -            "##       \n",
 
 -            "##     ##\n",
 
 -            "  #####   \n"};  
 
 -                     
 
 -         return letter;
 
 - }
 
  
- void print_I()
 
 - {
 
 -    printf("  ######   \n"); 
 
 -    printf("    ##     \n"); 
 
 -    printf("    ##     \n"); 
 
 -    printf("    ##     \n"); 
 
 -    printf("    ##     \n"); 
 
 -    printf("    ##     \n"); 
 
 -    printf("  ######   \n");
 
 - }
 
  复制代码 
 
 |   
 
 
 
 |