1. c语言编写学生成绩表
很好实现,一般的书都是以这个作为入门题,但是工程有些大,一般不会有人为你提供代码,或者恰巧他也刚刚写了这个题目...
主要思路:
用结构体保存数据,每个功能用函数实现,需要用文件指针创建数据文件,先定义一个足够大的数组,每次运行的时候就先把数据读入数组,然后提供各种功能!
一般不会遇到什么难点,就是需要去写每个函数,有些繁琐...
2. C语言问题怎样用二维数组编写学生成绩单。
按照你要求,用二维数组编写。
#include<stdio.h>
#include<string.h>
intmain()
{
charstu[4][100],stuName[5][5]={"小明","小王","小陈","小李","小丽"},score[4],maxName[4][5];//成绩最多输入3位数999
inti,j,num,sum,ave[4],maxScore[4]={0,0,0,0};
for(i=0;i<4;i++)
{
stu[i][0]=0;
sum=0;
printf("请输入学科%d各个学生的成绩:
",i+1);
for(j=0;j<5;j++)
{
printf("%15s的成绩:",stuName[j]);
scanf("%d",&num);
sprintf(score,"%d",num);
if(maxScore[i]<num)//记录每科最高成绩的人
{
maxScore[i]=num;
strcpy(maxName[i],stuName[j]);
}
sum=sum+num;//记录每科总分
strcat(stu[i],stuName[j]);//拼接成绩单
strcat(stu[i],":");
strcat(stu[i],score);
strcat(stu[i],";");
}
ave[i]=sum/5;//记录每科平均分
}
for(i=0;i<4;i++)
{
printf("学科%d的最高分为%s:%d,平均分为%d。
所有学生成绩单为:%s。
",i+1,maxName[i],maxScore[i],ave[i],stu[i]);
}
return0;
}
3. C语言:学生成绩单制作
// rtr.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
//1. 定义一个数组,用以存放学生的成绩。
#include <stdio.h>
void main()
{
int mark[1000];
int i,j=0,n,k,b,c,a,temp,min,l=0;
printf("请输入学生的人数:");
scanf("%d",&n);
/*printf("你想输入学生的哪科成绩:\n1:语文:数学\n");
scanf("%d",&a);*/
/*if (a==1)
{
printf("\n语文\n");
}
else*/
printf("\n数学成绩\n");
//2. 从键盘输入n个学生成绩两门成绩,并输出。
printf("请输入这%d个人的分数:",n);
for (i=0;i<n;i++)
{
scanf("%d",&mark[i]);
printf("mark[%d]=%d\n",i,mark[i]);
}
//3. 采用冒泡法/选择法,将学生平均成绩按照从高到低进行排序并输出。
printf("排序后的分数:");
for (i=0;i<n;i++)
{
for (j=n-1;j>i;j--)
{
if(mark[j-1]<mark[j])
{
temp=mark[j-1];
mark[j-1]=mark[j];
mark[j]=temp;
}
}
printf("%d ",mark[i]);
}
//4. 再输入一个学生的两门成绩,将此成绩按照排序规律插入原学生成绩数组并输出。
printf("\n请输入要插入的分数:");
scanf("%d",&b);
for (k=0;k<n;k++)
{
if (b>mark[k])
break;
}
for (i=n-1;i>=k;i--)
{
mark[i+1]=mark[i];
}
mark[k]=b;
printf("\n排序后的数组是:");
for (i=0;i<n+1;i++)
{
printf("%d ",mark[i]);
}
printf("\n反序存放从低到高:\n");
//5. 将排好序的成绩单进行反序存放,即原来是从高到低,现在改为从低到高排列,并输出。
for (i=0;i<n+1;i++)
{
for (j=n;j>i;j--)
{
if(mark[j]<mark[j-1])
{
temp=mark[j];
mark[j]=mark[j-1];
mark[j-1]=temp;
}
}
printf("%d ",mark[i]);
}
//6. 删除刚插入的学生的成绩并保持依然有序,并输出
printf("\n删除插入的分数后,排序的数组是:");
//for (k=0;k<n+1;k++)
//{
// if(b==mark[k])
// break;
//}
for (k=0;k<n+1;k++)
{
if (b<mark[k])
break;
}
for (i=k;i<=n;i++)
{
mark[i-1]=mark[i];
}
for (i=0;i<n;i++)
{
printf("%d ",mark[i]);
}
printf("\n达到分的的人数为:");
//7. 统计两门均达分的人数,统计单科达分的每门的人数
for(i=0;i<n;i++)
{
if(mark[i]>=60)
{
l++;
}
}printf("%d\n",l);
//8. 在项目报告中画出程序流程图,说明程序设计的算法,附主要程序段。
//9. 在项目报告中说明程序设计过程中的难点、解决办法及编程小结或体会。
}
4. c语言用指针做成绩表高到低排序…怎么做呀
给你讲个思路 学过太久了 不翻自己以前的模板就不会了
不知道你们要求的指针是什么意思,如果严格规定是链表就很难了
先说简单的
第一张
voidsort(int*score,intn)//score是保存成绩的数组n是人数
{
inti,j;
for(i=0;i<n-1;i++)//这里要跑n-1次循环每次选出剩下元素中最大的放到前面
{
intmaxx=i;//那么最后只剩两个元素时只要选一次就好
for(j=i+1;j<n;j++)//扫第i个元素之后的元素
{
if(score[maxx]<score[j])
maxx=j;
}
inttemp=score[i];
score[i]=score[maxx];
score[maxx]=temp;
}
return;
}//排序完毕
第二种
首先你肯定建好了一个链表 (这个链表不会建你这题真很难)
然后把你的链表切开 (有没有初始头结点? 就是不保存数据 但是依旧是一个节点防止链表为空的节点 没有的话把链表从第一个节点后面切开 有的话切第二个节点之后的)
切开后就变成了两条链表 比如 (-1)--1--4--6--8--9--7--5--1 切开就是 (-1)--1
4--6--8--9--7--5--1
两条链表的头节点都要保存(不然你就找不到了)
从第二条链表 (长的那条)中拿出第一个节点 断开 然后试着往第一条链表中插入
比第一个节点的值大? 插到它之前 否则往后走 直到遇到一个比他大的节点 插到它之后
循环插入之后,这条链表就是有序的了
(其实链表构建的时候你就可以构建一条有序的链表 )
5. C语言制作成绩单
#include <stdio.h>struct stud
{
int num;
char name[20];
float score1, score2, score3, aver;
}; int main(void)
{
int high;
int i, j;
struct stud myClass[10], *pStu = myClass;
struct stud temp; printf("Please input students info:Num Name score1 score2 score3\n");
for (i = 0; i < 10; i++)
{
printf("%d:", i + 1);
scanf("%d %s %f %f %f", &myClass[i].num, &myClass[i].name, &myClass[i].score1,
&myClass[i].score2, &myClass[i].score3);
myClass[i].aver = (myClass[i].score1 + myClass[i].score2 + myClass[i].score3) / 3;
} high = 0;
for (i = 0; i < 10; i++)
{
if (myClass[i].aver > myClass[high].aver)
{
high = i;
}
} printf("\nThe Highest is %s(%d)\nscore1=%.2f score2=%.2f score3=%.2f aver=%.2f\n",
myClass[high].name, myClass[high].num,
myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].aver); for (i = 0; i < 9; i++)
{
for (j = i + 1; j < 10; j++)
{
if ((pStu + j)->aver > (pStu + i)->aver)
{
temp = *(pStu + j);
*(pStu + j) = *(pStu + i);
*(pStu + i) = temp;
}
}
} printf("\nResult of sort:\n");
printf("Num Name score1 score2 score3 average\n");
for (i=0; i<10; i++)
{
printf("%-5d %-20s %-8.2f %-8.2f %-8.2f %-.2f\n", (pStu+i)->num, (pStu+i)->name,
(pStu+i)->score1, (pStu+i)->score2, (pStu+i)->score3, (pStu+i)->aver);
}
return 0;
}
6. C语言怎么输出一个成绩表
#include<stdio.h>
intmain()
{
floatscore[2][2]={0};
for(inti=0;i<2;i++)
{
for(intj=0;j<2;j++)
{
scanf("%f",&score[i][j]);
}
}
printf("---------------------- ");
printf("序号语文数学总成绩 ");
printf("---------------------- ");
for(inti=0;i<2;i++)
{
printf("%-4d%-6.1f%-6.1f%6.1f ",i+1,score[i][0],score[i][1],score[i][0]+score[i][1]);
}
return0;
}
//测试输出:
//80.0
//90.5
//90.5
//70.5
//----------------------
//序号语文数学总成绩
//----------------------
//180.090.5170.5
//290.570.5161.0
7. 如何用C语言编写一个学生的成绩表
新鲜出炉!!
刚刚课上实验提前做完写的
有点仓促
界面的星星自己再改善一下吧 更好看一点
我用win-tc编的
win-tc是Turbo C 2.0 的内核
所以应该没什么问题
呼呼~累死姐姐了
孩子啊 给的分太少咯
哎 ……
姐姐我太善良了
/*学生成绩表*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct node /*定义结构体链表节点*/
{
long student_number;
char name[20];
long phone_number;
char address[150];
struct node *next;
};
int main()
{
struct node *head=NULL;
struct node *pr=NULL;
struct node *p;
char num;
char respond;
/*整体循环结构 实现每步结束返回主界面*/
do{
fflush(stdin);
clrscr();
printf("\n**********************Student Table**********************\n");
printf("1.Add new student\n");
printf("2.Print the student table\n");
printf("3.Exit\n");
printf("*********************************************************\n");
printf("\n\n\n Please input the number related to yourwanted item:");
scanf("%c",&num);
/*添加学生信息*/
if(num=='1')
{
clrscr();
printf("\n*******************Add New Student******************\n");
p=head;
while(p->next!=NULL)
{
p=p->next;
}
do{
pr=(struct node*)malloc(sizeof(struct node)); /*为新的节点申请内存*/
if(pr==NULL)
{
printf("Not enough memory!");
break;
}
if(head==NULL)
{
head=pr;
}
printf("Please input the student number:"); /*输入学生信息*/
scanf("%ld",&(pr->student_number));
fflush(stdin);
printf("Please input the student's name:");
gets(pr->name);
printf("Please input the student's phone number:");
scanf("%ld",&(pr->phone_number));
fflush(stdin);
printf("Please input the student's address:");
gets(pr->address);
p->next=pr;
pr->next=NULL;
p=pr;
printf("Do you want to add another one(Y/N)?");
scanf(" %c",&respond);
fflush(stdin);
}while(respond=='Y'||respond=='y');
printf("\n\n\n Please press any key to continue...");
getch();
}
/*打印学生表信息*/
else if(num=='2')
{
clrscr();
printf("\n******************Print Student Table******************\n");
printf("Student Number | Student Name | Phone Number | Address ");
printf("\n");
p=head;
do{
printf("%-17ld%-15s%-15ld%s",p->student_number,p->name,p->phone_number,p->address);
printf("\n");
p=p->next;
}while(p!=NULL);
printf("\n\n\n Please press any key to continue...");
getch();
}
/*选择其他提示出错*/
else if(num!='1'&&num!='2'&&num!='3')
{
clrscr();
printf("\n\n\n***********************************************************\n");
printf("ERROR!The number can only be chosen from 1,2and 3\n");
printf("***********************************************************\n");
getch();
}
}while(num!='3'); /*选择3时退出循环*/
printf("\n\n\n\n Please press any key to exit...");
getch();
return 0;
}
8. 请高手帮忙用c语言设计一个二维成绩表。
摘要 # include /*定义一个求每门课平均成绩的函数AverageCourse 它的形参一个是二维数组,用来传递学生成绩; 一个是指针变量(数组名),存放每门课的平均成绩*/ void AverageCourse(float score[][4],float *avg) { int i,j; float sum; for(i=0;i<4;i++) { sum=0; for(j=0;j<4;j++) sum+=score[j][i]; avg[i]=sum/4; } } /*定义一个求总平均成绩的函数AverageAll 它的形参一个是指针变量(数组名),传递一个首地址 n是要计算的成绩个数*/ float AverageAll(float *score, int n) { int i=0; float sum = 0; while(i<n) { sum+=score[i]; i++; } return sum/n; } /*定义一个查询学生成绩的函数AStudentScore 它的形参一个是指向数组的指针,n是要计算的学生号*/ void StudentScore(float(*score)[4], int n) { int i; for(i=0; i<4; i++) printf("%4.2f ", *(*(score+n)+i)); printf(" "); } int main() { int num,i; /* 定义一个数组aveCourse来存储每门课的平均成绩, 定义变量aveAll来存储总的平均成绩*/
9. C语言做成绩单
按照你要求,用二维数组编写。 #include#includeint main( ){ char stu[4][100],stuName[5][5]={"小明","小王","小陈","小李","小丽"},score[4],maxName[4][5];//成绩最多输入3位数999 int i,j,num,sum,ave[4],maxScore[4]={0,0,0,0}; for(i=0;i<4;i++) { stu[i][0]=0; sum=0; printf("请输入学科%d各个学生的成绩:\n",i+1); for(j=0;j<5;j++) { printf("%15s的成绩:",stuName[j]); scanf("%d",&num); sprintf(score,"%d",num); if(maxScore[i]
10. C语言做成绩表
#include "stdio.h"
int main()
{
double s[11][3],x=0.0,y=0.0,z=0.0;
int i;
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的数学成绩:",i+1);
scanf("%lf",&s[i][0]);
x+=s[i][0];
printf("请输入第%d个学生的政治成绩:",i+1);
scanf("%lf",&s[i][1]);
y+=s[i][1];
printf("请输入第%d个学生的英语成绩:",i+1);
scanf("%lf",&s[i][2]);
z+=s[i][2];
}
s[10][0]=x/10.0;s[10][1]=y/10.0;s[10][2]=z/10.0;/*计算平均成绩*/
printf("数学的成绩的平均分为:%.3lf\n",s[10][0]);
printf("政治的成绩的平均分为:%.3lf\n",s[10][1]);
printf("英语的成绩的平均分为:%.3lf\n",s[10][2]);
getchar();
return 0;
}