求大佬帮忙,自己编不出来,想参考一下
学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单
要求:使用文件方式存储数据。
#include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> int main( void ) { // 输入数量 num size_t num; printf( "请输入当前数列的个数: " ); if( 1 != scanf("%zu",&num) ) { puts( "输入错误." ); return 1; } // 申请 int[num+1],之所以加一是因为你后面还需要在其中插入一个元素 int* a; if( num+1>SIZE_MAX/sizeof(int) || (a=malloc((num+1)*sizeof(int)))==NULL ) { puts( "内存分配失败." ); return 1; } // 输入num个整数 printf( "请输入这%zu个整数: ", num ); for( size_t i=0; i!=num; ++i ) { if( 1 != scanf("%d",&a[i]) ) { puts( "输入错误." ); return 1; } } // 输入待插入的整数data int data; printf( "输入要插入的整数: " ); if( 1 != scanf("%d",&data) ) { puts( "输入错误." ); return 1; } // 找到插入点 size_t idx; for( idx=0; idx!=num && data>=a[idx]; ++idx ); // 将插入点后面的数依次后移 memmove( a+idx+1, a+idx, (num-idx)*sizeof(int) ); // 在插入点插入data a[idx] = data; // 输出插入后的数组 for( size_t i=0; i!=num+1; ++i ) printf( "%d%c", a[i], " \n"[i==num] ); // 释放内存 free( a ); }
#include <stdio.h> int main() { int x, y, num=0, data; printf("请输入当前数列的个数num: "); scanf("%d",&num); printf("输入了%d个整数",num); int a[num]; for(x=0; x<num; x++) { scanf("%d",&a[x]); } printf ("输入要插入的整数: "); scanf("%d",&data); for(x=0; x<num; x++) { if(data>a[x]) continue; y=num-1; while(y>=x) { a[y]=a[y+1]; y++; } a[x]=data; break; } if(y==num) { a[num]=data; for(x=0; x<num; x++) printf("%d",a[x]); printf("\n"); } return 0; }