| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 728 人关注过本帖
标题:一个关于数组和函数的输出的问题,求大神指教
取消只看楼主 加入收藏
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
一个关于数组和函数的输出的问题,求大神指教
fen(int a[])
    {
    int i,stu[N]={0};
    for(i=0;i<30;i++)
        {
        if(a[i]<60||a[i]>0)stu[0]=stu[0]+1;
        else if(a[i]<70)stu[1]=stu[1]+1;
        else if(a[i]<80)stu[2]=stu[2]+1;
        else if(a[i]<90)stu[3]=stu[3]+1;
        else if(a[i]<100)stu[4]=stu[4]+1;
        else if(a[i]=100)stu[5]=stu[5]+1;
        return stu[N];
        }
    }
我想用这个函数统计各个阶段的人数,然后在主函数中输出,但是主函数调用的时候就是fen(score)这种形式,怎么让他输出完整的数组???
搜索更多相关主题的帖子: return 统计 
2015-05-30 13:20
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 2楼 诸葛欧阳
对对对,写错了,谢谢,不过重点不在这里啊
2015-05-30 13:36
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 3楼 诸葛欧阳
fen(int s[])
    {
    int i,stu[N]={0};
    int *p;
    for(i=0;i<30;i++)
         for(i=0;i<30;i++)
        {
        if(s[i]<60&&s[i]>0)stu[0]=stu[0]+1;
        else if(s[i]<70&&s[i]>0)stu[1]=stu[1]+1;
        else if(s[i]<80&&s[i]>0)stu[2]=stu[2]+1;
        else if(s[i]<90&&s[i]>0)stu[3]=stu[3]+1;
        else if(s[i]<100&&s[i]>0)stu[4]=stu[4]+1;
        else if(s[i]=100&&s[i]>0)stu[5]=stu[5]+1;
        }
         *p=stu;
        return *P;

像这样??但是指针还没学不太会,有好几个错不会改
D:\green\VC6\Common\MSDev98\Bin\99.c(30) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
D:\green\VC6\Common\MSDev98\Bin\99.c(31) : error C2065: 'P' : undeclared identifier
D:\green\VC6\Common\MSDev98\Bin\99.c(31) : error C2100: illegal indirection
2015-05-30 13:57
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 6楼 TonyDeng
二楼说返回指针,但是好像不可以啊,fen()是int型,然后指针是int*型,arning C4047: 'return' : 'int ' differs in levels of indirection from 'int *',输出的也不是想要的值,是一大串数
fen(int s[])
    {
    int i,stu[N]={0},*p=stu;
    for(i=0;i<30;i++)
         for(i=0;i<30;i++)
        {
        if(s[i]<60&&s[i]>0)stu[0]=stu[0]+1;
        else if(s[i]<70&&s[i]>0)stu[1]=stu[1]+1;
        else if(s[i]<80&&s[i]>0)stu[2]=stu[2]+1;
        else if(s[i]<90&&s[i]>0)stu[3]=stu[3]+1;
        else if(s[i]<100&&s[i]>0)stu[4]=stu[4]+1;
        else if(s[i]==100&&s[i]>0)stu[5]=stu[5]+1;
        }
        return p;
    }
2015-05-30 14:52
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 8楼 TonyDeng
哦,那他说用指针返回要怎么用
2015-05-30 15:00
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 10楼 TonyDeng
像这样?没错误没警告,但是stu[]的值还是不对,是随机数
fen(int a[],int *p)
    {
    int i;
    for(i=0;i<30;i++)
        {if(a[i]<60&&a[i]>0) *p=*p+1;
        else if(a[i]<70&&a[i]>=60) *(p+1)=*(p+1)+1;
        else if(a[i]<80&&a[i]>=70) *(p+2)=*(p+2)+1;
        else if(a[i]<90&&a[i]>=80) *(p+3)=*(p+3)+1;
        else if(a[i]<100&&a[i]>=90) *(p+4)=*(p+4)+1;
        else if(a[i]==100) *(p+5)=*(p+5)+1;
        }
    }
void main()
    {
    int i,stu[N];
    int *p=stu;
        fen(score,p);
        printf("60分一下:%d%%\n",100*stu[0]/(d-1));
        printf("60-69分:%d%%\n",100*stu[1]/(d-1));
    printf("70-79分:%d%%\n",100*stu[2]/(d-1));
    printf("80-89分:%d%%\n",100*stu[3]/(d-1));
    printf("90-99分:%d%%\n",100*stu[4]/(d-1));
    printf("100分:%d%%\n",100*stu[5]/(d-1));
        
2015-05-30 16:25
马楠伯杰罗
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 12楼 诸葛欧阳
初始化成什么?stu[]={0}的话,输出的也都是零,好像是哪里出了毛病赋值没有赋进取
2015-05-30 16:32
快速回复:一个关于数组和函数的输出的问题,求大神指教
数据加载中...
 
   



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

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