回 帖 发 新 帖 刷新版面

主题:[讨论]这个简单程序的错误在哪啊?运行后自己还是找不到!

[[size=4]color=FF0000]这是源代码:[/color][/size]#include <stdio.h>
#define FIRST 'A'
#define LAST 'Z'
int main(void)
{
 int m,row,empty;
 int n=0;
 char letter,start;

 printf("Please enter a letter:");
 scanf("%c",&letter);
 for(;FIRST<=letter<=LAST;scanf("%c",letter))
      {
      row=letter-FIRST;
      row++;
      fot(;n<row;n++)
     {
      empty=row-n;
      empty--;
      for(m=1;m<=empty;m++)
          printf(" ");
      for(start=FIRST;start<=FIRST+n;start++)
         printf("%c",start);
      for(start-=2;start<=FIRST;start--)
         printf("%c",start);
      for(m--;m>=1;m--)
         printf(" ");
      printf("\n");
     }
      printf("Please enter a letter again:");
      }

return 0;
}
上面图片中是运行后错误提示和原来题目。

回复列表 (共3个回复)

沙发

FIRST<=letter<=LAST
不知道谁教你写逻辑判断语句的
C里一次只允许两个表达式比较,更多的比较要用逻辑运算符连接起来……

板凳

#include <stdio.h>
#define FIRST 'A'
#define LAST 'Z'
int main(void)
{
 int m,row,empty;
 int n=0;
 char letter=0,start=0;
 printf("Please enter a letter:");
 scanf("%c",&letter);
 getchar();
 for(;FIRST<=letter&&letter<=LAST;scanf("%c",&letter),getchar())
   {
      row=letter-FIRST;
      row++;
    for(;n<row;n++)
      {
        empty=row-n;
        empty--;
        for(m=1;m<=empty;m++)
            printf(" ");
        for(start=FIRST;start<=(FIRST+n);start++)
            printf("%c ",start);
 //       for(start-=2;start<=FIRST;start--)
 //           printf("%c",start);
        for(m--;m>=1;m--)
         printf(" ");
       printf("\n");
     }
     printf("Please enter a letter again:");
   }

return 0;
}
可以打印出从A到输入字符的全部字母,不明白你为什么当start='B'以前的输出,还要start--,那样不就死循环了吗,另外原题目看不到,我按我的理解些的

3 楼


谢谢啊,问题找到了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册