急!看下这个C语言程序部分,这部分要怎么改才能使人数是想要多少就多少

[复制链接]
查看11 | 回复3 | 2011-6-23 22:20:09 | 显示全部楼层 |阅读模式
#include
#include
#include
#include
#define N 2
struct student
{
        long num;
/*学号*/
        char name[20]; /*姓名*/
        int chinesescore;
        int mathscore;
        int englishscore;
        int sum;
}
stu[N];
void input();                /*学生成绩录入*/
void statistics();/*学生总成绩*/
void select();       
/*学生成绩查询*/
void distinguish(); /*学生成绩修改与增添*/
void menu();                /*主菜单*/
/*1.学生成绩录入*/
void input()
{
        int i;
        {
                printf("\t\t№.1成绩录入\n\n");
        }
        {        printf("请输入要录入的学生人数: ");
                scanf("%d",&stu[N]);
        }
        for(i=0;i<N;i++)
        {       
                printf("\n请输入学号: ");
                scanf("%d",&stu.num);
                printf("\n请输入姓名: ");
                scanf("%s",&stu.name);
       
        printf("\n语文成绩: ");
                scanf("%d",&stu.chinesescore);
                printf("\n数学成绩: ");
                scanf("%d",&stu.mathscore);
        }
        printf("\n\n");
        getchar();
        printf("输入完毕!按任意键返回主菜单!");
        getchar();
}

回复

使用道具 举报

千问 | 2011-6-23 22:20:09 | 显示全部楼层
你可以用malloc去创建空间,用完之后给释放就可以了,在input函数只能够for循环之前加上这段代码,
int n,i;
struct _TStudent *stu;
printf("请输入要录入的学生人数:");
scanf("%d",&n);
stu = (struct _TStudent*)malloc(n * sizeof(int));在程序的最后加上释放内存的这句free(stu);...
回复

使用道具 举报

千问 | 2011-6-23 22:20:09 | 显示全部楼层
汇港名苑有没有车坐到深南大道上?有的话再转往车到竹子林下就可以了,东方银座就在竹子林车站旁边.抬头就可以看见的了....
回复

使用道具 举报

千问 | 2011-6-23 22:20:09 | 显示全部楼层
因为要事先开辟空间,不能要多少就多少吧,有个上限的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行