c语言练习1问题

这是一篇旧文,点击以旧主题模式浏览。关于C语言的问题
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有错误 但是总有一个垃圾值 - 『编程语言讨论求助区』
- 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn
后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
请完成以下验证码
查看: 226|回复: 6
没有错误 但是总有一个垃圾值
阅读权限10
发帖求助前要善用【】功能,那里可能会有你要找的答案;
求助软件脱壳或者破解思路时,请务必在主题帖中描述清楚你的分析思路与方法,否则会当作求脱求破处理;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人。
运行后总有一个垃圾值&&插入新数后就有2个垃圾值了
#include&stdio.h&
#include&malloc.h&
#include&stdlib.h&
int main()
& & & & int n,*p,i;
& & & & int t,a;
& & FILE *fp&&;
& & & & printf(&数据个数&);
& & & & scanf(&%d&,&n);
& & & & p=(int *)malloc(n*sizeof(int));
& & & & fp=fopen(&D:\\1.txt&,&r+&);
& & printf(&文件中的数为:\n&);
& & & & for(i=0;i&n;i++)
& & & &&&fscanf(fp,&%d&,&p[i]);
& &&&printf(&%d\n&,p[i]);
&&for(i=0;i&n;i++)
& & & && &for(int j=0;j&n-i;j++)
& & & && &
& & & & & & & && &if(p[j]&p[j+1])
& & & & & & & && &{&&t=p[j];
& & & & & & & && & p[j]=p[j+1];
& & & && && &p[j+1]=t;
& & & && &}
& & & & & & & && &rewind(fp);
& && && & printf(&文件中数字排序为\n&);
& & & & & & & && &for(i=0;i&n;i++)
& & & & & & & && &printf(&%d &,p[i]);
& & printf(&\n&);
& & & & printf(&请输入需要插入的数据:\n&);
& & & & scanf(&%d&,&a);
for(i=0;i&n+1;i++)
& & & && &for(int j=0;j&n+1-i;j++)
& & & && &
& & & & & & & & & & & && &if(p[j]&p[j+1])
& & & & & & & && &{&&t=p[j];
& & & & & & & && & p[j]=p[j+1];
& & & && && &p[j+1]=t;
& & & && &}
& & & & & & & && &printf(&总的数字排序为\n&);
& & & & & & & && &for(i=0;i&n+1;i++)
& & & & & & & && &printf(&%d &,p[i]);
/*& & & & for(i=0;i&n+1;i++)
& & & &&&fprintf(fp,&%d&&&,p[i]);
& & & & fclose(fp);*/
& & & & return 0;
(38.71 KB, 下载次数: 0)
08:43 上传
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
排序写错了 for(int j=0;j&n-1;j++)
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
[C] 纯文本查看 复制代码
for(i=0;i&n;i++)
for(int j=0;j&n-i;j++)
if(p[j]&p[j+1])
p[j]=p[j+1];
这一段排序数组越界了
i=0 j=9的时候你使用了&&j+1也就是p[10]
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
[mw_shl_code=c,true]&&for(i=0;i
但是我要是从小到大排 就可以 没有垃圾值
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
本帖最后由 Xer0 于
09:24 编辑
但是我要是从小到大排 就可以 没有垃圾值
你在用p[0]~p[10]的11个数字进行排序 只显示前10个数字的排序结果
你从小到大排看不见 p[10]是因为这个数字太大放在末尾看不见而已
但你排序时确实访问到了 这样也是不安全
你只申请了10个int的空间给p 却使用到第11个int 的地址 其内容是不确定的
而且后面插入一个数也需要用到11个int地址
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
你在用p[0]~p[10]的11个数字进行排序 只显示前10个数字的排序结果
你从小到大排看不见 p[10]是因为这个 ...
你说的意思我懂了 可是我再定义一个11个的动态内存变量之后 还是一样的错误
你知道怎么改吗 我是真的不会了
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
你说的意思我懂了 可是我再定义一个11个的动态内存变量之后 还是一样的错误
你知道怎么改吗 我是真的不 ...
因为你的排序也有问题啊&&只需要排序10个数字 你排序了11个数字
试试 for(int j=0;j&n-i;j++)改成 for(int j=0;j&n-i-1;j++)
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
( 京ICP备号 | 京公网安备 87号 )
Powered by Discuz!
Comsenz Inc.c语言问题-学路网-学习路上 有我相伴
来源:互联网 &责任编辑:小易 &
网友碰到这么一个问题:c语言问题,具体如下:【问题描述】有以下类信息,使用结构体数组存储这些信息struct student{ //学生序号char name[20];//学生名字 //数学成绩,保留0位小数,提示输出格式是 %0.f}stu[4];&从键盘输入4条记录,之后在屏幕上依次输出这些类信息,并计算出数学平均成绩 。【输入形式】每条记录的3个数据都使用空格分隔【输出形式】分四行输出数据,每行数据均使用空格分隔;最后一行显示如输出样式avg=【输入样例】1 aaa 452 bbb 673 ddd 774 qqq 88&【输入形式】每行数据均使用一个空格分隔,分四行输出【输出形式】1 aaa 452 bbb 673 ddd 774 qqq 88&avg=69系统通过互联网整理(主要来自百度知道、sogou问问、知乎、360问答等平台)获得以下解决方法,供碰到同样问题的网友参考:解决方法1:....参考....#include &stdio.h&#include &string.h&struct student{ //学生序号 char name[20];//学生名字 //数学成绩,保留0位小数,提示输出格式是 %0.f} stu[4];int main(){ float sum=0; for(i=0; i&4; i++) &scanf(&%d%s%f&,&stu[i].num,&stu[i].name,&stu[i].math); for(i=0; i&4; i++) &{ & printf(&%d\n%s %.0f\n&,stu[i].num,stu[i].name,stu[i].math); & sum+=stu[i]. &} printf(&%.0f\n&,sum/4); return 0;}如果您还有更好的解决方法也可以告诉我们啊,添加我们统一服务微信公众号:vcshuo
本文相关:
- Copyright & 2018 www.xue63.com All Rights Reserved

我要回帖

更多关于 大一c语言考试题及答案 的文章

 

随机推荐