CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

为什么有问题?我都快疯了,C语言这么难!

楼主Lingzhi_2006()2006-10-13 11:41:02 在 C/C++ / C语言 提问

#   include   <stdio.h>  
  #   define   gaoding   printf("**********************************************************\n);  
  void   main   ()  
  {  
  int   i,sum=0,ray=1;  
  i=1;  
  loop:if(i<=10000)  
    {  
    sum=sum+i;  
    i++;  
    goto   loop;  
    }  
    printf("%d\n",sum);  
    gaoding  
  leep:if(1<=32)  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
    printf("%d\n");  
  } 问题点数:40、回复次数:59Top

1 楼lj860603(跑吧,键键)回复于 2006-10-13 11:44:24 得分 10

#define   gaoding   printf("**********************************************************\n");   //右边少了个双引号  
  Top

2 楼xiaoke26(带三个表)回复于 2006-10-13 11:45:01 得分 10

if(1<=32)?  
  if(i<=32)当然先要赋值i=1  
  Top

3 楼lj860603(跑吧,键键)回复于 2006-10-13 11:45:18 得分 10

printf("%d\n");  
  =================》  
    printf("%d\n",   ray);  
  Top

4 楼viornment()回复于 2006-10-13 13:44:38 得分 10

#define   gaoding   printf("**********************************************************\n")//define   语句后面是没有分号(';')的。这个错误有时候很头疼。上次就因为多了个分号,我同事Debug了1个小时左右才搞定。Top

5 楼wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)回复于 2006-10-13 13:48:48 得分 0

2个error    
  一个printf哪里少了个引号  
  另一个  
  if(i<32)   你写成1了Top

6 楼Lingzhi_2006()回复于 2006-10-13 14:26:54 得分 0

谢谢各位大哥帮助,现在可以运行了.  
    #   include   <stdio.h>  
  #   define   gaoding   printf("**********************************************************\n")  
  void   main   ()  
  {  
  int   i,sum=0,ray=1;  
  i=1;  
  loop:if(i<=10000)  
    {  
    sum=sum+i;  
    i++;  
    goto   loop;  
    }  
    printf("%d\n",sum);  
    gaoding;  
    i=1;  
  leep:if(i<=12)  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
    printf("%d\n",ray);  
  }  
  Top

7 楼Jokar(贪睡鼠)回复于 2006-10-13 14:32:44 得分 0

原来lz稀饭这样用   循环~呵呵Top

8 楼carbonic(燃烧吧!胸毛)回复于 2006-10-13 14:41:09 得分 0

少见,呵呵Top

9 楼husiluanxiang()回复于 2006-10-13 16:11:58 得分 0

LZ可能是在学goto语句。Top

10 楼yiyiemma()回复于 2006-10-13 16:17:51 得分 0

#   include   <stdio.h>  
  #   define   gaoding   printf("**********************************************************\n);//要在\n后加"号  
  void   main   ()  
  {  
  int   i,sum=0,ray=1;  
  i=1;  
  loop:if(i<=10000)  
    {  
    sum=sum+i;  
    i++;  
    goto   loop;  
    }  
    printf("%d\n",sum);  
    gaoding  
  leep:if(1<=32)//1<=32很成立,无法结束循环,是i不是1  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
    printf("%d\n");  
  }  
   
  Top

11 楼yeknight(浪子一去不回头)回复于 2006-10-13 17:00:56 得分 0

i写成了1Top

12 楼yangxingkuan(开发者)回复于 2006-10-13 17:20:53 得分 0

楼主多努力啊,Top

13 楼xiaTao0520(飞沙)回复于 2006-10-14 04:19:02 得分 0

goto   语句可能会使程序不稳定   
  还有但也不易读懂 所以 goto   在以后的程序尽量少用!!Top

14 楼analysefirst(+++++++++=剑客++~~)回复于 2006-10-14 07:53:12 得分 0

应该以前学过BASIC吧,C不是能不先赋值就可以用的.Top

15 楼ppass(老毛)回复于 2006-10-14 07:58:39 得分 0

楼主以后一定要用   for/do/while来进行循环  
  不要使用gotoTop

16 楼xiao7cn(o(∩_∩)o... 哈哈!)回复于 2006-10-14 08:02:32 得分 0

莫非以前是搞汇编的 突然转向C这种“高级语言”有点不知所措了 呵呵Top

17 楼wanglovec(阳光飞舞)回复于 2006-10-14 09:15:25 得分 0

这么一小段程序   用那么多GOTO     牛   人Top

18 楼ilovechao1314(有点晕了)回复于 2006-10-14 10:15:41 得分 0

看完程序我疯了Top

19 楼dead_of_winter(寒冬)回复于 2006-10-14 10:21:59 得分 0

楼主是搞basic的吧   这么喜欢goto   呵呵  
  多看看提示的错误信息吧   有些错很容易调出来的Top

