将10个学生的4门课成绩全部储存到数组中,并将数组中的数据存储过程 数组到文件。

C语言学生成绩管理程序 把10个学生的4门成绩输入 求总分和平均分并输出
C语言学生成绩管理程序 把10个学生的4门成绩输入 求总分和平均分并输出
#include&stdio.h&#define N 10#define M 4void main(){& &int i,j;& &float sum=0,junfen=0,a[N][4],b[N];& &for(j=0;j&N;j++)& &{& & prntf("please input cheng ji :\n");& & for(i=0;i&M;i++)scanf("%f",a[j][i]);& }& for(i=0;i&N;i++)& & for(j=0;j&M;j++)& & & & & &sum+=a[i][j];& junfen=sum/10;&printf("%f%f",sum,junfen);& }应该是这样,你把问题再说清楚点,我再改改。
能给个注解吗?老师要我们做的,,我不会
将10个学生的4门成绩全部储存到数组中,并将数组中的数据储存到文件。。读取文件内容,并将10个学生的所有成绩输出,同时对于每个学生汇总总分及计算平均分并输出
亲,这是我昨天晚上花了2小时弄出来的,我编译后没错误,希望给好评哦!
#include&stdio.h&#include&stdlib.h& & & & & &//使用exit()函数应包含头文件stdlib.h#define N 10#define M 4struct student{ char name[20]; float g1,g2,g3,g4,z,j; & & &//g1为成绩1,z为总分,j为均分}stua[N],stub[N],*void main(){
qq= printf("请输入数据:\n"); for(i=0;i&N;i++,qq++) {
scanf("%s%f%f%f%f",qq-&name,qq-&g1,qq-&g2,qq-&g3,qq-&g4); }
FILE * & &//文件类型指针。
/****************固定句式***********************/ if((fp=fopen("d:\\user\\datab.dat","wb"))==NULL) //d:\\user\\datab.dat &这个为打开的文件位置,你可以自己设定。 {
printf("cannot open this file!\n");
exit(0); }& & /****************固定句式***********************/
fwrite(stub,sizeof(struct student),N,fp); & & & //写数据块函数。 fclose(fp);& && /****************固定句式***********************/ if((fp=fopen("d:\\user\\datab.dat","wb"))==NULL)//d:\\user\\datab.dat &这个为打开的文件位置,你可以自己设定。 {
printf("cannot open this file!\n");
exit(0); }& & /****************固定句式***********************/
fread(stua,sizeof(struct student),N,fp); & & & & //读数据块函数。 qq= for(i=0;i&N;i++,qq++) {
qq-&z=qq-&g1+qq-&g2+qq-&g3+qq-&g4;
qq-&j=qq-&z/4; } printf("\n\name\tg1\tg2\tg3\tg4\tz\tj\n"); qq= for(i=0;i&N;i++,qq++)
printf("%s\t%f\t%f\t%f\t%f\t%f\t%f\t\n",qq-&name,qq-&g1,qq-&g2,qq-&g3,qq-&g4,qq-&z,qq-&j); fclose(fp);}
的感言:不知道说什么,送你一朵小红花吧:) 相关知识
其他回答 (3)
#include 

struct student
{
	float score_[4];
	float sum_;
	float avg_;
	student()
	{
		score_[4] = 0;
		sum_ = 0;
		avg_ = 0;
	}
};

