LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 688|回复: 8

理解哪里错了 ?

[复制链接]
发表于 2004-9-20 03:27:18 | 显示全部楼层 |阅读模式
main()
{
  enum cc { mon,tue,wed,thu,fri,sat,sun } month[31],j;
  int i;
  j=mon;
  for (i=1;i<=30;i++)
  {
    month=j;
    j++;
    if ( j > sat ) j=mon;
  }
  for (i=1;i<=30;i++)
  {
    switch ( month )
    {
      case sun:printf(" %2d %c\t",i,'sun'); break;
      case mon:printf(" %2d %c\t",i,'mon'); break;
      case tue:printf(" %2d %c\t",i,'tue'); break;
      case wed:printf(" %2d %c\t",i,'wed'); break;
      case thu:printf(" %2d %c\t",i,'thu'); break;
      case fri:printf(" %2d %c\t",i,'fri'); break;
      case sat:printf(" %2d %c\t",i,'sat'); break;
      default:break;
    }
  }
  printf("\n");
}


cc.c:18:55: warning: multi-character character constant
cc.c:19:55: warning: multi-character character constant
cc.c:20:55: warning: multi-character character constant
cc.c:21:55: warning: multi-character character constant
cc.c:22:55: warning: multi-character character constant
cc.c:23:55: warning: multi-character character constant
cc.c:24:55: warning: multi-character character constant


编译不过,,请高手们指正哪里出错了 ?? 我的想法如何实现 ?
发表于 2004-9-20 07:38:57 | 显示全部楼层
不能写j++;这样的语句

[PHP]
#include "stdio.h"
main()
{
enum cc { mon=1,tue,wed,thu,fri,sat,sun };
cc month[31];
int i,t=1;
for (i=1;i<=30;i++)
{
month=cc(t);
t++;
if ( t > 7 ) t=1;
}
for (i=1;i<=30;i++)
{
        cc we=month;
switch (we)
{
case sun: printf(" %2d %s\t",i,"sun"); break;
case mon: printf(" %2d %s\t",i,"mon"); break;
case tue: printf(" %2d %s\t",i,"tue"); break;
case wed: printf(" %2d %s\t",i,"wed"); break;
case thu: printf(" %2d %s\t",i,"thu"); break;
case fri: printf(" %2d %s\t",i,"fri"); break;
case sat: printf(" %2d %s\t",i,"sat"); break;
default:break;
}

}
printf("\n");
}

[/PHP]
发表于 2004-9-20 09:48:54 | 显示全部楼层
正确的代码:
int main(void)
{
        enum cc { mon,tue,wed,thu,fri,sat,sun } month[31],j;
        int i;
        j=mon;

        for (i=1;i<=30;i++)
        {
                month=j;
                j++;
                if ( j > sun ) j=mon;
        }

        for (i=1;i<=30;i++)
        {
                switch ( month )
                {
                        case sun: printf(" %2d %s\t",i,"sun"); break;
                        case mon: printf(" %2d %s\t",i,"mon"); break;
                        case tue: printf(" %2d %s\t",i,"tue"); break;
                        case wed: printf(" %2d %s\t",i,"wed"); break;
                        case thu: printf(" %2d %s\t",i,"thu"); break;
                        case fri: printf(" %2d %s\t",i,"fri"); break;
                        case sat: printf(" %2d %s\t",i,"sat"); break;
                        default:break;
                }
        }
        printf("\n");
        return 0;
}
 楼主| 发表于 2004-9-21 02:35:54 | 显示全部楼层
最初由 koala114 发表
不能写j++;这样的语句

[PHP]
#include "stdio.h"
main()
{
enum cc { mon=1,tue,wed,thu,fri,sat,sun };
cc month[31];
int i,t=1;
for (i=1;i<=30;i++)
{
month=cc(t);
t++;
if ( t > 7 ) t=1;
}
for (i=1;i<=30;i++)
{
        cc we=month;
switch (we)
{
case sun: printf(" %2d %s\t",i,"sun"); break;
case mon: printf(" %2d %s\t",i,"mon"); break;
case tue: printf(" %2d %s\t",i,"tue"); break;
case wed: printf(" %2d %s\t",i,"wed"); break;
case thu: printf(" %2d %s\t",i,"thu"); break;
case fri: printf(" %2d %s\t",i,"fri"); break;
case sat: printf(" %2d %s\t",i,"sat"); break;
default:break;
}

}
printf("\n");
}

[/PHP]



编译不过

cc.c: In function `main':
cc.c:15: `we' undeclared (first use in this function)
cc.c:15: (Each undeclared identifier is reported only once
cc.c:15: for each function it appears in.)
make: *** [cc.o] Error 1
 楼主| 发表于 2004-9-21 02:43:56 | 显示全部楼层
最初由 bzimage 发表
正确的代码:



      case sun: printf(" %2d %s\t",i,"sun" );break;
      case mon: printf(" %2d %s\t",i,"mon" );break;
      case tue: printf(" %2d %s\t",i,"tue" );break;
      case wed: printf(" %2d %s\t",i,"wed" );break;
      case thu: printf(" %2d %s\t",i,"thu" );break;
      case fri: printf(" %2d %s\t",i,"fri" );break;
      case sat: printf(" %2d %s\t",i,"sat" );break;

为什么红色部分不可以改成' ' ??? 是不是单字符就用' ' ,字符串就用" "  ??
发表于 2004-9-21 07:00:40 | 显示全部楼层
我能通过阿!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2004-9-22 19:34:10 | 显示全部楼层
对呀!我知道字符串常量要用双引号!:)谢谢了!:)
发表于 2004-9-22 19:34:11 | 显示全部楼层
对呀!我知道字符串常量要用双引号!:)谢谢了!:)
请把着贴删掉!重复了!对不起!:)
发表于 2004-9-22 19:40:26 | 显示全部楼层
着是不是C++语言!我用TC编译不能通过呀!?:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表