20 楼fuowen20(耗子)回复于 2006-10-14 10:24:39 得分 0

请问楼主,以下这句是什么意思?  
   
  #   define   gaoding   printfTop

21 楼mu_yang(穆扬)回复于 2006-10-14 10:30:45 得分 0

第一个错误在:  
  #   define   gaoding   printf("**********************************************************\n")  
  =================================================================  
  应该写  
  #   define   gaoding   printf\   ("**********************************************************\n");  
  缺少分号是许多网友已经指出了的  
  还缺少   "\"   续行标志  
  否则编译器怎么知道你的#define到第几行结束呢  
  Top

22 楼hcy13()回复于 2006-10-14 10:34:26 得分 0

本人看来也许是你定义的变量有问题  i从1加到10000啊  老兄  定义int   好象不够吧  
   
  Top

23 楼zhj2006()回复于 2006-10-14 11:09:28 得分 0

 
  刚注册了个号,也来说句话,以后还要大家多照顾哈!  
   
  Top

24 楼Lingzhi_2006()回复于 2006-10-14 11:11:47 得分 0

10000要用 long   int   来定义!Top

25 楼greyboy2(greyboy)回复于 2006-10-14 14:27:08 得分 0

顶上  
  直接用   long   吧Top

26 楼liqingle(清乐)回复于 2006-10-14 14:56:58 得分 0

int类型的最大值是65535.  
  sum应定义为long  
  做程序的时候"仔细"是一个好习惯..Top

27 楼liqingle(清乐)回复于 2006-10-14 14:57:51 得分 0

建议C语言里不要使用GOTO语句..Top

28 楼sun_horizon()回复于 2006-10-14 15:44:03 得分 0

GOTO??  
  yun!!Top

29 楼kingzeng520()回复于 2006-10-14 15:46:18 得分 0

c语言里最好不用GOTO,很容易会造成死循环Top

30 楼lovemoo(偶然)回复于 2006-10-14 18:01:56 得分 0

-   -.........循环怎么能这样用啊  
   
  Top

31 楼tyronedong(雨衣)回复于 2006-10-14 18:39:05 得分 0

少用goto语句,能不用就不用。Top

32 楼dadi0189(冰雨)回复于 2006-10-14 18:52:07 得分 0

楼主为什么要这样循环啊,代码看起来真不爽。Top

33 楼jintianguozhao()回复于 2006-10-14 20:03:11 得分 0

printf("%d\n");没有变量  
  最好不要用goto作环这种形式不适应大程序Top

34 楼woaihuwu(老鼠)回复于 2006-10-14 20:16:15 得分 0

以后还是用循环好得多啊!!~~~~~~~~~~~~~~~~~~~呵呵(以后不要再犯这种令  
  人好笑又好气的错误喔!~~~~~~~~~)  
  Top

35 楼Smidin(冰刃无痕)回复于 2006-10-14 20:29:19 得分 0

shiwangTop

36 楼yu_xiao()回复于 2006-10-14 20:51:21 得分 0

现在代码里不是要尽量少用GOTO语句吗?这位老兄怎么还用啊?  
  Top

37 楼wanfustudio(雁南飞:知识之败,慕虚名而不务潜修也)回复于 2006-10-14 21:26:20 得分 0

goto可以用  
  规范是死的,人是活得  
   
  问问林鋭,他好像说,goto本身没有错,是用的人的问题  
   
  goto在深层嵌套里面能嘎的一下蹦出来  
   
  jmp?也行Top

38 楼fanyi2003(小小鸟)回复于 2006-10-14 21:53:36 得分 0

leep:if(1<=32)  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
   
   
  死循环!!Top

39 楼johnhan2006(边城浪子)回复于 2006-10-14 22:04:25 得分 0

在C语言中,尽量避免使用GOTO语句。  
  但有些时候,稍微用点GOTO语句也非常的方便  
  你的程序中假如在leep:if(1<=32)之前赋值i为1时,  
  那你就应该声明ray为double类型的,因为在这个循环中  
  算出的结果非常之大。Top

40 楼angel725()回复于 2006-10-14 22:07:37 得分 0

leep:if(1<=32)  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
   
   
  死循环!!  
   
  楼上的,这是死循环吗??  
  我看不是哦??  
   
  刚学一段时间,给讲讲怎么死循环了》》??Top

41 楼limenglin()回复于 2006-10-14 23:57:26 得分 0

请楼上的同学解释一下   为什么要写   “1   <=   32”而不是   “i   <=   32”好么!  
  p   :   这样的问题就不要再提了.....Top

42 楼limenglin()回复于 2006-10-14 23:59:09 得分 0

写成   1   <=   32   还不如写成   true   ,还能显得专业点......Top

43 楼XMine(影雷)回复于 2006-10-15 01:00:02 得分 0

