当前位置:首页 » 考试成绩 » C语言学生成绩统计没交作业的人

C语言学生成绩统计没交作业的人

发布时间: 2020-12-13 11:37:41

⑴ C语言 提交作业出错

不能有两个main函数,这个题目应该只给了fab这个函数接口吧,你只要把int fab的定义提交应该就可以了,main函数和头文件不用你来写

⑵ C语言编程 急!要交作业了!不会!!

下面是我给的答案,有问题的联系我,再讨论。从12点多一直做到现在,别忘了给我选成推荐答案哈。累傻了我了都

1、 杨辉三角形的每一项数据正好是组合 (即s(n!/m!/(n-m)!)的值,其中n是行数(从0行开始);m是列数(从0列开始)。 请使用上述算法得到杨辉三角形每一个位置的值并按下图打印。 要求用函数f计算一个正整数的阶乘(用递归函数来实现),通过主函数调用f完成计算。

答: 下面是我的源代码,程序输出的部分在最后的注释里面

/*
* yanghui.cc
*
* Created on: 2010-6-14
* Author: LiuFeng
* Email: [email protected]
*/

#include <cstdio>
#include <iostream>

using namespace std;

int fac(int base){
if(base==1){
return 1;
}
return fac(base-1)*base;
}

int triDisplay(int** a, int row, int col){
if(row != col){
perror("must : row=col");
return (-1);
}
int sz=row;

printf("\n");
for(int i=0;i<sz;++i){
*((int*)a+i*sz+0)=1;
*((int*)a+i*sz+i)=1;
}

for(int n=2;n<sz;++n)
for(int m=1;m<n;++m){
*((int*)a+n*sz+m) = fac(n)/fac(m)/fac(n-m);
}

for(int n=0;n<sz;++n){
for(int m=0;m<=n;++m){
printf("%5d", *((int*)a+n*sz+m) );
}
printf("\n");
}
return 0;

}

int
main(void){
int data[10][10];
int size=10;

if(triDisplay((int**)data,size,size)<0){
perror("bad mtria");
exit(-2);
}
return 0;
}

/*
[Administrator@ /<7>06/14]$ g++ -g -O3 -o tri yanghui.cc
[Administrator@ /<7>06/14]$ ./tri.exe

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

*/

2. 编写一个函数,要求对n个学生的成绩进行排序,要求用数组名作函数参数。在数组a中存放了10个学生某门课程的成绩,调用上述函数,实现对10个学生的成绩排序。

答: 程序的源代码如下,程序的输出在最后面的注释里面

/*
* DcSort.cc
*
* Created on: 2010-6-14
* Author: LiuFeng
* Email: [email protected]
*
* g++ -g -O3 DcSort.cc -Wall -o dsort
*/

#include <cstdio>
#include <cstring>
#include <cstdlib>

typedef struct
{
char _sname[30];
double _sscore;
} stu;

int
Partition(stu * stus, int l, int h)
{
stu pivot = stus[l];

while(l<h){
while(l<h && ((stus[h]._sscore) >= (pivot._sscore))) h--;
if(l<h) stus[l++]=stus[h];
while(l<h && ((stus[l]._sscore) <= (pivot._sscore))) l++;
if(l<h) stus[h--]=stus[l];
}
stus[l]=pivot;

return l;
}

void DcSort(stu* stus, int low, int high){
int pivotpos;
if(low<high){
pivotpos=Partition(stus,low,high);

DcSort(stus,low,pivotpos-1);
DcSort(stus,pivotpos+1,high);
}
}

int main(void){
stu s[10]={
{"zhao",60},
{"qian",40},
{"sun",80},
{"li",90},
{"zhou",70},
{"wu",50},
{"zheng",80},
{"jiang",90},
{"shen",100},
{"han",80},
};

for(int i=0; i<10;++i){
printf("student: name: %s, score: %f\n", s[i]._sname, s[i]._sscore);
}

DcSort(s,0,10);

printf("\n===================after sorted ==================\n");

for(int i=0; i<10;++i){
printf("student: name: %s, score: %f\n", s[i]._sname, s[i]._sscore);
}

return 0;
}

/*

输出结果:
[Administrator@ ~/<1>preInterView/SortAndFind]$ g++ -g -O3 DcSort.cc -Wall -o dsort
[Administrator@ ~/<1>preInterView/SortAndFind]$ clear
[Administrator@ ~/<1>preInterView/SortAndFind]$ ./dsort.exe
student: name: zhao, score: 60.000000
student: name: qian, score: 40.000000
student: name: sun, score: 80.000000
student: name: li, score: 90.000000
student: name: zhou, score: 70.000000
student: name: wu, score: 50.000000
student: name: zheng, score: 80.000000
student: name: jiang, score: 90.000000
student: name: shen, score: 100.000000
student: name: han, score: 80.000000

===================after sorted ==================
student: name: qian, score: 40.000000
student: name: wu, score: 50.000000
student: name: zhao, score: 60.000000
student: name: zhou, score: 70.000000
student: name: han, score: 80.000000
student: name: sun, score: 80.000000
student: name: zheng, score: 80.000000
student: name: jiang, score: 90.000000
student: name: li, score: 90.000000
student: name: shen, score: 100.000000
[Administrator@ ~/<1>preInterView/SortAndFind]$

*/

三、程序运行结果示例:

第一题:
/*
[Administrator@ /<7>06/14]$ g++ -g -O3 -o tri yanghui.cc
[Administrator@ /<7>06/14]$ ./tri.exe

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

*/

第二题:

/*

输出结果:
[Administrator@ ~/<1>preInterView/SortAndFind]$ g++ -g -O3 DcSort.cc -Wall -o dsort
[Administrator@ ~/<1>preInterView/SortAndFind]$ clear
[Administrator@ ~/<1>preInterView/SortAndFind]$ ./dsort.exe
student: name: zhao, score: 60.000000
student: name: qian, score: 40.000000
student: name: sun, score: 80.000000
student: name: li, score: 90.000000
student: name: zhou, score: 70.000000
student: name: wu, score: 50.000000
student: name: zheng, score: 80.000000
student: name: jiang, score: 90.000000
student: name: shen, score: 100.000000
student: name: han, score: 80.000000

===================after sorted ==================
student: name: qian, score: 40.000000
student: name: wu, score: 50.000000
student: name: zhao, score: 60.000000
student: name: zhou, score: 70.000000
student: name: han, score: 80.000000
student: name: sun, score: 80.000000
student: name: zheng, score: 80.000000
student: name: jiang, score: 90.000000
student: name: li, score: 90.000000
student: name: shen, score: 100.000000
[Administrator@ ~/<1>preInterView/SortAndFind]$

*/

二、实验内容:按题目要求完成程序的改错、调试、填空和编写。

1、以下程序中,main函数通过调用fun()函数统计整数序列中的负数的个数以及平均值。
本题约定平均值由函数返回,负数的个数由参数返回。程序有若干错误,请先阅读程序,找出其中的错误行,
并写出出错的原因,最后上机调试该程序验证自己的预测。

#1 double aver(int a[], int n, int *p) // p所谓返回的参数之一,应该使用二级指针,或者指针的引用;
#2 { int i,sum=0 ; // 这里的*p指向了函数内部的临时变量,且该变量在函数结束时,
// 会同时被系统从栈上释放掉, 那么你在main函数中读取p指向的地址,得到的
// 就是一个不可以预期的值了,也就是“野指针”
// 使用二级指针或者指针的引用,是可以将内存在函数体内外带入带出的,但是
// 注意要在main中先申请好
#3 *p=0 ;
#4 for(i=0;i<n;i++)
#5 { sum=sum+a[i] ;
#6 if(a[i]<0) *p++;
#7 }
#8 return sum/n;
#9 }
#10 #include "stdio.h"
#11 main()
#12 { int count,x[]={0,12,33,-9,-5,27,80,0,54,63};
#13 double av;
#14 av=aver(x,10,count);
#15 printf("count: %d\naverage: %.2f\n",count,av);
#16 }

2、设有如下结构定义,且struct link为链表的结点类型,由该结构类型创建的链表中的a结点已被指针p指向(见下图),请完成下面的操作:

struct link
{ int score;
struct link *next;
}*p,*q;

(1) 写出删除b结点(包括释放其存储空间)的语句序列(允许借助于q指针),但要求链表的连续结构不能破坏,不能移动p指针。

答:

void
deleteNode(link* p, link* q, int b)
{
q = p;
int len=0;

while(q->next)++len;

if(len < b) {perror("You input a overflow position"); exit(-1);}

q=p;
while(--b){ // move to b
q=q->next;
}

while(q->next) { // overwrite the prenode,one by one
q->score=q->>next->score;
}

free(q) // q point to the last node;
}

(2) 阅读下面程序说明,按注释提示,在划线处补充细节,使程序达到预期功能。 [程序说明]以下程序中,函数create的功能是创建一个结点类型为struct link的学生成绩链表,main函数中,首先调用create函数创建一个包含N个结点的成绩链表,然后调用问题(1)的算法,将链表的第2个结点删除掉,要求输出结点删除前、后链表的内容,以验证问题(1)算法的正确性。

#include <stdio.h>
#define N 5
#define L sizeof(struct link)
struct link
{ int score; /* 成绩 */
(1);/* 定义结点的指针域next */
};

struct link *create(void)
{
struct link *head,*p;
int i;
head=NULL;
printf("Input %d records\n",N);
for(i=1;i<=N;i++)
{
p=(2) ; /* 创建一个动态结点 */
scanf("%d",&p->score);
(3); /* 新结点进栈 */
head=p;
}
return (4) ; /* 返回所创建链表的头指针 */
}

void printlist(struct link *head) /* 输出链表 */
{ struct link *p;
p=head;
while(p!=NULL)
{ printf("%d,",p->score);
(5) ; /* 使p后移一个结点 */
}
printf("\n");
}

int
main( void)
{ struct link *base,*new;
(6) ; /* 调用create函数,创建链表 */
printlist(base); /* 输出原始链表 */
/* 借助于new指针删除第2个结点 */

(8) ; /* 输出结点删除以后的链表内容 */
printf("ok!\n");
}

(2)答:
【 (1) link * next; 】
【 (2) p= (link*)malloc(sizeof(struct link)); 】
【 (3) p->next = head 】
【 (4) head 】
【 (5) p=p->next 】
【 (6) base = create(); 】
【 (7) deleteNode(base, new, int b); // 利用我们上一问中,写好的函数 】
【 (8) printlist(base);】

⑶ 刚接触c语言,做了一个随机抽取学生交作业的程序,求帮忙

#include<iostream>
#include<ctime>
#include<stdio.h>
int main()
{
int i;
char*student[]=
{
"jacky",
"peter",
"paul",
"harry"
};
int a[4];
srand(time(0));
for( i=0;i<4;i++)
{
a[i]=rand()%4; //这里将+1去掉,因为数组的下标是从0开始的,即"jacky"在专student[0]单元,"harry"在student[3]单元,+1导致可能出现4,这样就溢出了属
printf("%s\n",student[a[i]]);
}
}

⑷ 急急急!C语言高手 帮帮忙 我们要交大作业 不胜感激!!!!

给你两种:

第一种:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct student{
int id;
char name[10];
int age;
char sex[10];
char birthady[20];
int tel;
char nativeplace[50];
}st[50];
int i=0;
void shuru() {
char a;
do{
printf("\n请输入学号:");
scanf("%d",&st[i].id);
fflush(stdin);
printf("\n请输入姓名:");
gets(st[i].name);
printf("\n") ;
printf("请输入年龄:");
scanf("%d",&st[i].age);
fflush(stdin);
printf("\n请输入姓别:");
gets(st[i].sex);
fflush(stdin);
printf("\n请输入生日:");
gets(st[i].birthady);
printf("\n请输入电话:");
scanf("%d",&st[i].tel);
fflush(stdin);
printf("\n请输入籍贯:");
gets(st[i].nativeplace);
printf("\n是否继续输入另外一个学生信息?(y/n)");
fflush(stdin);
a=getchar();
i++;
}while(a=='y' && i<=50);

}

void xianshi()
{
int j;
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
for(j=0;j<i;j++)
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[j].id,st[j].name,st[j].age,st[j].sex,st[j].birthady,st[j].tel,st[j].nativeplace);
}

