晒晒自己学了这段时间的C语言自己写的简单的程序

来源:互联网 发布:钱夫人淘宝店衣服货源 编辑:程序博客网 时间:2024/06/10 04:35

程序写的不是很规范,希望大家多多指正。

       在编这个程序的过程中,编译运行把自己的电脑整死了一次,任何操作都无效了,从那以后我就确认无误小心翼翼的编完了这个“学生成绩录入、排序系统”。里面包含的知识有结构体的使用、结构体指针变量的引用、动态内存的分配、冒泡排序的算法。

      这是我第一次自己编写的稍大一点的程序,咱还处于菜鸟阶段,希望各位牛人看到小弟的程序之后多给指点、批评,小弟会虚心接受,并给以修正从而完善自我。以下是程序代码。

/*
2011年9月17日17:39:15
目的:做一个简单的学生成绩录入、排序、输出的系统
*/
#include<stdio.h>
#include<malloc.h>

//定义结构体类型
struct student 
{
 char name[100];
 int number;
 float score;
};
//函数功能:实现对学生信息的录入,学生的个数可自己设定
void inputdata(struct student *q,int len)
{
 int i;

 printf("请依次输入学生的姓名、编号和成绩(中间以空格分隔):\n");
 for(i = 0;i < len;i++)
  scanf("%s %d %f",&q[i].name,&q[i].number,&q[i].score);
}
//sort函数功能:根据学生的成绩排序,实现从低到高的排序
void sort(struct student *q,int len)
{
 int i,j;
 struct student t;

 for(i = 0;i < len;i++)
 {
  for(j = 0;j < len-1-i;j++)
  {
   if(q[j].score>q[j+1].score)
   {
    t = q[j];
    q[j] = q[j+1];
    q[j+1] = t;

   }
  }
 }

}
//outputdata函数功能:实现对排序之后的学生信息的输出
void outputdata(struct student *r,int len)
{
 int m;

 printf("排序由低到高的顺序为:\n");
 for(m = 0;m < len;m++)
 printf("%s的编号是%d,对应的成绩是:%f\n",r[m].name,r[m].number,r[m].score);
}
//主函数
int main(void)
{
 int val;
 
 printf("请输入您要录入学生的成绩的人数:");
 scanf("%d",&val);
 struct student * p=(struct student *)malloc(val*sizeof(struct student));
 inputdata(p,val);   //录入数据
 sort(p,val);   //把数据进行排序
 outputdata(p,val); //输出数据
 
 return 0;
}


 

 

原创粉丝点击