| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1591 人关注过本帖
标题:给100分,能准确运行的时候就行,诚心感谢
只看楼主 加入收藏
玉面狂龙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:156
注 册:2012-2-23
收藏
得分:0 
,学习
2012-07-03 19:52
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-7-3 17:06:18的发言:

又不知道你想干什么,你自己觉得有问题就仔细调试,解决不了就把问题说清楚,不要把整个东西发上来叫人猜,要么把需求写清楚。

想参照他们写的猜字游戏,就是程序随机产生各不相同的4个数字,然后让人去猜。这是他们写过的,我自己写哈练习一下。现在的问题就是程序改进后能在在cfree上编译通过,在VS上不能成功通过编译。基本上算是把问题解决了。

[ 本帖最后由 a271885843 于 2012-7-3 21:02 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-07-03 21:00
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用embed_xuel在2012-7-3 08:42:40的发言:

int*creat()//产生4个各不相同的随机数函数 ,把四个数保存在数组中,返回值是该数组的首地址{intflag[10]={0};int*p;      p=numbe2;inttem=0,i=5,j=4;while(i)     {         tem=rand()%10;if(flag[tem]==0)         {             numbe2[j]=tem; //前面j初始化为4,那么这句就是number2[4]=tem,数组越界了,numbe2下标只能从0到3

好,我改进。这样互动的学习提升过程感觉很不错

认为事物非黑即白是缺智慧的表现……
2012-07-03 21:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
要产生4个随机数,直接产生就是了,填在int num[4]数组中,你把产生随机数的机制弄到那么复杂干嘛?程序代码是由应用实际决定的,不要刻意使用某种技术。当你发觉在某个模块上面伤透了脑筋,就该考虑这个实现方式是不是过于复杂了。编程以简化、清晰为第一主导,对int num[4]这样的数组,都要用到指针,就已经进了误区,明显是为技术而技术。

[ 本帖最后由 TonyDeng 于 2012-7-3 21:16 编辑 ]

授人以渔,不授人以鱼。
2012-07-03 21:12
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-7-3 21:12:38的发言:

要产生4个随机数,直接产生就是了,填在int num[4]数组中,你把产生随机数的机制弄到那么复杂干嘛?程序代码是由应用实际决定的,不要刻意使用某种技术。当你发觉在某个模块上面伤透了脑筋,就该考虑这个实现方式是不是过于复杂了。编程以简化、清晰为第一主导,对int num[4]这样的数组,都要用到指针,就已经进了误区,明显是为技术而技术。

只是想练习一下,能用的都用些。随机数方法参照是另一个写过这个程序的写的

[ 本帖最后由 a271885843 于 2012-7-3 21:22 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-07-03 21:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你的int num[4]是整个程序的核心,各处都有用,就不妨设定为全局变量。然后定制一个函数,专门填写这个这个数组数据的:每产生一个随机数,在放入数组的时候,先寻找一下数组中有没有这个数,如果没有就放进去,有的话就重新产生一个再试,直到填完。填好之后,这个数组就可以用了。这样设计,程序好写,排查也容易,像你现在这样硬生生拆成几个函数,逻辑上就不通,正是造成你排错困难的原因。

授人以渔,不授人以鱼。
2012-07-03 21:24
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-7-3 21:24:53的发言:

你的int num[4]是整个程序的核心,各处都有用,就不妨设定为全局变量。然后定制一个函数,专门填写这个这个数组数据的:每产生一个随机数,在放入数组的时候,先寻找一下数组中有没有这个数,如果没有就放进去,有的话就重新产生一个再试,直到填完。填好之后,这个数组就可以用了。这样设计,程序好写,排查也容易,像你现在这样硬生生拆成几个函数,逻辑上就不通,正是造成你排错困难的原因。

嗯。

[ 本帖最后由 a271885843 于 2012-7-3 21:58 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-07-03 21:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你寫16樓這樣一個函數,調試的時候,專門把最後的結果打印出來,看看是不是真的生成了4個無重複的隨機數,如果滿意,這個函數就通過了,由此確定那個int num[4]數組是可以使用的。然後再接著做後面的模塊。這樣一個一個做,哪有容易錯之理。

在子函數內部創建數組變量返回給上一層,是註定不成功的,不能用數組,只能用堆內存分配,只有堆分配的引用變量才不會隨著函數的結束而結束,但隨之而來的就是指針管理和內存釋放麻煩。你要練習指針技術,也要弄清楚整個機制才好,十分清楚自己要做什麼、怎麼做,否則只能是亂寫一氣。不過,我還是奉勸你一句,不要太執著於指針了,學C學到把精力花費在這種地方,不值得,這話我說過很多次,聽不聽在別人了。

授人以渔,不授人以鱼。
2012-07-03 21:39
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-7-3 21:39:02的发言:

你寫16樓這樣一個函數,調試的時候,專門把最後的結果打印出來,看看是不是真的生成了4個無重複的隨機數,如果滿意,這個函數就通過了,由此確定那個int num[4]數組是可以使用的。然後再接著做後面的模塊。這樣一個一個做,哪有容易錯之理。

在子函數內部創建數組變量返回給上一層,是註定不成功的,不能用數組,只能用堆內存分配,只有堆分配的引用變量才不會隨著函數的結束而結束,但隨之而來的就是指針管理和內存釋放麻煩。你要練習指針技術,也要弄清楚整個機制才好,十分清楚自己要做什麼、怎麼做,否則只能是亂寫一氣。不過,我還是奉勸你一句,不要太執著於指針了,學C學到把精力花費在這種地方,不值得,這話我說過很多次,聽不聽在別人了。

int num[4]={0};
    int i=0;
     for(;i<4;i++)
      {  
        num[i]=rand()%10;
         int j=0;
          while(j<i)
          {
            if(num[i]!=num[j])
             {
               j++;
             continue;
             }
           else
        {
       num[i]=rand()%10;
        j=0;
          }
         }
写了个,等哈验证看看对不对。至于指针,也就是争取掌握,以后C扎实了,就数据结构和C++ 。谨听你言,指针毕竟是容易出错。

[ 本帖最后由 a271885843 于 2012-7-4 20:05 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-07-03 22:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
再拆一下,寫一個在數組中查找某一元素是否存在的函數,這種需求在多處地方都有用(實際上在你這個程序中就有好幾處地方要用到這樣的東西),放在這裡,把代碼進一步清晰化。盡可能地這樣做,這種可重用的函數做多了,以後自然享受到福利。

授人以渔,不授人以鱼。
2012-07-03 22:09
快速回复:给100分,能准确运行的时候就行,诚心感谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021829 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved