标题:各位大虾,帮帮忙吧,总是出现内存错误啊
只看楼主
周博文
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-10-3
结帖率:66.67%
已结贴  问题点数:2 回复次数:3 
各位大虾,帮帮忙吧,总是出现内存错误啊
题目是要输入班级每个人分数,然后输出最高分,最低分,平均分,必须用指针实现,而且只能有一个函数
编译时没有错误,但是一运行就有错误报告

#include<stdio.h>
int main()
{
    void deal_with(int a,int *p_a,int *p_ma,int *p_mi,float *p_ave);
    int n,a[30],i,max,mini;
    float average,*pointer_ave;
    int *pointer_a,*pointer_max,*pointer_min;
    printf("Please input the number of student\n");
    scanf("%d",&n);
    printf("Please input the score\n");
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    pointer_a = a;
    pointer_max = &max;
    pointer_min = &mini;
    pointer_ave = &average;
    deal_with(n,pointer_a,pointer_max,pointer_min,pointer_ave);
    printf("%d,%d,%f\n",max,mini,average);
    return(0);
}

void deal_with(int a,int *p_a,int *p_ma,int *p_mi,float *p_ave)
{
    int sum=0,max=0,mini=0;
    for(max=*p_a,mini=*p_a;p_a<p_a+a;p_a++)
    {
        if(*p_a >= max)
        {
            max=*p_a;
        }
        if(*p_a <= mini)
        {
            mini=*p_a;
        }
        sum=sum+*p_a;
    }
    *p_ma=max;
    *p_mi=mini;
    *p_ave=sum/(float)a;
     
}
搜索更多相关主题的帖子: 内存 mini average include number 
2012-03-04 11:52
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
得分:1 
    *p_ma=max;
    *p_mi=mini;
    *p_ave=sum/(float)a;
应该把变量的地址赋值给指针
*p_ma=&max

成功贵在坚持
2012-03-04 12:00
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:1 
for(max=*p_a,mini=*p_a;p_a<p_a+a;p_a++)
问题出在这句上p_a++,那么p_a<p_a+a恒成立。应该在设个辅助指针
    int *p = p_a;
    for(max=*p,mini=*p;p<a + p_a;p++)
    {
        if(*p >= max)
        {
            max=*p;
        }
        if(*p <= mini)
        {
            mini=*p;
        }
        sum=sum+*p;
    }

梅尚程荀
马谭杨奚







                                                       
2012-03-04 12:10
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
得分:0 


[ 本帖最后由 有容就大 于 2012-3-4 16:25 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-03-04 16:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362176-1-1.html




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

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