| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1187 人关注过本帖
标题:关于结构体的问题,童鞋们帮我分析一下下,奖励分分的噢
只看楼主 加入收藏
程丁岚
Rank: 2
等 级:论坛游民
威 望:1
帖 子:23
专家分:36
注 册:2011-12-8
收藏
得分:0 
printf("最高成绩学生的学号:%d\n姓名:%s\n三门课成绩:%d %d %d\n平均成绩是:%d \n",stu[k].xh,stu[k].name,stu[k].stu_cj.yw,stu[k].stu_cj.sx,stu[k].stu_cj.yy,stu[k].zcj/3)
主要的问题出在这里了
2012-01-15 00:13
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-1-15 00:07:41的发言:

結構體分量的表示方法確實是這樣,但沒說取地址的方法也這樣。stu.xh是表示.xh這個分量,要取它的地址,寫&(stu.xh)就是對這個變量取地址,絕對沒錯的,但若去了括號,你就得查書看優先級,不要忘了,按(&stu).xh理解也是合語法的。如果沒有把握,又死不肯寫括號,那麼就應該設置調試語句檢查接收的變量值是否正確,由此判斷編譯器是按哪種方式理解的,你記得住就記。
噢。是这么回事,老大,不是我懒得去写括号,是我真不知道,是我看教程里输出,就是stu.xh这样的模式,而在教程里,也没有输出赋值的例子,所以我以为就是&stu.xh就可以了。嗯。可以运行了。呵呵。这真不是我懒得去写,是我真不知道这样写的。

认为事物非黑即白是缺智慧的表现……
2012-01-15 00:19
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
程序能运行了,TonyDeng的说法是对的,少加括号,加上括号能运行。程丁岚的改法也能正常运行。感谢两位。

认为事物非黑即白是缺智慧的表现……
2012-01-15 00:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
總之,現實代碼千變萬化,但你只要有足夠的敏感性,就知道可能在哪裡有麻煩,就在那裡設置調試。編程的經驗無非是這樣積累的。比如,你這個程序,最好先寫讀一筆記錄,馬上輸出這筆記錄,運行看到讀和寫都完全按希望做了,再插入循環語句處理整個數組,因為單步已經證明正確,那麼簡單地插入循環出錯的可能性就會降低許多。程序是在無數次地運行調試之後建立起來的。

這個可是授你以漁的方式,我沒必要替你寫好代碼拿出來炫耀自己的功力,那樣是永遠學不到編程之道的。

授人以渔,不授人以鱼。
2012-01-15 00:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
還有一點你要注意:編譯通過與運行正確是沒有必然聯繫的。程序是否最終能夠交付使用,要經過反復運行測試,編譯通過只是起步,更麻煩的在後面,那就是運行時錯誤。

授人以渔,不授人以鱼。
2012-01-15 00:36
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-1-15 00:30:54的发言:

總之,現實代碼千變萬化,但你只要有足夠的敏感性,就知道可能在哪裡有麻煩,就在那裡設置調試。編程的經驗無非是這樣積累的。比如,你這個程序,最好先寫讀一筆記錄,馬上輸出這筆記錄,運行看到讀和寫都完全按希望做了,再插入循環語句處理整個數組,因為單步已經證明正確,那麼簡單地插入循環出錯的可能性就會降低許多。程序是在無數次地運行調試之後建立起來的。

這個可是授你以漁的方式,我沒必要替你寫好代碼拿出來炫耀自己的功力,那樣是永遠學不到編程之道的。
嗯。

认为事物非黑即白是缺智慧的表现……
2012-01-15 00:36
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
再次感谢楼上各位给予的帮助,问题已经得到解决。自己已经在编译器中通过编译,

[ 本帖最后由 a271885843 于 2012-1-15 01:09 编辑 ]

认为事物非黑即白是缺智慧的表现……
2012-01-15 01:07
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 20楼 程丁岚
for(i=1;i<n;i++)    {        if(max<stu[i].zcj)        {            max=stu[i].zcj;            k=i;        }                                         /*用K记录成绩最高同学的下标,并在下行输出该同学的所有录入信息*/    }
k没有初始化,如果恰恰是第一个人成绩最好,不会进入if里面,k不会赋值,打印成绩时会怎么样?

总有那身价贱的人给作业贴回复完整的代码
2012-01-15 01:10
a271885843
Rank: 2
等 级:论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
收藏
得分:0 
以下是引用TonyDeng在2012-1-15 00:07:41的发言:

結構體分量的表示方法確實是這樣,但沒說取地址的方法也這樣。stu.xh是表示.xh這個分量,要取它的地址,寫&(stu.xh)就是對這個變量取地址,絕對沒錯的,但若去了括號,你就得查書看優先級,不要忘了,按(&stu).xh理解也是合語法的。如果沒有把握,又死不肯寫括號,那麼就應該設置調試語句檢查接收的變量值是否正確,由此判斷編譯器是按哪種方式理解的,你記得住就記。

其實那個著名的*p++也一樣是會讓初學者迷糊的,只不過在C程序員內部這個寫法已經是“習慣寫法”,大家都明白它是怎麼運作的,才不會出現問題。我上次跟你說過,最好看看軟件工程學的著作,大量條文告誡讀者要寫清晰、直接的代碼,而不是寫高明的代碼。表面看來拙劣的代碼,只要不錯,就沒什麼可指責的。
嗯。我会的。

认为事物非黑即白是缺智慧的表现……
2012-01-15 01:49
快速回复:关于结构体的问题,童鞋们帮我分析一下下,奖励分分的噢
数据加载中...
 
   



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

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