| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:一个小代码,哪错了啊?
只看楼主 加入收藏
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:6 
一个小代码,哪错了啊?
大家帮我看下这个代码哪错了啊,在运行时看不到正确的结果!
运行时的结果 第六行 也是错误的!
运行时还报错!
错误签名
AppName: 228-8.8.exe     AppVer: 0.0.0.0     ModName: unknown
ModVer: 0.0.0.0     Offset: 00000006

下面是我的代码
望大家帮忙看看这两个问题!
程序代码:
//将数组A中的n个整数按相反顺序存放、、
//分别四种情况实现。
//(1)形参和实参都用数组名
//(2)实参用数组名,形参用指针变量。
//(3)实参和形参都用指针变量。
//(4)实参用指针,形参用数组名。
#include<stdio.h>
#define N 10
void main()
{
    void inv_1(int x[],int n);                            //申明形参为数组名函数
    void inv_2(int *q,int n);                            //申明形参为指针变量函数
    int a[N]={1,2,3,4,5,6,7,8,9,10},*p,i;
    p=a;                                                //使指针P指向a[0]  与p=&a[0]等价
    printf("原数组为:\n");
    for(i=0;i<N;i++)
        printf("%d ",a[i]);                                //********如果用printf("%d ",p++);行吗**********
    printf("\n");
    printf("调用实形参都用数组名的函数结果为:\n");
    inv_1(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
    printf("调用实参用数组名形参用指针变量的函数结果为:\n");
    inv_2(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
    printf("调用实形参都用指针变量的函数结果为:\n");
    inv_2(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
    printf("调用实参用指针变量形参用数组名的函数结果为:\n");
    inv_1(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
}

void inv_1(int x[],int n)
{
    int i,j,temp;
    for(i=0,j=(n-1);i<=(n-1)/2;i++,j--)
    {temp=x[i];x[i]=x[j];x[j]=temp;}
}

void inv_2(int *q,int n)
{
    int *i,*j,*mid,temp;
    i=q;j=q+(n-1);mid=q+(n-1)/2;
    for(;i<=mid;i++,j++)
    {temp=*i;*i=*j;*j=temp;}
}

 
搜索更多相关主题的帖子: 代码 
2010-05-02 11:23
lanyu111
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-02 11:53
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:2 
程序代码:

#include<stdio.h>
#define N 10
void main()
{
    void inv_1(int x[],int n);                            //申明形参为数组名函数
    void inv_2(int *q,int n);                            //申明形参为指针变量函数
    int a[N]={1,2,3,4,5,6,7,8,9,10},*p,i;
    p=a;                                                //使指针P指向a[0]  与p=&a[0]等价
    printf("原数组为:\n");
    for(i=0;i<N;i++)
        printf("%d ",a[i]);                                //********如果用printf("%d ",p++);行吗**********

    printf("\n调用实形参都用数组名的函数结果为:\n");
    inv_1(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);

    printf("\n调用实参用数组名形参用指针变量的函数结果为:\n");
    inv_2(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);

    printf("\n调用实形参都用指针变量的函数结果为:\n");
    inv_2(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);

    printf("\n调用实参用指针变量形参用数组名的函数结果为:\n");
    inv_1(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
}

void inv_1(int x[],int n)
{
    int i,j,temp;
    for(i=0,j=(n-1);i<=(n-1)/2;i++,j--)
    {temp=x[i];x[i]=x[j];x[j]=temp;}
}

void inv_2(int *q,int n)
{
    int *i,*j,*mid,temp;
    i=q;j=q+(n-1);mid=q+(n-1)/2;
    for(;i<=mid;i++,j--)    //应该是 --j
    {temp=*i;*i=*j;*j=temp;}
}
2010-05-02 12:22
神左手
Rank: 2
等 级:论坛游民
帖 子:46
专家分:62
注 册:2010-4-24
收藏
得分:2 
apull改过来的是对的,指针最容易报内存的错!
2010-05-03 00:50
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:2 
顶三楼!应该就是那个问题了。

南国利剑
2010-05-03 23:56
ljcbc
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:15
专家分:9
注 册:2010-4-21
收藏
得分:0 
回复 3楼 apull
运行还是一样出错  咋回事哦,我电脑问题不成?
2010-05-04 14:34
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:2 
程序代码:
//将数组A中的n个整数按相反顺序存放、、
//分别四种情况实现。
//(1)形参和实参都用数组名
//(2)实参用数组名,形参用指针变量。
//(3)实参和形参都用指针变量。
//(4)实参用指针,形参用数组名。
#include<stdio.h>
#include<stdlib.h>
#define N 10
void main()
{
    void inv_1(int x[],int n);                            //申明形参为数组名函数
    void inv_2(int *q,int n);                            //申明形参为指针变量函数
    int a[N]={1,2,3,4,5,6,7,8,9,10},*p,i;
    p=a;                                                //使指针P指向a[0]  与p=&a[0]等价
    printf("原数组为:\n");
    for(p=a;p<a+N;p++)
        printf("%d ",*p);
    printf("\n");
    printf("调用实形参都用数组名的函数结果为:\n");
    inv_1(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
    printf("调用实参用数组名形参用指针变量的函数结果为:\n");
    inv_2(a,N);
    for(i=0;i<N;i++) printf("%d ",a[i]);printf("\n");
    printf("调用实形参都用指针变量的函数结果为:\n");
    inv_2(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
    printf("调用实参用指针变量形参用数组名的函数结果为:\n");
    inv_1(p,N);
    for(p=a;p<a+N;p++) printf("%d ",*p);printf("\n");
}

void inv_1(int x[],int n)
{
    int i,j,temp;
    for(i=0,j=(n-1);i<=(n-1)/2;i++,j--)
    {temp=x[i];x[i]=x[j];x[j]=temp;}
}

void inv_2(int *q,int n)
{
    int *i,*j,*mid,temp;
    i=q;j=q+(n-1);mid=q+(n-1)/2;
    for(;i<=mid;i++,j--)
    {temp=*i;*i=*j;*j=temp;}
}
2010-05-04 19:51
快速回复:一个小代码,哪错了啊?
数据加载中...
 
   



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

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