当前位置: 代码迷 >> C语言 >> 谭浩强的教材题。[不用解决]
  详细解决方案

谭浩强的教材题。[不用解决]

热度:178   发布时间:2008-05-06 20:50:24.0
谭浩强的教材题。[不用解决]
请教一下:
原意是说数组形参改变实参,只要函数用数组名作参数(指针的例题不考虑),但在vc6.0sp6中测试不通过,是不是vc不允许?
#include <stdio.h>

void sort(int array[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
        if(array[j]<array[k]);k=j内存只读,赋初值后会有相反的错误提示,比如先是读错误后是写错误。
        t=array[k];array[k]=array[i];array[i]=t;
}

void main()
{
    int a[10],i;
    printf("enter\n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    sort(a,10);
    printf("sort:\n");
    for(i=0;i<10;i++)
        printf("%d",a[i]);
    printf("\n");
}不

[[it] 本帖最后由 新牛魔王 于 2008-5-9 13:36 编辑 [/it]]
搜索更多相关的解决方案: 谭浩强  教材  

----------------解决方案--------------------------------------------------------
#include <stdio.h>

void sort(int array[],int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
            if(array[j]>array[j+1])
            {
                t=array[j];
                array[j]=array[j+1];
                array[j+1]=t;
            }
}

void main()
{
    int a[10],i;
    printf("enter\n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    sort(a,10);
    printf("sort:\n");
    for(i=0;i<10;i++)
        printf("%d",a[i]);
    printf("\n");
}

[[it] 本帖最后由 sunkaidong 于 2008-5-6 21:55 编辑 [/it]]
----------------解决方案--------------------------------------------------------
二楼的排序算法访问越界

[color=white]
----------------解决方案--------------------------------------------------------
J和K没初值`````这样乱访问不好吧```
----------------解决方案--------------------------------------------------------
也许是未赋初值的原因。
也许是未赋初值的原因。但赋值后仍有些小问题。
不过我在另一个例子(排处素数)里已经理解了数组参数的问题。通过数组值改变。一般用指针要更好。
在教材的其它例题也有些也许是印刷上的错误。不亲自试试也不知道。
----------------解决方案--------------------------------------------------------
回复 5# 的帖子

确实是
我突然发现我以前放过很多同类的错误
----------------解决方案--------------------------------------------------------
  相关解决方案