广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 12770 个阅读者
 
<< 上页  1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

编译情形这就是我编译的结果
请指教
谢谢




#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int   i=1,sum=0;    
  start:
      sum+=i;
      i+=2;
      printf("%d",i);
      if(i<100)
     
  {
      printf("+");
      goto start;
  }
  printf("=%d\n",sum);
  system("pause");
  return 0;
}          

以上是大大的写法
虽然计算结果没错
但就是多了一个101及少了1
小弟指的就是这个
谢谢


[ 此文章被csr在2011-01-31 21:45重新编辑 ]



献花 x0 回到顶端 [10 楼] From:台湾中华电信 | Posted:2011-01-31 21:05 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 csr 于 2011-01-31 21:05 发表的 : 到引言文
[attachment=727415]这就是我编译的结果
请指教
谢谢

以下是我用另一种方式写出来的程式
它也是另一种的奇数和

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i=1,sum=0;
  printf("i   总和 \n");
  printf("\n");
  for(i;i<=100;i+=2)
  {
      sum+=i;
      printf("%d     %d\n",i,sum);
  }
  system("pause");
  return 0;
}


[ 此文章被csr在2011-02-01 14:07重新编辑 ]


献花 x0 回到顶端 [11 楼] From:台湾行政院研考会 | Posted:2011-01-31 21:10 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

复制程式
int main(void)
{
  int   i=1,sum=0;    
  start:
      sum+=i;
      printf("%d",i);

      i+=2;
      if(i<100)
     
  {
      printf("+");
      goto start;
  }
  printf("=%d\n",sum);
  system("pause");
  return 0;
}     


恩...
献花 x1 回到顶端 [12 楼] From:台湾中华电信 | Posted:2011-02-01 09:50 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

bug终于让大大帮小弟改进
看了大大程式码后
真才了解写程式原来步骤一步都不能有疏忽
否则全盘皆墨
小弟以后一定会更全盘的去考量
希望大大这神来一笔
会让小弟在学c语言时
会更加小心与思考
再次对大大至敬
感恩再三
谢谢
以后若小弟有不懂之处
希望大大还能适时对小弟施教

大大你好
底下这会出现两个+
不知要如何改
谢谢
程式码如下
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int   i=0,sum=0,;
  start:
      i+=1;
      if(i%2==1)
      sum+=i;
      if(i%2==1)
      printf("%d",i);
      if(i<100)  
  {
  printf("+");
  goto start;
  }
  printf("=%d\n",sum);
  system("pause");
  return 0;
}  



[ 此文章被csr在2011-02-01 17:55重新编辑 ]


献花 x0 回到顶端 [13 楼] From:台湾中华电信 | Posted:2011-02-01 14:04 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

原因也很简单,问题是因为您不管是奇数还是偶数,都会走到printf("+")。

所以显示"+"应该是有真的加值进来时,才显示"+"才对。

所以简单作法是
复制程式
  if(i<100 &&(i%2 == 1) )   
  {
    printf("+");
    goto start;
  }

目前手头没有compiler可以测,所以您可以先玩玩看。

如果不行,那就记得修改的条件是「有加入的值,才显示"+"」但是这个要注意头尾的问题。

个人还是建议不要用goto当回圈使用。

希望对您有帮助~~ 表情

我比较偏好的写法如下:
复制程式
int main(void)
{
  int   i=0,sum=0,; 
  start:
       i+=1;
      if(i%2 == 0) {
        goto start;
      }
     
      sum+=i;
      printf("%d",i);
      if(i<100 && i != 99)   
     {
        printf("+");
        goto start;
      }
      printf("=%d\n",sum);
      system("pause");
      return 0;
}   


恩...
献花 x0 回到顶端 [14 楼] From:台湾台湾固网 | Posted:2011-02-03 10:59 |
星辰雪
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x0 鲜花 x82
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

原来还有这一招
可以使用 goto
跳回去 start
真不错
可以学习一下
我好像比较少
使用到 goto


「在现实孤独而痛苦的我啊,跟随着她走吧!因为你就像是落叶,毫无目的的落下,而她是只属于你的那阵风,将带你的心飞向自由。」
献花 x0 回到顶端 [15 楼] From:台湾中华电信 | Posted:2011-02-03 11:52 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-02-03 10:59 发表的 : 到引言文
原因也很简单,问题是因为您不管是奇数还是偶数,都会走到printf("+")。
所以显示"+"应该是有真的加值进来时,才显示"+"才对。
所以简单作法是
[code] if(i<100 &&(i%2 == 1) )  
.......

大大
不可以耶
编译出来如下



另外大大写的就ok
真是佩服
小弟要多努力逻辑思考一下
谢谢


[ 此文章被csr在2011-02-04 09:09重新编辑 ]


献花 x0 回到顶端 [16 楼] From:台湾中华电信 | Posted:2011-02-04 08:57 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

不好意思,我忘记您的作法会出现只有跑一次的问题XDDD

如使用您的方式,可以用的code如下:
复制程式
  if(i<100)   
  {
    if(i%2 == 1 && i != 99)
    {
       printf("+");
    }
    goto start;
  }

还有,最后还是老生常谈,回圈非必要时,少用goto来玩。
不然会很常在除错XDD。
for...do while的反而会比较好抓XDD


恩...
献花 x1 回到顶端 [17 楼] From:台湾中华电信 | Posted:2011-02-08 10:27 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-02-08 10:27 发表的 : 到引言文
不好意思,我忘记您的作法会出现只有跑一次的问题XDDD

如使用您的方式,可以用的code如下:
复制程式
  if(i<100)   
  {
    if(i%2 == 1 && i != 99)
    {
       printf("+");
    }
    goto start;
  }

还有,最后还是老生常谈,回圈非必要时,少用goto来玩。
不然会很常在除错XDD。
for...do while的反而会比较好抓XDD

测试后一切OK
大大可真是高手
小弟佩服的五体投地
看来
小弟对于语言逻辑慨念要好好多加强啰
不过
是否可请教大大一个问题
那就是书本上的范例大约五六成都看的懂
但是题目一来那就一头雾水不知如何了
像这样
是不是该加强那方面的学习
才能如大大这样手到擒来不费吹灰之力
谢谢


献花 x0 回到顶端 [18 楼] From:台湾中华电信 | Posted:2011-02-09 20:49 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

高手不敢称~目前也才等ˋ级3而已XDDD

其实没什么别的方法,就多看、多听、多问、多做,最重要的是多想

想不通,找管道问,问题写的清楚,就有人愿意帮忙噜^^m

想完后再问,比较会知道自己思路上少考虑哪些部分

这只是自己短短3年的学习心得~~

共勉之~~

希望对您有帮助XDDD

PS.书上范例不一定都能用,所以拿到手的时候,建议先想想看他为何要这样写,那这样写能不能用。不确定的话就用编辑器来debug,边debug就知道他哪里的逻辑错了。


恩...
献花 x1 回到顶端 [19 楼] From:台湾中华电信 | Posted:2011-02-11 08:52 |

<< 上页  1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.070868 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言