| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 836 人关注过本帖
标题:哪位大师教教我如何把数组改为指针,拜托各位!!!!
只看楼主 加入收藏
bisiqi
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-12
结帖率:100%
收藏
 问题点数:0 回复次数:6 
哪位大师教教我如何把数组改为指针,拜托各位!!!!
#include //""它的查找路径是先到本地目录下查找该头文件,如果没有,就到系统目录system32下查找
                //<>它的查找路径是先到系统目录下查找,如果没有,就到本地目录下查找


#define student_total 30//预编译指令,定义一个常量值
struct Student//定义学生数据类型(结构体)
{
    int num;//学生学号
    char name[8];//学生姓名
    float normal_score;//平时成绩
    float final_score;//期末成绩
    float ave_score;//总评成绩=normal_score*normal_i+fianl_score*fianl_i
};

//接收学生信息函数定义
int accept_students(struct Student student[] )
{
    char flag[1];//表示用户输入学生信息结束标志符号flag==y时候结束用户输入,如果未结束输入n
    int sum=0;
    while (flag[0]!='y')
    {
        
        printf("请输入学生学号:");
        scanf("%d",&(student[sum].num));
        printf("请输入学生姓名:");
        scanf("%s",&(student[sum].name));
        printf("请输入学生平时成绩:");
        scanf("%f",&(student[sum].normal_score));
        printf("请输入学生期末成绩:");
        scanf("%f",&(student[sum].final_score));
        printf("提示:如果输入完毕请输入小写字符y,否则请输入小写字符n\n");
        scanf("%s",&flag);
        sum=sum+1;
    }
    return sum;
}