GOTO应该说在适合的时候用挺不错的,简单,有效.少用应该说成慎用.  
  并且,这个样子LOOP循环下来,估计也只会出现在教材里面,如果楼主想用程序吃饭建议再把数学方面的知识系统一下并结合着用上来.这样一个一个去加上循环上去,为什么不用等差数列?再有就是上面也提了产生溢出的事.Top

44 楼meqxx()回复于 2006-10-15 08:32:22 得分 0

结帖!!Top

45 楼mountainking1986()回复于 2006-10-15 12:41:45 得分 0

不是高级程序员,建议不要用GOTOTop

46 楼yafizyh(亚斐)回复于 2006-10-15 14:29:26 得分 0

自找麻烦。Top

47 楼hanxuaiztt(依旧飘流)回复于 2006-10-15 14:44:55 得分 0

#   include   <stdio.h>  
  #   define   gaoding   printf("**********************************************************\n");  
  void   main   ()  
  {  
  int   i,sum=0,ray=1;  
  i=1;  
  loop:if(i<=10000)  
    {  
    sum=sum+i;  
    i++;  
    goto   loop;  
    }  
    printf("%d\n",sum);  
  /*   gaoding是什么东西?我觉得可以不用*/  
  i=1;  
  leep:if(i<=32)  
    {  
    ray=ray*i;  
    i++;  
    goto   leep;  
    }  
    printf("%d\n");  
  }  
  最好不要随便用gotoTop

48 楼hanxuaiztt(依旧飘流)回复于 2006-10-15 14:48:21 得分 0

#   define   gaoding   printf("**********************************************************\n");  
  我明白了  
   
  你知道的东西很多,但我觉得你不是一个好的程序员Top

49 楼wodong()回复于 2006-10-15 16:47:03 得分 0

#   define   gaoding   printf("**********************************************************\n");  
  请教断行一定要用/么?  
  还有两行的define语句用不用分号?Top

50 楼jbczj(人见人爱)回复于 2006-10-15 17:14:36 得分 0

c语言语法很简单的Top

51 楼pilixuanke(轩客)回复于 2006-10-15 18:34:23 得分 0

建议先看看基本的C语言的书籍。补上基础之后再写程序就明白多了。Top

52 楼sunbird69(太阳鸟)回复于 2006-10-15 18:43:34 得分 0

goto   语句知道怎么用就行了  
  但循环最好别用gotoTop

53 楼white_snowbird(武汉小学)回复于 2006-10-15 21:32:03 得分 0

程序风格不好,不要光为了完成作业写程序。想好了再写。Top

54 楼fanswc(婉君)回复于 2006-10-15 22:10:22 得分 0

:angel725()   (   一级(初级))   信誉:100   2006-10-14   22:07:37   得分:0  
  ?    
   
  leep:if(1<=32)  
  {  
  ray=ray*i;  
  i++;  
  goto   leep;  
  }  
   
   
  死循环!!  
   
  楼上的,这是死循环吗??  
  我看不是哦??  
   
  刚学一段时间,给讲讲怎么死循环了》》??  
   
   
   
  你说1是不是小于32?那么不停的在那里goto,goto到判断1是否小于32,然后执行到goto   leep;又来判断1是否小于32,你说这是不是死的Top

55 楼mu_yang(穆扬)回复于 2006-10-15 22:40:01 得分 0

wodong():  
  #   define   gaoding   printf("**********************************************************\n");  
  请教断行一定要用/么?  
  还有两行的define语句用不用分号?  
  --------------------------  
  我认为一定要用.(断行是"\"吧?)  
  因为预处理器必须要知道"gaoding"代表哪个字符串  
  一般不可能判断出到第几行结束  
  #define不是语句,是预处理命令  
  本身是不加";"的  
  但如果你的宏替代的是两个c语句的话  
  ";"是c语句的不是#define的  
  比如  
  #define   A   B\  
  C\  
  D  
  与  
  #define   A   B;\  
  C;\  
  D;  
  后者带";"是因为A替代的是3个c语句  
  前者A替代的是   BCD  
  Top

56 楼gelongking()回复于 2006-10-16 14:27:50 得分 0

go   to不适合你~``呵呵```慢慢学吧```别着急~~!Top

57 楼news159()回复于 2006-10-16 18:13:48 得分 0

真佩服问的敢问,  
  答的肯答,  
  小弟佩服你们佩服得五体投地Top

58 楼wucunfu(因为楼主你吝啬,所以我还是一个三角裤衩!)回复于 2006-10-16 22:14:54 得分 0

这样的问题你也会疯的话,那你以后准备就呆在**病院吧!  
   
  是leep:if(i<=32)     而不是leep:if(1<=32)  
  是i不是1。Top

59 楼qinhaichao(摊开晒.....2007!)回复于 2006-10-17 03:17:59 得分 0

不管怎么说,问题总算解决了!Top

相关问题

关键词

得分解答快速导航

  • 帖主:Lingzhi_2006
  • lj860603
  • xiaoke26
  • lj860603
  • viornment

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo