求大佬帮忙,自己编不出来,想参考一下
学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。
主要功能:
(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;
}
