C语言设计函数和调用函数的题目

如题所述

第1个回答  2014-12-13
#include <stdio.h>
#define STUDENTNUM 10
/* 由于学号只有9个数字,一个long型的整数就可以表示 */
/* 成绩只是0~100之间,一个char就可以表示了 */
struct student
{
    long xh;
    char dxyy;
    char cyycxsj;
    char jsjdl;
} students[STUDENTNUM];
int ResearchStu(long xh);

/* 从文件读取学生成绩,如果文件不存在,需要手工输入成绩 */
/*  成绩数值必须在0~100之间。*/
void init()
{
    int i, tmp, err;
    FILE * fp = fopen("cj.dat", "rb");
    if(fp) fread(students, STUDENTNUM, sizeof(struct student), fp);
    else
    {
        for(i=0; i<STUDENTNUM; i++)
        {
            err = 0;
            printf("请输入学号:");
            scanf("%ld", &students[i].xh);

            printf("请输入大学英语成绩:");
            scanf("%d", &tmp);
            if(0 <= tmp && tmp <= 100) students[i].dxyy = (char)tmp;
            else err = 1;
 
            printf("请输入C语言程序设计成绩:");
            scanf("%d", &tmp);
            if(0 <= tmp && tmp <= 100) students[i].cyycxsj = (char)tmp;
            else err = 1;
 
            printf("请输入计算机导论成绩:");
            scanf("%d", &tmp);
            if(0 <= tmp && tmp <= 100) students[i].cyycxsj = (char)tmp;
            else err = 1;

            if(err)
            {
                printf("成绩输入错误,需要重新输入!\n");
                i--;
             }
        }
    }
}
void main()
{
    long xh, pos;
    init();
    scanf("%ld", &xh);
    pos = ResearchStu(xh);
    if(pos == -1) printf("查无此人!");
    else
    {
        printf("%d\t大学英语\t%d分\n", students[pos].xh, students[pos].dxyy);
        printf("%d\tC语言程序设计\t%d分\n", students[pos].xh, students[pos].cyycxsj);
        printf("%d\t计算机导论\t%d分\n", students[pos].xh, students[pos].jsjdl);
    }
}

int ResearchStu(long xh)
{
    int i;
    for(i=0; i<STUDENTNUM; i++) if(students[i].xh == xh) return i;
    return -1;
}

第2个回答  2014-12-13
有程序框架,自己先写一写啊,有问题再一起研究!追问

如果会的话还要问吗

追答

好吧,你把题目内容复制粘贴出来,让我少打点字

相似回答
大家正在搜