有关C语言的数组问题,高手请进

[复制链接]
查看11 | 回复2 | 2011-2-24 03:21:01 | 显示全部楼层 |阅读模式
下面是一个教程里冒泡排序的程序:
#include \\\"stdio.h\\\"
void main()
{
int a[11],i,j,t;
/*要求是输入10个整形数,然后进行排序的。却定义了一个含11个元素的数组,过程中a[0]没被引用,电脑将如何处理a[0]这个储存单元]*/
printf(\\\"please input the numbers:\\\\n\\\");
for(i=1;i11;i)scanf(\\\"%d\\\",
for(i=1;i10;i)
for(j=10;ji;j--)
if(a[j]a[j-1])
{t=a[j];a[j]=a[j-1];a[j-1]=t;}
printf(\\\"The sorted value:\\\\n\\\");
for(i=1;i11;i)printf(\\\"%d\\\",a);

}

要求是输入10个整形数,然后进行排序的。却定义了一个含11个元素的数组,过程中a[0]没被引用,电脑将如何处理a[0]这个储存单元]
经试验,程序是可以正确运行的,请问:这样的定义数组的好坏是什么?
回复

使用道具 举报

千问 | 2011-2-24 03:21:01 | 显示全部楼层
<pre id=\\\"best-answer-content\\\" class=\\\"reply-text mb10\\\">不处理,就这么浪费着
因为机器不允许动态定义数组下标
一般是定义大一点的
建议宏,这样代码移植性更好

链表就克服了你所问到的这个缺点,等你学了对照一下就会明白的

问问题是好事,祝你进步

















<h4 class=\\\"ask\\\">追问





<pre class=\\\"replyask-text\\\" id=\\\"content-173966\\\">谢谢!
还想问一下有宏的话如何编写程序啊?求其完整的程序
回复

使用道具 举报

千问 | 2011-2-24 03:21:01 | 显示全部楼层
<pre class=\\\"replyask-text\\\" id=\\\"content-174308\\\">就是前面把你的数组下标比如10,定义成Max,然后数组就是a [Max]嘛,这样你要改的话就比较方便嘛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行