int main()
{
	student students[10];
	for (int i = 0; i & 10; i++)
	{
		printf(&请输入第[%d]个学生的四门成绩:\n&, i+1);
		for (int index = 0; index & 4; index++)
		{
			printf(&第%d门的成绩为:&, index+1);
			scanf(&%f&, &students[i].score_[index]);
			students[i].sum_ += students[i].score_[index];
		}
		students[i].avg_ = students[i].sum_/4;
	}
	printf(&====================================\n&);
	for (int i = 0; i & 10; i++)
	{
		printf(&第[%d]个学生的总分为[%f],平均成绩为[%f]\n&, i+1, students[i].sum_, students[i].avg_);
	}
	return 0;
}
粘贴的时候,貌似最前面的#include后面的&stdio.h&漏掉了
每句话后面能给注解吗?老师要我们弄得
这个我简单写下, 抛砖引玉吧.&//建立学生结构struct Student{ char name[11]; & //最大5个字
//平均public: Student(int x1,int x2,int x3,int x4){a=x1;b=x2;c=x3;d=x4;}
//初始化 Student(int x){a=b=c=d=x;}
//简单初始化
int GetTotal(){return total = a+b+c+d;}
//总数 int GetAver() { return aver = GetTotal()/4; }
//平均 void Show(){printf("total:%d,aver:%d \n",GetTotal(),GetAver() );}};//测试 Student *(p[10]) = {0};&
//10个学生指针 for(int i=0; i&10; i++)
p[i] = new Student(80+i, 81+i,82+i,83+i);
p[i]-&Show();
#include&stdio.h&void main(){ FILE *& & char m[4][20], int a[4],b[4],c[4],d[4],i,avg[4],_sun[4]; //数组a、b、c、d分别存四科的成绩,数组m存学生名,i控制循环,avg储存平均值,_sun储存总分;这里也可以用结构体数组来做/*下段代码录入各学生名字及各科成绩*/for(i=0;i&4;i++){ printf("依次输入第%d个学生及各科成绩: & &",i+1);& & scanf("%s%d%d%d%d",&m[i],&a[i],&b[i],&c[i],&d[i]);}/*下面代码用于将输入存入c:/jl.txt文件中*/if ((fp=fopen("c:/jl.txt","w"))==NULL)//打开文件并判断是否正常打开{ printf("打开文件失败\n"); exit(0);}fprintf(fp,"成绩汇总表:\n\n");//向文件输入内容for(i=0;i&4;i++){ _sun[i]=a[i]+b[i]+c[i]+d[i];//算本学生的总成绩 avg[i]=_sun[i]/4;//算本学生的平均分& fprintf(fp,"学生:%5s 科一:%3d 科二:%3d 科三:%3d 科四:%3d 总分:%3d 平均分:%3d\n",m[i],a[i],b[i],c[i],d[i],_sun[i],avg[i]);}//再次向文件输入内容fclose(fp);//关闭文件/*以下是读出文件中的内容*/printf("\n\n");if((fp=fopen("c:/jl.txt","r"))==NULL)//再次打开文件,为下面读它做准备{ printf("打开失败\n");exit(1);}ch=fgetc(fp);//将文件中第一个字符放入ch变量while(ch!=EOF)//判断是否移到了文件尾,如果没有就继续移动并将字符放入CH变量,并输入到屏幕{putchar(ch);//屏幕上显示ch变量当前的字符ch=fgetc(fp);//移动到文件下一个字符的位置}fclose(fp);//关闭文件getch();}
相关知识等待您来回答
编程领域专家
& &SOGOU - 京ICP证050897号分别用函数和数组实现,输入10个学生的5门课的成绩并求出每个学生的平均分,每门课程的平均分,数去一张含_百度知道
分别用函数和数组实现,输入10个学生的5门课的成绩并求出每个学生的平均分,每门课程的平均分,数去一张含
90; float&&main(){ string&iomanip&&&;&
&&&&lt,77,50;.0f,
&iostream&&&&
&lt.0f.0f;&&lt.&quot,90;&&&&
cout&k=0;setw(10)&&sum/3&& } cout&setw(10)&lt,88;j&&&setw(10)&lt.&&nbsp.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="&nbsp,你参考下吧;student[i].0f;小李&4;;&&&&j=0;&&小赵&score[i][j];&sum=0;&&nbsp,
&nbsp,69;&using&j=0://b;&
&setw(10)&67;&namespace&&k++)
sum+=score[i][k].5f;&setw(10)& cout&&&&&3;&nbsp,
&&nbsp.3;&数学&&int&nbsp.0f;i++) {
sum=0.5f;j&
for(int&小王&&nbsp,稍微改动点就行了#include&nbsp,67;&& float&};setw(10)&&&&&&
cout&&setw(10)& for(int&&&#include&nbsp.jpg" esrc="}<a href="&平均分&quot.5f,90;&&&lt.&setw(10)&&&&&
&i&&nbsp.0f;&&&&/zhidao/wh%3D600%2C800/sign=2c0de56f970a304e5277a8fce1f88bbe/30adcbefdbd8a86a3cc7cd98d109&;&&k&&&&j++)
sum+=score[j][i].5f;
for(int&&&setw(10)&&&nbsp.5f;小张&#include&&quot, &30;setw(10)&&&&4;String&
cout&lt.5f.baidu.4f};&&/zhidao/pic/item/30adcbefdbd8a86a3cc7cd98d109&&score[4][3]={67;&std://b;&&nbsp.0f;&student[4]={&语文&&90;endl.0f;sum/4;i++) {
sum=0, && } cout&lt前段时间帮人写过一个;&平均&&&&
for(int&&外语&3;&& for(int&nbsp://b;i=0;&i=0, &&&&i&&/zhidao/wh%3D450%2C600/sign=44ddfc0d5cf9/30adcbefdbd8a86a3cc7cd98d109daa.baidu
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1. 设置一个包含10个成绩数据的数组xxxScore,将自己的10门课的成绩当作初始值赋给数组变量。然后输出数组_百度知道
1. 设置一个包含10个成绩数据的数组xxxScore,将自己的10门课的成绩当作初始值赋给数组变量。然后输出数组
输出排序后的成绩、最低成绩和平均成绩并输出。然后输出数组中的成绩. 设置一个包含10个成绩数据的数组xxxScore,将自己的10门课的成绩当作初始值赋给数组变量,求出最高成绩. 设计一个算法。21。3. 采用适当的排序算法对成绩进行从高到低进行排序
提问者采纳
10; for (int n=0:%g&#92; printf(&);平均成绩;10;10,score[n]);float min(float[]); printf(&n& for(int n=0,min(score));n++)
total+=score[n];%g &quot,temp,score[n]);排序后:%g&#92;%g &n&lt,*p2=score+1:%g&#92,ave(score));score[n]) ret=score[n],max(score));n&i&float ave(float[]);void sort(float[]);10;);n++)printf(&初始化; printf(&int main(){ float score[10]={80;);n最高成绩;}float max(float score[10]){ float ret=score[0];; n&n&n++)
if(ret&n++)
if(ret&n&n& for(int n=0; total/n&9,74,65;}float ave(float score[10]){ float total=0; for (int n=0,90;n&n++)
for(int i=n.h& return ret:& return 0,87; for(int n=0;float max(float[]),77; sort(score),85}; score[n]) ret=score[n]; printf(&&#92;最低成绩; printf(&quot:&n&n++)printf(&}void sort(float score[10]){ float *p1=}float min(float score[10]){ float ret=score[0]; printf(&quot,83,69;;,95;*(p1+n)=*(p2+i);&#92;10;=10;;i++)
if(*(p1+n)&*(p2+i))
{temp=*(p1+n);*(p2+i)= for(int n=0;#include &9
提问者评价
其他类似问题
n, 10); i &
printf(&quot,int n)
/ 10; n: %f&#92;n&the min , int n)
double sum = 0; i &lt: %f&#92;stdio.h&: %f&#92,xxxScore[i]);
double xxxScore[10];;
printf(&%f
&quot#include&
Sort(xxxS;
for (i = 0; n-1; i++)
for (j = i + 1;%f&冒泡排序
double Avg(double arg[]; j++)
t = arg[i];
if (arg[i] & i &; i++)
sum += arg[i],xxxScore[9]);
printf(&n&
void Sort(double arg[]; j & i &n& arg[j])
arg[i] = arg[j]; i++)
scanf(&quot,xxxScore[0]); i++)
printf(&quot,10));
void main()
for (i = 0;
return sum &#47,&xxxScore[i]),Avg(xxxS
for (i = 0;;
for (i = 0,&#47
为您推荐:
其他1条回答
可以直接使用直接插入排序算法 将数组从高到低排序。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:_百度知道
分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:
(1)求每个学生的平均分 (2)求每门课程的平均分(3)输出一张包括10个学生成绩的成绩单(4)找出最高分数所对应的学生(学号)和课程 (5)分别统计5门课程都高于90分的学生人数
我有更好的答案
这么大的程序才10分,别人不会帮你按你的要求做吧,除非直接复制给你。
其他类似问题
为您推荐:
函数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
C语言编写程序
输入学生的学号,输出该学生的所有课程成绩
要多少分儿都给啊
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
MAX_COUNTER
int main()
char *p[MAX_COUNTER];
counter = 0;
ch[MAX_COUNTER];
printf(&#034;please input student
score\n&#034;);
while (gets(ch) )
len = strlen(ch);
p[counter] = (char*)malloc(len + 1);
strncpy(p[counter],ch,len);
p[counter][len] = 0;
counter++;
int num = -1;
printf(&#034;input number:&#034;);
scanf(&#034;%d&#034;, &num);
while (num &= counter)
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
MAX_COUNTER
int main()
char *p[MAX_COUNTER];
counter = 0;
ch[MAX_COUNTER];
printf(&#034;please input student
score\n&#034;);
while (gets(ch) )
len = strlen(ch);
p[counter] = (char*)malloc(len + 1);
strncpy(p[counter],ch,len);
p[counter][len] = 0;
counter++;
int num = -1;
printf(&#034;input number:&#034;);
scanf(&#034;%d&#034;, &num);
while (num &= counter)
printf(&#034;input wrong!\n&#034;);
scanf(&#034;%d&#034;, &num);
printf(&#034;%s\n&#034;, p[num]);
学生的编号从0开始的,,
*p[MAX_COUNTER]; 每个元素是一个字符指针,
每个字符指针表示一个学生的相关成绩。
第一次输入完,按ctrl+z 回车,结束输入
第二次输入学号后直接回车。
<img class="piczoom mpic" alt="#include
MAX_COUNTER
int main()
char *p[MAX_COUNTER];
counter = 0;
ch[MAX_COUNTER];
printf("please input student
score\n");
while (gets(ch) )
len = strlen(ch);
p[counter] = (char*)malloc(len + 1);
strncpy(p[counter],ch,len);
p[counter][len] = 0;
counter++;
int num = -1;
printf("input number:");
scanf("%d", &num);
while (num >= counter)
printf("input wrong!\n");
scanf("%d", &num);
printf("%s\n", p[num]);
学生的编号从0开始的,,
*p[MAX_COUNTER]; 每个元素是一个字符指针,
每个字符指针表示一个学生的相关成绩。
第一次输入完,按ctrl+z 回车,结束输入
第二次输入学号后直接回车。" src="/fimg//81/00/74/..PNG_240.jpg" data-artzoom-show="/fimg//81/00/74/..PNG_516.jpg" data-artzoom-source="/fimg//81/00/74/..PNG_516.jpg" />
#include &stdlib.h&
#include &string.h&
#define MAX_COUNTER 100
int main()
char *p[MAX_COUNTER];
int counter = 0;
char ch[MAX_COUNTER];
int len = 0;
printf(&please input student score\n&);
while (gets(ch) )
len = strlen(ch);
p[counter] = (char*)malloc(len + 1);
strncpy(p[counter],ch,len);
p[counter][len] = 0;
counter++;
int num = -1;
printf(&input number:&);
scanf(&%d&, &num);
while (num &= counter)
#include &std.h&
#include &stdlib.h&
#include &string.h&
#define MAX_COUNTER 100
int main()
char *p[MAX_COUNTER];
int counter = 0;
char ch[MAX_COUNTER];
int len = 0;
printf(&please input student score\n&);
while (gets(ch) )
len = strlen(ch);
p[counter] = (char*)malloc(len + 1);
strncpy(p[counter],ch,len);
p[counter][len] = 0;
counter++;
int num = -1;
printf(&input number:&);
scanf(&%d&, &num);
while (num &= counter)
printf(&input wrong!\n&);
scanf(&%d&, &num);
printf(&%s\n&, p[num]);
学生的编号从0开始的,,
char *p[MAX_COUNTER]; 每个元素是一个字符指针,
每个字符指针表示一个学生的相关成绩。
第一次输入完,按ctrl+z 回车,结束输入
第二次输入学号后直接回车。
您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注

我要回帖

更多关于 sql 存储过程 数组 的文章

 

随机推荐