void paixu() //按年龄从大到小排序函数
{
int j,k;
int temp;
for(j=0;j<i;j++)
{
for(k=0;k<i-1-j;k++)
{
if(st[k].age<st[k+1].age)
{
temp=st[k].age;
st[k].age=st[k+1].age;
st[k+1].age=temp;
}
}
}
xianshi(); //排序后输出
}

void chazhao()
{
int m;
char name[20],b;
do
{
printf("\n请输入想查找的学生姓名:");
fflush(stdin);
gets(name);
for(m=0;m<i;m++)
{
if(strcmp(name,st[m].name)==0)
{
printf("\n\t您查找的学生在第%d个位置找到了!!!\n",m+1);
break;
}
}
if(m>=20)
printf("\n\t没有找到这个学生!!!\n");
else
{
printf("\t学号\t姓名\t年龄\t性别\t生日\t\t电话\t籍贯\n");
printf("\t%d\t%s\t%d\t%s\t%s\t%d\t%s\n",
st[m].id,st[m].name,st[m].age,st[m].sex,st[m].birthady,st[m].tel,st[m].nativeplace);
}
printf("\n是否查找另一个学生的信息?(y/n)");
fflush(stdin);
b=getchar();

}while(b=='y');

}

void shanchu()
{
char name[20],c;
int a,b;
do
{
printf("\n请输入要删除的学生姓名:\n");
fflush(stdin);
gets(name);
for(a=0;a<i;a++)
{
if(strcmp(name,st[a].name)==0)
break;
}

for(b=a;b<i;b++)
st[b]=st[b+1];
if(a>i)
printf("\t没有找到这个学生!!!\n");

else
{
i--;
xianshi();
}

printf("\n是否继续删除另一个学生信息?(y/n) ");
fflush(stdin);
c=getchar();
}while(c=='y');

}

