C语言实验题 求大神指点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言实验题 求大神指点相关的知识,希望对你有一定的参考价值。
有10个学生,每个学生的数据包括学号、姓名、4门课成绩、总成绩和平均成绩。 从键盘输入10个学生的数据(包括学号、姓名及4门课的成绩),要
求打印出美味学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再打印出最高分的学生数据(包括学号、姓名、4门课的成绩、总成绩和平均成绩)以及
四门课的平均成绩。具体要求:
(1)根据学生信息定义一个结构体类型,在定义一个该结构体类型的数组。
(2)定义一个input函数用于从键盘上输入10个学生的数据。
(3)定义一个average函数用于找出求每个学生总成绩、平均成绩、和所有学生的总平均成绩。
(4)定义一个maximun函数用于找出最高分的学生的数据。
(5)在主函数中输出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再输出最高分的学生的数据和总平均成绩。
大神帮下忙 最好有流程图
#include<stdio.h>
#define STU_NUMBER 2 // 假设只有2个学生(你可以把2改为10)
#define SCORE_NUMBER 4
struct StudentInfo
int stu_id;
char name[10];
float score[4];
float average;
float score_sum;
;
// 函数原型声明
void input(StudentInfo *,int ),average(StudentInfo *,int );
int MaxScore(StudentInfo *,int);
int main()
struct StudentInfo stu[STU_NUMBER];
input(&stu[0],STU_NUMBER);
average(&stu[0],STU_NUMBER);
/********输出学生信息*************/
int i;
printf("学号\\t姓名\\t课程1\\t课程2\\t课程3\\t课程4\\t总成绩\\t平均成绩\\n");
for (i=0;i<STU_NUMBER;i++)
printf("%d\\t%s\\t%3.1f\\t%3.1f\\t%3.1f\\t%3.1f\\t%5.2f\\t%5.2f\\n",
stu[i].stu_id,stu[i].name,stu[i].score[0],
stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score_sum,
stu[i].average);
printf("\\n\\n\\t\\t最高学分的学生:\\n");
i=MaxScore(&stu[0],STU_NUMBER);
printf("学号\\t姓名\\t课程1\\t课程2\\t课程3\\t课程4\\t总成绩\\t平均成绩\\n");
printf("%d\\t%s\\t%3.1f\\t%3.1f\\t%3.1f\\t%3.1f\\t%5.2f\\t\\%5.2f\\n",
stu[i].stu_id,stu[i].name,stu[i].score[0],
stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].score_sum,
stu[i].average);
return 1;
void input(StudentInfo *si,int stu_number) // 输入学生数据
int i,j;
i=j=0;
while (i<stu_number)
printf("请输入学生学号:");
scanf("%d",&si->stu_id);
printf("请输入学生姓名:");
scanf("%s",si->name);
printf("请输入学生四门课成绩:");
fflush(stdin);
for (j=0;j<SCORE_NUMBER;j++)
scanf("%f",&si->score[j]);
i++;
si++;
fflush(stdin);
void average(StudentInfo *si,int stu_number) // 统计学生总成绩\\平均成绩
int i,j;
i=j=0;
while (i<stu_number)
si->score_sum=0;
for (j=0;j<SCORE_NUMBER;j++)
si->score_sum+=si->score[j]; // 求总成绩
si->average=si->score_sum/SCORE_NUMBER; // 求平均成绩
i++;
si++;
int MaxScore(StudentInfo *si,int stu_number) // 找出最高学分的学生
int IsMax; // 假设零分为最大值
int i,j,k; // k用于保存最高学分的学生
IsMax=i=j=k=0;
while (i<stu_number)
for (j=0;j<SCORE_NUMBER;j++)
if(si->score[j]>IsMax)
IsMax=si->score[j]; // 记住当前最高分
k=i; // 记住当前最高学分的学生的下标
i++;
si++;
return k; // 返回最高学分的学生
参考技术A
随便写了写,看是否正确
//
#include "stdafx.h"
/*
有10个学生,每个学生的数据包括学号、姓名、4门课成绩、总成绩和平均成绩。 从键盘输入10个学生的数据(包括学号、姓名及4门课的成绩),要
求打印出美味学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再打印出最高分的学生数据(包括学号、姓名、4门课的成绩、总成绩和平均成绩)以及
四门课的平均成绩。具体要求:
(1)根据学生信息定义一个结构体类型,在定义一个该结构体类型的数组。
(2)定义一个input函数用于从键盘上输入10个学生的数据。
(3)定义一个average函数用于找出求每个学生总成绩、平均成绩、和所有学生的总平均成绩。
(4)定义一个maximun函数用于找出最高分的学生的数据。
(5)在主函数中输出每位学生的学号、姓名、4门课的成绩、总成绩和平均成绩,最后再输出最高分的学生的数据和总平均成绩。
*/
struct student
public:
char sid[10];
char name[50];
float grades[4];
float sumG;
float avgG;
;
student students[10];
void input()
for (int i =0;i<10;i++)
printf("请输入第 %d 个学生信息(学号,姓名,成绩1,成绩2,成绩3,成绩4)......\\n",i+1);
/*测试代码
sprintf(students[i].sid, "%d", i);
sprintf(students[i].name, "test%d", i);
students[i].grades[0] = 100-i;
students[i].grades[1]= 100-i;
students[i].grades[2]= 100-i;
students[i].grades[3]= 100-i;
*/
scanf("%s,%s,%f,%f,%f,%f",
&students[i].sid,
&students[i].name,
&students[i].grades[0],
&students[i].grades[1],
&students[i].grades[2],
&students[i].grades[3]);
void average(float & sumg,float & avgg)
sumg = 0;
avgg = 0;
for (int i = 0;i<10;i++)
students[i].sumG = students[i].grades[0]+
students[i].grades[1]+
students[i].grades[2]+
students[i].grades[3];
students[i].avgG = students[i].sumG / 4;
sumg += students[i].sumG;
avgg = sumg /40;
void output()
printf("%10s%10s%10s%10s%10s%10s%10s%10s\\n","学号","姓名","成绩1","成绩2","成绩3","成绩4","总成绩","平均成绩");
for (int i = 0;i<10;i++)
printf("%s,%s,%f,%f,%f,%f,%f,%f\\n",
students[i].sid,
students[i].name,
students[i].grades[0],
students[i].grades[1],
students[i].grades[2],
students[i].grades[3],
students[i].sumG,
students[i].avgG);
int maximun()
int num = 0; //第1个学生的成绩
for (int i = 1;i<10;i++)
if (students[i].sumG > students[num].sumG)
num = i;
return num;
int _tmain(int argc, _TCHAR* argv[])
input();
float a,b;
average(a,b);
output();
printf("最高分学生信息\\n");
int i = maximun();
printf("%10s%10s%10s%10s%10s%10s%10s%10s\\n","学号","姓名","成绩1","成绩2","成绩3","成绩4","总成绩","平均成绩");
printf("%s,%s,%f,%f,%f,%f,%f,%f\\n",
students[i].sid,
students[i].name,
students[i].grades[0],
students[i].grades[1],
students[i].grades[2],
students[i].grades[3],
students[i].sumG,
students[i].avgG);
printf("总成绩 %f 总平均成绩 %f\\n",a,b);
getchar();
return 0;
参考技术B
占座占座占座
#include <stdio.h>#include <string.h>
struct student
int id;
char name[32];
int score1;
int score2;
int score3;
int score4;
int sumscore;
double avgscore;
;
struct student stu[10] = ;
void input()
int i;
char chTemp;
char sTemp[64+1];
for( i=0; i<10; i++ )
printf( "按如下格式输入第 %d 个学生的数据: 学号 姓名 分数1 分数2 分数3 分数4\\n", i+1 );
memset( sTemp, 0x00, sizeof(sTemp) );
fgets( sTemp, 64, stdin );
if ( strlen( sTemp) == 0 )
printf( "输入为空,重新输入!\\n" );
i--;
sscanf( sTemp, "%d %s %d %d %d %d", &stu[i].id, stu[i].name,
&stu[i].score1, &stu[i].score2, &stu[i].score3, &stu[i].score4 );
void average()
int i;
for( i=0; i<10; i++ )
stu[i].sumscore = stu[i].score1 + stu[i].score2 + stu[i].score3 + stu[i].score4;
stu[i].avgscore = stu[i].sumscore / 4.0;
int maximun() /*** 返回最高分数学生在结构体中的index **/
int i = 0;
int max = 0;
for( i=1; i<10; i++ )
max = stu[i-1].sumscore > stu[i].sumscore ? i-1 : max;
return max;
int main()
int max;
int i;
input();
average();
max = maximun();
printf( "学号 姓名 分数1 分数2 分数3 分数4 总分 平均分\\n" );
for( i=0; i<10; i++ )
printf( "%4d %8s %4d %4d %4d %4d %4d %.2f\\n",
stu[i].id, stu[i].name,
stu[i].score1, stu[i].score2, stu[i].score3, stu[i].score4,
stu[i].sumscore, stu[i].avgscore );
printf( "最高分学生信息:\\n" );
printf( "%4d %8s %4d %4d %4d %4d %4d %.2f\\n",
stu[max].id, stu[max].name,
stu[max].score1, stu[max].score2, stu[max].score3, stu[max].score4,
stu[max].sumscore, stu[max].avgscore );
参考技术C #include<stdio.h>
typedef struct student
char id[10];
char name[20];
float math;
float english;
float chinese;
float pe;
float sum;
float avg;
stu;
void input(stu st[])
int i=0;
printf("please input 10 students information:\n");
printf("%15s%10s%8s%8s%8s%8s%8s%8s\n","id","name","math","chinese","english","pe","sum","average");
for(i=0; i<10; i++)
printf("student[%d]:",i+1);
scanf("%s%s%f%f%f%f",st[i].id,st[i].name,&st[i].math,&st[i].english,&st[i].chinese,&st[i].pe);
float average(stu st[],int n)
int i=0;
float avg_all=0.0;
if(n<=0)
return -1;
for(i=0; i<n; i++)
st[i].sum = st[i].math+st[i].english+st[i].chinese+st[i].pe;
st[i].avg = st[i].sum/4;
avg_all += st[i].avg;
return avg_all/10;
void maximum(stu st[],int n)
int i=0;
float max=st[0].sum;
if(n<=0)
return;
for(i=1; i<n; i++)
if(st[i].sum > max)
max = st[i].sum;
for(i=0; i<n; i++)
if(st[i].sum == max)
printf("student[%d]:\n",i+1);
printf("%10s%10s%8s%8s%8s%8s%8s%8s\n","id","name","math","chinese","english","pe","sum","average");
printf("%10s%10s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f\n",st[i].id,st[i].name,st[i].math,st[i].chinese,st[i].english,st[i].pe,st[i].sum,st[i].avg);
int main()
int i=0;
float avg_all=0.0;
stu st[10];
input(st);
avg_all = average(st,10);
printf("all the students' information is :\n");
printf("%10s%10s%8s%8s%8s%8s%8s%8s\n","id","name","math","chinese","english","pe","sum","average");
for(i=0; i<10; i++)
printf("%10s%10s%8.1f%8.1f%8.1f%8.1f%8.1f%8.1f\n",st[i].id,st[i].name,st[i].math,st[i].chinese,st[i].english,st[i].pe,st[i].sum,st[i].avg);
printf("the average of all students is: %4.1f\n",avg_all);
printf("the max score student :\n");
maximum(st,10);
return 0;
百分百正确,亲测本回答被提问者和网友采纳 参考技术D 100分啊,马上给你写..
Javaweb题目,求大神解答指点
请思考如何用过滤器Filter实现禁止浏览器缓存页面?简述基本思路、提供过滤器doFilter代码、以及相应配置脚本。
在 Java Web 开发中,你可以使用过滤器 (Filter) 来禁止浏览器缓存页面。这里是基本的实现步骤:
创建一个新的过滤器类,实现 javax.servlet.Filter 接口。这个类应该包含一个实现了 doFilter 方法的代码块,该方法将在过滤器生效时被调用。
在 doFilter 方法中,你可以使用 HttpServletResponse 对象的 setHeader 方法来设置一些响应头信息,以禁止浏览器缓存页面。例如,你可以使用以下代码来设置 "Cache-Control" 响应头:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
在你的 Web 应用的部署描述符 (web.xml) 中,使用 <filter> 和 <filter-mapping> 元素配置过滤器。这样,你就可以在所有请求到达指定的资源之前,先将其过滤一遍。
下面是一个示例过滤器的完整代码,它实现了上述步骤:
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
public class NoCacheFilter implements Filter
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.
参考技术A在 Java Web 中,可以使用过滤器 Filter 来禁止浏览器缓存页面。
基本思路:
实现一个过滤器类,并实现 javax.servlet.Filter 接口。
在过滤器的 doFilter() 方法中,设置响应头信息,以禁止浏览器缓存页面。
过滤器 doFilter 代码示例:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
HttpServletResponse httpResponse = (HttpServletResponse) response;
// 设置响应头信息,禁止浏览器缓存页面
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
httpResponse.setHeader("Pragma", "no-cache");
httpResponse.setDateHeader("Expires", 0);
chain.doFilter(request, response);
相应配置脚本:
在 web.xml 文件中,使用如下脚本配置过滤器:
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>com.example.NoCacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样,当浏览器请求页面时,过滤器就会自动设置响应头信息,以禁止浏览器缓存页面。
参考技术B 禁止浏览器缓存页面的基本思路是在过滤器Filter中添加响应头,以便在服务器端覆盖浏览器端缓存。过滤器doFilter代码如下:public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
chain.doFilter(request, response);
相应配置脚本为:
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.example.CacheFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上是关于C语言实验题 求大神指点的主要内容,如果未能解决你的问题,请参考以下文章