//输出学生详细信息函数
void show_students(struct Student student[],int sum)
{
    int i;
    for (i=0;i    {
        printf("学生学号:%d",student.num);
        printf("学生姓名:%s",student.name);
        printf("学生平时成绩:%.1f",student.normal_score);
        printf("学生期末成绩:%.1f",student.final_score);
        printf("学生总评成绩:%.2f",student.ave_score);
        printf("\n");
    }   
}
//计算学生总评成绩和统计各分数段人数
void datacalculate(struct Student student[],int fsdrs[],int sum,int normalpercent,int fianlpercent)
{
    //1、首先计算学生总评成绩
    int i;
    float ave_score;
    for (i=0;i    {
        ave_score=student.normal_score*normalpercent/100+student.final_score*fianlpercent/100;
        student.ave_score=ave_score;
    }
    //2、统计各分数段人数
    for (i=0;i    {
        if (student.ave_score<=59.99 && student.ave_score>0.00)
        {
            fsdrs[0]=fsdrs[0]+1;//fsdrs[0]++
        }
        if (student.ave_score>59.99 && student.ave_score<=79.99)
        {
            fsdrs[1]=fsdrs[1]+1;//fsdrs[1]++
        }
        if (student.ave_score>79.99 && student.ave_score<=89.99)
        {
            fsdrs[2]=fsdrs[2]+1;//fsdrs[2]++
        }
        if (student.ave_score>89.99 && student.ave_score<=100.00)
        {
            fsdrs[3]=fsdrs[3]+1;//fsdrs[0]++
        }
    }
}
void drawchart(int fsdrs[])
{
    char virtualscreen[31][40];
    int i,j,k,n;
    //初始化虚拟屏幕
    for (i=0;i<31;i++)
    {
        for (j=0;j<40;j++)
        {
            virtualscreen[j]=' ';
        }
    }
    //画出x轴和y轴
    for (i=0;i<39;i++)
    {
        virtualscreen[30]='-';
    }
    virtualscreen[30][39]='X';
    for (i=1;i<30;i++)
    {
        virtualscreen[0]='|';
    }
    virtualscreen[0][0]='Y';
    //画出各分数段柱状图
    for (k=0;k<4;k++)
    {
        if (fsdrs[k]>0)
        {
            for (i=31-fsdrs[k]-1;i<30;i++)
            {
                for (j=k*8+4+1,n=0;n<4;j++,n++)
                {
                    virtualscreen[j]='*';
                }
            }
        }
    }
    //输出柱状图型
    for (i=0;i<31;i++)
    {
        for (j=0;j<40;j++)
        {
            printf("%c",virtualscreen[j]);
        }
        printf("\n");
    }
}

void main()
{
   
    int normal_i,final_i;//成绩百分比,normal_i表示平时成绩百分比,fianl_i表示期末成绩百分比
    /*int student_total=0;//学生总人数*/
    struct Student student[student_total];//定义学生结构体数组
    int sum=0;//表示用户实际输入学生总人数
    int fsdrs[4]={0};//表示分数段人数
    int virtualscreen[31][40];
   
    printf("请输入计算百分比:");
    scanf("%d%d",&normal_i,&final_i);//接收计算比例
    //1、接收学生信息
    sum=accept_students(student);
    //要计算学成的成绩信息和分布
    //1、计算学生总评成绩
    //2、统计各分数段人数(a、不及格 b、60-80 一般 c、80-90 良好 d 90-100 优秀)
    datacalculate(student,fsdrs,sum,normal_i,final_i);
    printf("-----------------输出接收学生实际人数------------------\n");
    printf("sum=%d\n",sum);
    printf("-----------------输出学生详细信息------------------\n");
    //2、输出接收学生详细信息
    show_students(student,sum);
    printf("-----------------输出学生总评成绩各分数段总人数------------------\n");
    printf("不及格人数=%d,一般人数=%d,良好=%d,优秀=%d\n",fsdrs[0],fsdrs[1],fsdrs[2],fsdrs[3]);
    //4、画出学生成绩分布图
    printf("-----------------输出学生成绩分布直方图---------------------\n");
    drawchart(fsdrs);
   
    getch();
}
搜索更多相关主题的帖子: include 期末成绩 结构体 如何 信息 
2014-12-16 09:46
我只是个学生
Rank: 3Rank: 3
来 自:中石大
等 级:论坛游侠
威 望:1
帖 子:57
专家分:190
注 册:2014-12-14
收藏
得分:0 
你要改什么?你把这么长的程序放着,想做什么?起码来电说明呀!

我们的善良将助长一个孩子不劳而获的懒惰心理
2014-12-16 10:17
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9026
专家分:54030
注 册:2011-1-18
收藏
得分:0 
#include //""它的查找路径是先到本地目录下查找该头文件,如果没有,就到系统目录system32下查找
                //<>它的查找路径是先到系统目录下查找,如果没有,就到本地目录下查找

------ 多看点儿正儿八经的书,少看点儿乱扯蛋的书。
在C标准中如是说:
#include <h-char-sequence> new-line
searches a sequence of implementation-defined places for a header identified uniquely by the specified sequence between the < and > delimiters, and causes the replacement of that directive by the entire contents of the header. How the places are specified or the header identified is implementation-defined.
#include "q-char-sequence" new-line
causes the replacement of that directive by the entire contents of the source file identified by the specified sequence between the " delimiters. The named source file is searched for in an implementation-defined manner. If this search is not supported, or if the search fails, the directive is reprocessed as if it read # include <h-char-sequence> new-line with the identical contained sequence (including > characters, if any) from the original directive.

简而言之,#include <>的是 header,#include ""的是 source file
2014-12-16 12:34
梦里云归
Rank: 2
等 级:论坛游民
帖 子:17
专家分:12
注 册:2014-9-20
收藏
得分:0 
回复 3楼 rjsp
喔,你说的真精辟,比那个解释易懂多了
2014-12-16 18:11
bisiqi
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-12
收藏
得分:0 
回复 2楼 我只是个学生
把中间void drawchart(int fsdrs[])部分改为指针,
2014-12-19 10:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
c语言中指针与数组关系密切  你所谓的改动还需要自己来实现  这才是学习 否则就是抄袭

DO IT YOURSELF !
2014-12-19 10:26
bisiqi
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2014-12-12
收藏
得分:0 
回复 6楼 wp231957
我想说的是如何才能实现数组与指针间的转换,我想要知道他们之间的衔接点,怎么学习反倒成了抄袭了呢,抄袭得来的不是自己的知识有何用,我还是希望各位有会的给我讲解一下,
2014-12-19 13:54
快速回复:哪位大师教教我如何把数组改为指针,拜托各位!!!!
数据加载中...
 
   



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

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