void charu()
{
shuru();
paixu();

}

void main() //主函数
{
int change;
do{
system("cls");
printf("============================学生信息管理系统===================================\n");
printf("\t\t一: 输入学生信息\n");
printf("\t\t二: 显示学生信息\n");
printf("\t\t三: 查找学生信息\n");
printf("\t\t四: 删除学生信息\n");
printf("\t\t五: 插入学生信息\n");
printf("\t\t六: 退出程序\n");
fflush(stdin);
printf("\t\t请输入功能选项:");
scanf("%d",&change);
switch(change)
{
case 1:
shuru(); break;
case 2:
xianshi(); break;
case 3:
chazhao(); break;
case 4:
shanchu(); break;
case 5:
charu(); break;
case 6:
break;
}
getch();
}while(change!=6);
}
第二种
#include<stdio.h>
#include<conio.h>
#include<string.h>

typedef struct STUDENT
{
char studentNumber[10];/*学生学号*/
char studentName[20];/*学生姓名*/
char studentSEX[10];/*学生性别*/
char className[20];/*班级名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
float mark4;/*第4门成绩*/
float mark5;/*第5门成绩*/
struct STUDENT *next;
}STUDENT;
STUDENT *headLink;/*链表表头指针*/
/*以下是函数声明*/
void ReadInfoFormFile(void);
void DesplayMenu(void);
void CreateHeadLink(void);
STUDENT *MallocNode(void);
void GetInformation(STUDENT *t);
void OutputInformation(void);
void DesplayInfoBystudentName(void);
void DesplayInfoBystudentNumber(void);
void DesplayOneNode(STUDENT *t);
void InsertOneNode(STUDENT *t);
void DeleteNodeBystudentNumber(void);
void ChangeMarkByName(void);
void ChangeMarkByNumber(void);
void SaveLinkToFile(void);
void DesplayMarkSegment(void);
void CompositorByTotalMark(void);
int choose;/*用于接受用户的选择*/
/*主函数*/
void main()
{
CreateHeadLink();
ReadInfoFormFile();
DesplayMenu();
}
/************************************
函数功能:从文件中读学生信息到链表中
************************************/
void ReadInfoFormFile(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%s%f%f%f",p->studentNumber,p->studentSEX,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p->mark3),&(p->mark4),&(p->mark5))>0)
{
InsertOneNode(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
函数功能:显示菜单,根据用户的输入
完成相应的功能
************************************/
void DesplayMenu(void)
{
STUDENT *p;
printf("-------请选择相应功能------------\n\n");
printf("| 1 显示所有学生的信息 |\n");
printf("| 2 按姓名查询 |\n");
printf("| 3 按学号查询 |\n");
printf("| 4 增加学生 |\n");
printf("| 5 删除学生 |\n");
printf("| 6 按姓名修改学生成绩 |\n");
printf("| 7 按学号修改学生成绩 |\n");
printf("| 8 保存所有学生信息 |\n");
printf("| 9 显示优秀和不及格学生成绩 |\n");
printf("| 10 排序结果并输出成绩 |\n");
printf("| 11 退出 |\n\n");
scanf("%d",&choose);/*取得用户的选择*/
switch(choose)
{
case 1:
OutputInformation();/*显示所有学生的信息*/
break;
case 2:
DesplayInfoBystudentName();
break;
case 3:
DesplayInfoBystudentNumber();/*根据用户输入的学号显示该学生的信息*/
break;
case 4:
p=MallocNode();/*先申请一个新结点*/
GetInformation(p);/*要求用户输入信息到新结点中*/
InsertOneNode(p);/*将新结点加到链表中*/
break;
case 5:
DeleteNodeBystudentNumber();/*根据用户输入的学号删除该学生*/
break;
case 6:
ChangeMarkByName();/*根据用户输入的姓名修改学生成绩*/
break;
case 7:
ChangeMarkByNumber();/*根据用户输入的学号修改学生成绩*/
break;
case 8:
SaveLinkToFile();/*保存数据*/
break;
case 9:
DesplayMarkSegment();/*显示各分数段的学生成绩*/
break;
case 10:
CompositorByTotalMark();
break;
case 11:
SaveLinkToFile();/*保存数据后再退出*/
free(headLink);
exit(1);
break;
default:
break;
}
DesplayMenu();/*递归调用*/
}
/************************************
函数功能:建立链表表头
************************************/
void CreateHeadLink(void)
{
STUDENT *p;
p=(STUDENT*)malloc(sizeof(STUDENT));
headLink=p;
p->next=NULL;
}
/************************************
函数功能:申请一个新结点,并将其初始化
************************************/
STUDENT *MallocNode(void)
{
STUDENT *p;
int i;
p=(STUDENT*)malloc(sizeof(STUDENT));
if(p==NULL)
return NULL;
for(i=0;i<10;i++)
p->studentNumber[i]='\0';
for(i=0;i<20;i++)
p->studentName[i]='\0';
for(i=0;i<10;i++)
p->studentSEX[i]='\0';
for(i=0;i<20;i++)
p->className[i]='\0';
p->mark1=0.0;
p->mark2=0.0;
p->mark3=0.0;
p->mark4=0.0;
p->mark5=0.0;
p->next=NULL;
return p;
}
/************************************
函数功能:取得用户输入的学生信息
************************************/
void GetInformation(STUDENT *t)
{
printf("请输入学生学号:\n");
scanf("%s",t->studentNumber);
printf("请输入学生姓名:\n");
scanf("%s",t->studentName);
printf("请输入学生性别:\n");
scanf("%s",t->studentSEX);
printf("请输入该生所在班级:\n");
scanf("%s",t->className);
printf("请输入第1门成绩:\n");
scanf("%f",&(t->mark1));
printf("请输入第2门成绩:\n");
scanf("%f",&(t->mark2));
printf("请输入第3门成绩:\n");
scanf("%f",&(t->mark3));
printf("请输入第4门成绩:\n");
scanf("%f",&(t->mark4));
printf("请输入第5门成绩:\n");
scanf("%f",&(t->mark5));
}
/************************************
函数功能:在链表的结尾处增加一个结点
************************************/
void InsertOneNode(STUDENT *t)
{
STUDENT *p;
p=headLink;
while(p->next)
{
p=p->next;
}
p->next=t;
}
/************************************
函数功能:根据用户输入的学生姓名显示该学生的信息
************************************/
void DesplayInfoBystudentName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据用户输入的学号显示该学生的信息
************************************/
void DesplayInfoBystudentNumber(void)
{
STUDENT *p;
char studentNumber[10];
char flag=0;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
DesplayOneNode(p);
flag=1;
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:输出一个结点的信息
************************************/
void DesplayOneNode(STUDENT *t)
{
printf("%s\t",t->studentNumber);
printf("%s\t",t->studentName);
printf("%s\t",t->studentSEX);
printf("%s\t",t->className);
printf("%.2f\t",t->mark1);
printf("%.2f\t",t->mark2);
printf("%.2f\t",t->mark3);
printf("%.2f\t",t->mark4);
printf("%.2f\t",t->mark5);
printf("%.2f\t",t->mark1+t->mark2+t->mark3+t->mark4+t->mark5);
printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3+t->mark4+t->mark5)/5);
}
/************************************
函数功能:根据用户输入的学号删除该学生
************************************/
void DeleteNodeBystudentNumber(void)
{
char studentNumber[10];
STUDENT *p,*q;
char flag=0;
printf("请输入要删除的学生学号:");
scanf("%s",studentNumber);
p=headLink;
q=headLink->next;
while(q)
{
if(strcmp(q->studentNumber,studentNumber)==0)
{
p->next=q->next;
free(q);
flag=1;
break;
}
p=p->next;
q=q->next;
}
if(!flag)
{
printf("不存在该学号的学生\n");
return;
}
printf("成功删除\n");
}
/************************************
函数功能:显示所有学生的信息
************************************/
void OutputInformation(void)
{
STUDENT *p;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
while(p)
{
DesplayOneNode(p);
p=p->next;
}
}
/************************************
函数功能:根据输入的姓名修改成绩
************************************/
void ChangeMarkByName(void)
{
STUDENT *p;
char studentName[20];
char flag=0;
float mark1,mark2,mark3,mark4,mark5;
p=headLink->next;
printf("请输入学生姓名:\n");
scanf("%s",studentName);
while(p)
{
if(strcmp(p->studentName,studentName)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
printf("请输入新的第4门成绩:\n");
scanf("%f",&mark4);
printf("请输入新的第5门成绩:\n");
scanf("%f",&mark5);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
p->mark4=mark4;
p->mark5=mark5;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在姓名为 %s 的学生\n",studentName);
}
/************************************
函数功能:根据输入的学号修改成绩
************************************/
void ChangeMarkByNumber(void)
{
STUDENT *p;
char studentNumber[20];
char flag=0;
float mark1,mark2,mark3,mark4,mark5;
p=headLink->next;
printf("请输入学生学号:\n");
scanf("%s",studentNumber);
while(p)
{
if(strcmp(p->studentNumber,studentNumber)==0)
{
printf("请输入新的第1门成绩:\n");
scanf("%f",&mark1);
printf("请输入新的第2门成绩:\n");
scanf("%f",&mark2);
printf("请输入新的第3门成绩:\n");
scanf("%f",&mark3);
printf("请输入新的第4门成绩:\n");
scanf("%f",&mark4);
printf("请输入新的第5门成绩:\n");
scanf("%f",&mark5);
p->mark1=mark1;
p->mark2=mark2;
p->mark3=mark3;
p->mark4=mark4;
p->mark5=mark5;
flag=1;
printf("修改成功\n");
break;
}
p=p->next;
}
if(!flag)
printf("对不起,不存在学号为 %s 的学生\n",studentNumber);
}
/************************************
函数功能:保存链表数据到文件中
************************************/
void SaveLinkToFile(void)
{
STUDENT *p;
FILE *fp;
p=headLink->next;
if(p==NULL)
{
printf("现在没有学生信息,请先输入学生信息\n\n");
return;
}
fp=fopen("student.txt","w+");
if(!fp)
{
printf("文件不存在\n");
return;
}
while(p)
{
fprintf(fp,"%s %s %s %s %f %f %f %f %f\n",p->studentNumber,p->studentName,p->studentSEX,p->className,p->mark1,p->mark2,p->mark3,p->mark4,p->mark5);
p=p->next;
}
fclose(fp);
}
/************************************
函数功能:显示优秀和不及格学生成绩
************************************/
void DesplayMarkSegment(void)
{
STUDENT *p;
int count=0;
p=headLink->next;
printf("60分以下(不及格)的学生成绩如下:\n");
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
while(p)
{
if((6>((int)(p->mark1/10)))||(6>((int)(p->mark2/10)))||(6>((int)(p->mark3/10)))||(6>((int)(p->mark4/10)))||(6>((int)(p->mark5/10))))/*只要有一科不及格就认为该生不及格*/
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("不及格的学生一共有%d人\n",count);
p=headLink->next;
printf("成绩优秀的学生成绩如下:\n");
printf("学号\t姓名\t性别\t班级\t成绩1\t成绩2\t成绩3\t成绩4\t成绩5\t总成绩\t平均成绩\n\n");
count=0;
while(p)
{
if((8<=((int)(p->mark1/10)))&&(8<=((int)(p->mark2/10)))&&(8<=((int)(p->mark3/10)))&&(8<=((int)(p->mark4/10)))&&(8<=((int)(p->mark5/10))))
{
count++;
DesplayOneNode(p);
}
p=p->next;
}
printf("成绩优秀的学生一共有%d人\n",count);
}
/************************************
函数功能:按总成绩排序
************************************/
void CompositorByTotalMark(void)
{
STUDENT exchange,*r,*p,*q;
r=headLink->next;
if(r==NULL)
{
printf("现在还没学生信息,请先输入学生信息\n");
return;
}
while(r)/*两层while循环实现排序*/
{
p=r;
q=r->next;
while(q)
{
if((q->mark1+q->mark2+q->mark3+q->mark4+q->mark5)>(p->mark1+p->mark2+p->mark3+p->mark4+p->mark5))
{
strcpy(exchange.studentNumber,q->studentNumber);/*先复制q结点信息到exchange*/
strcpy(exchange.studentName,q->studentName);
strcpy(exchange.className,q->className);
exchange.mark1=q->mark1;
exchange.mark2=q->mark2;
exchange.mark3=q->mark3;
exchange.mark4=q->mark4;
exchange.mark5=q->mark5;

strcpy(q->studentNumber,p->studentNumber);/*再复制p结点信息到q*/
strcpy(q->studentName,p->studentName);
strcpy(q->studentSEX,p->studentSEX);
strcpy(q->className,p->className);
q->mark1=p->mark1;
q->mark2=p->mark2;
q->mark3=p->mark3;
q->mark4=p->mark4;
q->mark5=p->mark5;
strcpy(p->studentNumber,exchange.studentNumber);/*最后复制exchange结点信息到p*/
strcpy(p->studentName,exchange.studentName);
strcpy(p->className,exchange.className);
p->mark1=exchange.mark1;
p->mark2=exchange.mark2;
p->mark3=exchange.mark3;
p->mark4=exchange.mark4;
p->mark5=exchange.mark5;
}
q=q->next;
}
r=r->next;
}
OutputInformation();
}

⑸ 求一段C语言程序代码,内容是学生信息管理系统,代码不要太长,有查询和删除就好。我是作为期末作业交的。

这个我c语言结构与链表的作业:
#include <stdio.h>
#include <string.h>

struct staff {
char num[6]; //学号
char name[20]; //姓名
double wage; //成绩
struct staff *next;
};

/**
*输入数据
*/
struct staff *create(int n) {
struct staff *head=NULL;
struct staff *tail,*newnode;
char num[6],name[20];
double wage;
for(int i=0;i<n;i++) {
newnode = new staff;
scanf("%s",num);
scanf("%s",name);
scanf("%lf",&wage);
strcpy(newnode->num,num);
strcpy(newnode->name,name);
newnode->wage=wage;
if(head==NULL)
head = newnode;
else
tail->next = newnode;
tail=newnode;
}
tail->next=NULL;
return(head);
}

/**
*删除数据
*/
struct staff *deln(struct staff *head,int n) {
struct staff *p,*q;
int i=0;
p=head;
while(++i!=n && p->next!=NULL) {
q=p;
p=p->next;
}
if(i==n) {
if(p==head) head=p->next;
else q->next=p->next;
delete(p);
} else
printf("Not been found!\n");
return(head);
}

/**
*显示数据
*/
void showdate(struct staff *head) {
struct staff *p=head;
int i=1;
while(p!=NULL) {
printf("%d| %s,%s,%.2f\n",i++,p->num,p->name,p->wage);
p=p->next;
}
}

void main() {
struct staff *head;
int n;
printf("请输入初始链表结点数 ");
scanf("%d",&n);
head=create(n);
printf("删除前:\n");
showdate(head);
int m=0;
while(m<1 || m>n) {
printf("请输入要删除的结点号:\n");
scanf("%d",&m);
}
head=deln(head,m);
printf("删除后:\n");
showdate(head);
}

⑹ c语言题,急交作业

一:
#include<stdio.h>
int main()
{
int score;
printf("请输入成绩:\n");
scanf("%d",&score);
if(score<=100 && score>=0)
(score/10)
{
case 10:
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default:
printf("E\n");
break;
}
else
printf("成绩有误\n");

return 0;
}
二:
#include<stdio.h>
main()
{
int t;
double a,rate;
printf("请输入奖金数a:\n");
scanf("%lf",&a);
t=(int)(a/500);

switch(t)
{
case 0:
rate=0.00;
printf("a=%lf\nrate=%lf\ntax=%lf\nprofit=%lf\n",a,rate,a*rate,a*(1-rate));
break;
case 1:
rate=0.05;
printf("a=%lf\nrate=%lf\ntax=%lf\nprofit=%lf\n",a,rate,a*rate,a*(1-rate));
break;
case 2:
case 3:
rate=0.08;
printf("a=%lf\nrate=%lf\ntax=%lf\nprofit=%lf\n",a,rate,a*rate,a*(1-rate));
break;
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
rate=0.10;
printf("a=%lf\nrate=%lf\ntax=%lf\nprofit=%lf\n",a,rate,a*rate,a*(1-rate));
break;
default:
rate=0.15;
printf("a=%lf\nrate=%lf\ntax=%lf\nprofit=%lf\n",a,rate,a*rate,a*(1-rate));
break;
}
}

三:
#include<stdio.h>
int main()
{
int n,i,flag=0;
printf("请输入一个数:\n");
scanf("%d",&n);
if(n<=2)
{
printf("输入的数小于或等于2,请重新输入\n");
return -1;
}
else{
for(i=2;i<n;++i)
{
if(n%i == 0)
{
flag=0;
break;
}
else
flag=1;

}
}
if(flag==0)
printf("%d不是素数\n",n);
else
printf("%d是素数\n",n);
return 0;
}

⑺ 最近要交C语言大作业了,由于上学期时没好好学,现在很是后悔,希望有好心人帮帮我吧!!作业的要求如下:

本科时候的一个通信录管理,有你说的功能。完全可以运行。LZ看看吧。稍微加工一下就可以。
1 #include<iostream>
2 #include<string.h>
3 using namespace std;
4 struct Friend
5 {
6 double num;
7 string name;
8 char sex;
9 string telnum;
10 string addr;
11 Friend *next;
12 };
13 Friend *head;
14 Friend *Create ()
15 {
16 Friend *ps;
17 Friend *pEnd;
18 ps = new Friend;
19 cout << " 请你输入朋友的编号:" << endl;
20 cin>>ps->num;
21 cout << " 请你输入朋友的姓名:"<<endl;
22 cin>>ps->name;
23 cout << " 请你输入朋友的性别:"<<endl;
24 cin>>ps->sex;
25 cout << " 请你输入朋友电话:" << endl;
26 cin>>ps->telnum;
27 cout << " 请你输入朋友的地址:" << endl;
28 cin>>ps->addr;
29 head = ps;
30 pEnd = ps;
31 cout<<" 是否继续输入:继续按Y ,退出按N "<<endl;
32 char m;
33 cin>>m;
34
35 if(m=='y'||m=='n'||m=='Y'||m=='N')
36 {
37 while (m=='y'||m=='Y' )
38 {
39 ps = new Friend;
40 cout << " 请你输入朋友的编号:" << endl;
41 cin>>ps->num;
42 cout << " 请你输入朋友的姓名:"<<endl;
43 cin>>ps->name;
44 cout << " 请你输入朋友的性别:"<<endl;
45 cin>>ps->sex;
46 cout << " 请你输入朋友电话:" << endl;
47 cin>>ps->telnum;
48 cout << " 请你输入朋友的地址:" << endl;
49 cin>>ps->addr;
50 pEnd->next = ps;
51 pEnd = ps;
52 char n;
53 cout<<" 是否继续输入:继续按Y ,退出按N "<<endl;
54 cin>>n;
55 if(n!='y'&&n!='Y')
56 m='N';
57 else
58 m='y';
59 }
60 }
61 else
62 cout<<" 对不起,你输入了非法数据。"<<endl;
63 pEnd->next = NULL;
64 return (head);
65 }
66
67 void chaxun(int num1,string name1) //
68 { int r=0;
69 if(head==NULL)
70 {
71 r++;
72 cout<<" 对不起,没有你所查找的朋友:"<<endl;
73 return;
74 }
75
76 for (Friend * pGuard = head; pGuard; pGuard = pGuard->next)
77 {
78 if (pGuard->num==num1)
79 {
80 r++;
81 cout<<" 你查找的朋友信息是:"<<endl;
82 cout<<pGuard->num<<" "<<pGuard->name<<" "<<pGuard->sex<<" "<<pG
uard->telnum<<" "<<pGuard->addr<<endl;
83 }
84 if( pGuard->name==name1)
85 {
86 r++;
87 cout<<" 你查找的朋友信息是:"<<endl;
88 cout<<pGuard->num<<" "<<pGuard->name<<" "<<pGuard->sex<<" "<<pGua
rd->telnum<<" "<<pGuard->addr<<endl;
89 }
90 }
91 if(r==0)
92 cout<<" 对不起,你输入了错误信息"<<endl;
93 }
94
95 void Delete (int number)
96 {
97 Friend *p;
98 if (head == NULL)
99 {
100 cout << "对不起,没有你所查找的朋友:" << endl;
101 return;
102 }
103
104 if (head->num == number)
105 {
106 p = head;
107 head = head->next;
108 delete p; //**************
109 cout << " 待删除的朋友已删除" << endl;
110 return;
111 }
112
113 for (Friend * pGuard = head; pGuard->next; pGuard = pGuard->next)
114 {
115 if (pGuard->next->num == number)
116 {
117 p = pGuard->next;
118 pGuard->next = p->next;
119 delete p;
120 cout << number << " 号已经删除 " << endl;
121 return;
122 }
123 }
124 cout << number << " 号没有找到" << endl;
125 }
126 void insert (Friend * Node)
127 {
128 if (head == NULL)
129 {
130 head = Node;
131 Node->next = NULL;
132 return;
133 }
134 else if (head->num > Node->num)
135 {
136 Node->next = head;
137 head = Node;
138 return; //****************************
139 }
140 Friend *pGuard = head;
141 while (pGuard->next && pGuard->next->num < Node->num)
142 pGuard = pGuard->next;
143 Node->next = pGuard->next;
144 pGuard->next = Node;
145 return;
146 }
147 void showlist (Friend * dhead)
148 {
149 cout << "************" << endl;
150 while (dhead != NULL)
151 {
152 cout << dhead->num << " " << dhead->name << " " << dhead->sex<<
" " << dhead->telnum <<" "<<dhead->addr<<endl;
153 dhead = dhead->next;
154 cout << endl;
155 }
156 }
157 int main ()
158 {
159 char i2,i3;
160 head = Create ();
161 showlist (head);
162
163 int t=0;
164 for(int i=0;i<=t;i++)
165 {
166 int i;
167 cout<<" 通讯录查询请按 1"<<endl;
168 cout<<" 通讯录插入请按 2"<<endl;
169 cout<<" 通讯录删除请按 3"<<endl;
170 cout<<" 退出请按 4 "<<endl;
171 cin>>i;
172 while(i!=1&&i!=2&&i!=3&&i!=4)
173 {
174 cout<<" 你输入了非法数据,请重新输入"<<endl;
175 cin>>i;
176 }
177
178 if(i==1|i==2||i==3||i==4)
179 {
180 string strChoice;
181 if(i==1)
182 {
183 do
184 {
185 cout<<" 请选择查询的方式:编号1,姓名2 "<<endl;
186 int jj;
187 cin>>jj;
188 string name2; //name
189 if(jj==1)
200 string name2;
201 cout<<" 请输入待查询的姓名:"<<endl;
202 cin>>name2;
203 chaxun(-1,name2);
204 }
205 cout<<" 是否继续查询:继续按Y ,退出按N "<<endl;
206 cin>>strChoice;
207 } while (strChoice=="y"||strChoice=="Y");
208 }
209
210 if(i==2)
211 {
212 string strChoice2;
213 do
214 {
215 Friend *Node;
216 Node = new Friend;
217 cout << " 请你输入朋友的编号:" << endl;
218 cin>>Node->num;
219 cout << " 请你输入朋友的姓名:"<<endl;
220 cin>>Node->name;
221 cout << " 请你输入朋友的性别:"<<endl;
222 cin>>Node->sex;
223 cout << " 请你输入朋友电话:" << endl;
224 cin>>Node->telnum;
225 cout << " 请你输入朋友的地址:" << endl;
226 cin>>Node->addr;
227 insert (Node);
228 showlist (head);
229 cout<<" 是否继续插入信息:继续按Y ,退出按N"<<endl;
230 cin>>strChoice2;
231 } while(strChoice2=="y"||strChoice2=="Y");
232
233 }
234
235 if(i==3)
236 {
237 string strChoice3;
238 do
239 {
240 int i;
241 cout << " 请你输入待删除同学的编号 :" << endl;
242 cin >> i;
243 Delete (i);
244 showlist (head); //end
245 cout<<" 是否继续进行删除 继续按Y 退出按N "<<endl;
246 cin>>strChoice3;
247 } while(strChoice3=="y"||strChoice3=="Y");
248 }
249
250 if(i==1||i==2||i==3)
251 { char x;
252 cout<<" 是否继续进行操作 继续按Y 退出按N "<<endl;
253 cin>>x;
254 if(x=='y'||x=='Y')
255 t++;
256 }
257
258 }
259 }
260 }

⑻ 有谁知道东华大学C语言交作业的网站是什么 平时成绩多少分呀

我是东华的,C语言作业你要问老师呀,如果他没登记你的学号,那就无法上传,平时成绩40分

⑼ c语言问题 我上交的作业提示一组数据未通过 但未显示数据 求帮忙改正

你课后习题的题目是什么?没贴出来,看不出来你代码有没有逻辑问题。
目测的话,你那个while判断有点问题,你是要判断≥0吗?精度应该是小数点后六位,并且是0的范围是-0.000001到0.000001

⑽ 上C语言的课从来没听懂过,现在要交作业了,可是完全不会啊!!有没有哪位好心人会写下面的题目编程题

1、

#include<cstdio>
intfac(intn){
intsum=0;
intp=1;
for(inti=1;i<=n;i++){
=p*i;
sum=sum+p;
}
returnsum;
}
intmain(){
intn;
scanf("%d",&n);
printf("%d ",fac(n));
}

2、

#include<cstdio>
boolprime(intn){
if(n==1){
returnfalse;
}
inti;
for(i=2;i<n;i++){
if(n%i==0){
break;
}
}
if(i>=n){
returntrue;
}
returnfalse;
}
intmain(){
intn;
for(inti=100;i<=200;i++){
if(prime(i)){
printf("%d ",i);
}
}
}

3、

#include<cstdio>
inthcf(inta,intb){
if(a%b==0){
returnb;
}
returnhcf(b,a%b);
}
intlcd(inta,intb){
returna*b/hcf(a,b);
}
intmain(){
inta,b;
scanf("%d%d",&a,&b);
printf("%d ",lcd(a,b));
}

4、

#include<cstdio>
intfibona(intn){
if(n==0){
return0;
}
if(n==1){
return1;
}
returnfibona(n-1)+fibona(n-2);
}
intmain(){
for(inti=0;i<=40;i++){
printf("%d ",fibona(i));
}
}

5、

#include<cstdio>
#include<cstring>
#include<cstdlib>
usingnamespacestd;
char*dtob(intn){
if(n==0){
return"";
}
char*a="1";
if(n%2==0){
a="0";
}
char*b=dtob(n/2);
char*c=(char*)malloc(strlen(a)+strlen(b)+1);
char*temp=c;
while(*b!=''){
*c++=*b++;
}
while((*c++=*a++)!=''){
}
returntemp;
}
intmain(){
intn;
scanf("%d",&n);
printf("%s ",dtob(n));
}
热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919