C语言程序设计 案例学习:计算平均成绩

合集下载

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值C语言输入10个同学的成绩总分和平均值一、前言在学习编程语言的过程中,C语言是一个非常基础且重要的语言。

在C 语言中,输入输出是非常基础的内容之一,学会如何输入和处理数据是我们学习编程的第一步。

本文将以输入10个同学的成绩总分和平均值为题,深入探讨C语言中的输入输出操作,并共享我对这个主题的个人理解。

二、基本概念在C语言中,我们可以通过scanf()函数来实现数据的输入。

scanf()函数是一个输入函数,可以将用户输入的数据存储到指定的变量中。

在本题中,我们需要输入10个同学的成绩,分别存储到不同的变量中。

三、具体操作在C语言中,我们可以使用循环来反复输入数据,以实现输入10个同学的成绩。

我们需要定义一个数组来存储这10个同学的成绩,然后通过循环依次输入每个同学的成绩。

我们可以使用循环再次遍历数组,求得这10个同学的成绩总和。

通过平均值公式,我们可以求得这10个同学的成绩平均值。

四、代码示例```c#include <stdio.h>int main() {int scores[10];int sum = 0;double average = 0.0;// 输入10个同学的成绩for (int i = 0; i < 10; i++) {printf("请输入第%d个同学的成绩:", i + 1);scanf("%d", &scores[i]);}// 计算成绩总和for (int i = 0; i < 10; i++) {sum += scores[i];}// 计算平均值average = (double) sum / 10;// 输出成绩总和和平均值printf("这10个同学的成绩总和为:%d\n", sum);printf("这10个同学的成绩平均值为:%.2f\n", average);return 0;}```五、总结回顾通过以上的代码示例,我们了解了如何在C语言中输入10个同学的成绩总分和平均值。

编程从键盘输入10个学生的成绩,输出平均成绩和低于平均分的学生成绩。

编程从键盘输入10个学生的成绩,输出平均成绩和低于平均分的学生成绩。

从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

1#include <stdio.h>int main(){double score[10];inti;for(i=0;i<10;i++)scanf("%lf",&score[i]);for(i=0;i<10 ;i++)if(score[i] < 60)printf("%g ",score[i]);return 0;}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

2#include<stdio.h>void main(){int nscore[10]={0};inti,j,ntemp;for(i=0;i<10;i++){scanf("%d",&nscore[i]);}/*冒泡法排序*/for(i=0;i<10;i++){for(j=0;j<10-i-1;j++){if(nscore[j]<nscore[j+1]) /*两两比较,小的放后放,一次循环后最小数在最后*/{ntemp=nscore[j];nscore[j]=nscore[j+1];nscore[j+1]=n temp;}}}printf("由大到小排列为:\n")for(i=0;i<10;i++){printf("%d",nscore[i]);}printf("\n");}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

3这个可以使用冒泡法做!从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

4#include <stdio.h>#define max 10struct student {char no[10];char name[10];float score[3];}stu[max];float ave_course[3] = {0};float ave_student[max] = {0};int max_ave_i = 0; 存储平均分最高的学生索引intmax_course_i[3] = {0}; 存储单科分数,最高的学生索引录入学生成绩void input(int n) {int i;for(i=0; i<n; i++) {scanf("%s %s",stu[i].no,stu[i].name);scanf("%f %f %f",&stu[i].score[0], &stu[i].score[1],&stu[i].score[2]);}}计算平均成绩void average(intn){int i,j;float max_ave = 0.0f;float max_course[3] = {0};计算每门课的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_course[j] +=stu[i].score[j];if(max_course[j]<stu[i].score[j]){max_ course[j]<stu[i].score[j];max_course_i[j] =i;}}}for(j=0; j<3; j++) {ave_course[j] /= n;}计算每个学生的平均成绩for(i=0; i<n; i++) {for(j=0; j<3; j++) {ave_student[i] += stu[i].score[j];}ave_student[i] /= 3;if(max_ave < ave_student[i]) {max_ave =ave_student[i];max_ave_i = i;}}}void main () {inti,j;printf("请输入学生的学号姓名语文数学英语");input(max);average(max);printf("\n课程的平均成绩是: %6.2f %6.2f %6.2f\n",ave_course[0],ave_course[1],a ve_course[2]);printf("\n学生的平均成绩是:\n");for(i=0; i<max; i++) {printf(" %s %s %6.2f\n", stu[i].no, stu[i].name, ave_student[i]);}printf("平均分,最高的学生:\n");printf(" 学号=%s, 姓名=%s, 平均分=%6.2f:\n", stu[max_ave_i].no, stu[max_ave_i].name,ave_student[max_ave_i]);printf("语文,最高分的学生:\n");i=max_course_i[0];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[0]);printf("数学,最高分的学生:\n");i=max_course_i[1];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[1]);printf("英语,最高分的学生:\n");i=max_course_i[2];printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name,stu[i].score[2]);getchar();getchar();}从编程键盘输入10个学生的成绩,输出平均分和低于平均分的。

用键盘输入10名学生的成绩,显示其中的最低分,最高分及平均成绩,要求利用指标.

用键盘输入10名学生的成绩,显示其中的最低分,最高分及平均成绩,要求利用指标.

用键盘输入10名学生的成绩,显示其中的最低分,最高分及平均成绩,要求利用指标.用键盘输入10名学生的成绩,显示其中的最低分,最高分及平均成绩,要求利用指标.#include<stdio.h>void main(){int a[10],i,max,min,sum=0;for(i=0;i<10;i++){printf("\n请输入学生成绩:");scanf("%d",&a[i]);}max=min=a[0];for(i=0;i<10;i++){ if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];sum+=a[i];}printf("\n最高分=%d最低分=%d平均分=%.2f\n",max,min,sum/10.0);}用VB程式设计输入10名学生某一门课的成绩,求出其中的最高分,最低分和所有学生的平均分.Option Base 1Dim score(10) As IntegerDim max As Integer, min As Integer, average As SinglePrivate Sub Form_Load()For i = 1 To 10score(i) = Val(InputBox("请输入第 " & Str(i) & "个学生的成绩","成绩统计", ""))Text1.Text = Text1.Text & Str(score(i))Next is = 0: max = score(1): min = score(1)For i = 1 To 10If score(i) > max Then max = score(i)If score(i) < min Then min = score(i)s = s + score(i)Next iaverage = s / 10Text2.Text = maxText3.Text = Format(average, "0.00")Text4.Text = minEnd Sub通过键盘输入10名学生的c语言成绩,输出最高分与最低分#include <stdio.h>#define N 10int main(){ int i, j, tmp, a[N]= {0}; printf("请输入10名学生C语言成绩(空格隔开):\n");for(i = 0 ; i < N; i++) scanf("%d", &a[i]); for(i = 0 ; i < N-1;i++) { for(j = 0; j < N-i-1; j++) { if(a[j] < a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } printf("%d %d\n", a[0], a[9]); return 0;}定义一个包含10个元素的整型阵列存10名学生的成绩从键盘输入阵列元素显示其中的最低分最高分及平均分并输#include <stdio.h>int main(){int value[10],*p,high=0,low=0,average=0,i;p = value;for(i=0; i<10; i++){scanf("%d",&value[i]);if(i==0)high=low=value[i];else{if(value[i] > high)high = value[i];if(value[i] < low)low = value[i];}average+=value[i];p++;}average/=10;printf("high:%d low:%d average:%d\n",high,low,average);}VB程式设计求100个学生的平均成绩,最高分,最低分X = Val(InputBox("输入学生成绩"))Max = XMin = XS = XFor i = 2 To 100X = Val(InputBox("输入学生成绩"))If Max < X Then Max = XIf Min > X Then Min = XS = S + XNextPrint "平均成绩"; S / 100Print "最高分"; MaxPrint "最低分"; Min输入10个同学的成绩输出其中的最高分和最低分(用C语言)这个很容易的啊,我很久没写C的了,只能告诉你流程定义一个数组,长度10,然后输入分数,对阵列进行排序,阵列第一个和最后一个就是你要的结果了使用一维阵列,输入10名学生的成绩,找出最高分和最低分#include<stdio.h>int max(int stu[10]) {int tem = 0;int i = 0;for(i = 0; i < 10; i++) {if(stu[i] >= stu[i+1])tem = stu[i];}return tem;}int min(int stu[10]) {int tem = 0;int i = 0;for(i = 0; i < 10; i++) {if(stu[i] < stu[i+1])tem = stu[i];}return tem;}int main() {int maxs,mins = 0;int stu[10] = {10,22,33,44,55,66,77,88,99,100}; 初始化之际弄maxs = max(stu);mins = min(stu);printf("max:%d min:%d\n",maxs,mins);return 0;}c语言——利用指标法,输入10个学生每人5门课的成绩,利用函式找到每门课的最高分和最低分# include <stdio.h># include <stdlib.h>float maxMark(float *q){float max;int i;max=q[0];for(i=1;i<5;i++){if (q[i]>max) max=q[i];}return max;}float minMark(float *q)float min;int i;min=q[0];for(i=1;i<5;i++){if (q[i]<min) min=q[i];}return min;}void main(){int i,j;float *q;float a[10][5],max,min,Mark[5][10]; for(i=0;i<10;i++){printf("第%d个学生\n",i+1);for(j=0;j<5;j++){printf("第%d门成绩:",j+1); scanf("%f",&a[i][j]);}}for(j=0;j<10;j++)for(i=0;i<5;i++){Mark[i][j]=a[j][i];}for(i=0;i<5;i++)q=Mark[i];max=maxMark(q);printf("第%d门成绩的最大值为:%0.2f\n",i+1,max);}for(i=0;i<5;i++){q=Mark[i];min=minMark(q);printf("第%d门成绩的最小值为:%0.2f\n",i+1,min);}}这次修改的完全正确了python完成程式输入m个成绩,输出最高分最低分平均成绩python完成程式输入m个成绩,输出最高分最低分平均成绩grades = []min_grade = Nonemax_grade = Nonesum_grade = 0.0m = int(raw_input("Input m: "))for i in range(m):grade = float(raw_input("Input grade %s: " % i))grades.append(grade)sum_grade += gradeif not min_grade or grade < min_grade:min_grade = gradeif not max_grade or grade > max_grade:max_grade = gradeave_grade = sum_grade / mprint "Max grade:", max_gradeprint "Min grade:", min_gradeprint "Average grade:", ave_gradeC语言设计一个班级20名学生姓名及成绩的输入输出,计算平均成绩,求最高分,最低分#include "stdio.h"main(){float student[20],ave,sum=0,max=0,min=100;int i;for(i=0;i<20;i++){printf("input %dth score:",i+1);scanf("%f",&student[i]);if(student[i]>max)max=student[i];if(student[i]<min)min=student[i];sum+=student[i];}ave=sum/20;printf("ave=%f,max=%f,min=%f\n",ave,max,min);}。

c语言编程计算班级成绩平均分

c语言编程计算班级成绩平均分

以下是使用C 语言计算班级成绩平均分的示例代码:
#include <stdio.h>
int main() {
int n, i;
float sum = 0, avg;
printf("请输入班级人数:");
scanf("%d", &n);
float score[n];
printf("请输入%d个学生的成绩:\n", n);
for (i = 0; i < n; i++) {
scanf("%f", &score[i]);
sum += score[i];
}
avg = sum / n;
printf("平均分为:%.2f\n", avg);
return 0;
}
代码说明:
1. 首先使用`scanf` 函数从标准输入中读取班级人数`n`。

2. 定义一个长度为`n` 的浮点数数组`score`,用于存储学生的成绩。

3. 使用`for` 循环读取每个学生的成绩,并累加到`sum` 变量中。

4. 计算平均分,存储在`avg` 变量中。

5. 使用`printf` 函数输出平均分,保留两位小数。

6. 最后返回0,表示程序正常结束。

C语言程序设计学生成绩管理系统实验报告

C语言程序设计学生成绩管理系统实验报告

移通学院C语言程序设计报告书设计名称:学生成绩管理系统专业:指导老师:班级:姓名:学号:座号:时间一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础;二、实验内容运用所学的C语言知识编辑一个应用程序:学习成绩管理系统三.系统软件环境:本程序主要运行在: Visual C++ 6.0Turbo C/C++ 3.0四.课程设计题目:学生成绩管理系统程序说明:有N个学生,每个学生的数据包含学号不重复、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:1主菜单2各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录;③成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;④退出系统:退出整个系统即主菜单;五.数据结构设计描述:↓int num; /定义学号,变量为整型/char name; /定义姓名,变量为字符型/int score; /定义课程的成绩,变量为整型/float average; /定义平均分,变量为浮点型/七.系统各函数的功能,、相互调用关系1.函数实现功能说明:1menu函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;2input函数是定义用于输入学生信息;3select 函数是定义用于查询学生信息;包括学号、姓名及各科成绩;4statistics 函数计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序输出;2.相互调用关系:Main函数调用menu函数;Menu 函数可以调用input 函数、select函数和statistics 函数八.心得体会C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距;我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序; 九.程序:include <stdio.h>include <stdlib.h>include <conio.h>define N 3 /学生人数/define M 3 /课程门数/struct student{int num; /学号/char name20; /姓名/int score3; /三门课成绩/float average;}stuN; /学生数/void input; /查询/void select; /统计/void menu;void input{int i,j;printf"\t\t①成绩录入\n\n";fori=0;i<N;i++{printf"请输入学号:";scanf"%d",&stui.num;printf"请输入姓名:";scanf"%s",&;forj=0;j<M;j++{printf"第%d门成绩的分数:",j+1;scanf"%d",&stui.scorej;}printf"\n\n";}printf"\n\n";printf"输入完毕按任意键返回主菜单";}/2.查询/void selectint no{int i;printf"学生%d号: \n",no; printf"学号: %d\n",stuno-1.num; printf"姓名: %s\n",;for i=0;i<M;i++{printf"第%d门课程的成绩为: ",i+1; printf"%d\n",stuno-1.scorei;}printf"\n按任意键返回主菜单";getch;}/3.统计/void statistics{float temp=0;int i=0;/学生成绩平均分/temp=0;printf"\t\t③成绩统计\n\n";forj=0;j<N;j++{fori=0;i<M;i++{temp=temp+stuj.scorei;}stuj.average=temp/N;printf"\n学生%s的成绩平均成绩为:",;printf"%0.2f分",stuj.average;temp=0;}/排序/for j=0;j<N;j++fori=0;i<N-j-1;i++ifstui.average<stui+1.average{ temp=stui.average;stui.average=stui+1.average;stui+1.average=temp;}printf"\n\n学生平均成绩前三名:";fori=0;i<3;i++{printf"\n第%d名:%0.2f分",i+1,stui.average;}printf"\n\n按任意键返回主菜单";getch;}void menu{ int num=0;int n=0;printf"\n\t\t\t学生成绩管理系统\n\n";printf"\n\t\t\t①成绩录入\n\t\t\t②成绩查询\n\t\t\t③成绩统计\n\t\t\t④退出系统\n";printf"\t\t\tchoose:";scanf"%d",&num;switchnum{case 1:system"cls";input;break;case 2:system"cls";printf"\t\t②成绩查询\n\n"; printf"请输入要查询的学生号1~3:";scanf"%d",&n;selectn;break;case 3:system"cls";statistics;break;case 4:exit0;default:;}}void main{while1{system"cls"; /清屏/menu;}}。

c语言中average求平均值算法

c语言中average求平均值算法

c语言中average求平均值算法C语言中的average求平均值算法平均值,也称为平均数,是一组数据中各个数值的总和除以数据个数得到的值。

在C语言中,我们可以使用一种简单而有效的算法来计算平均值。

本文将介绍这个算法,并详细解释其原理和实现方法。

算法原理求平均值的算法原理很简单:将一组数据中所有数值相加,然后除以数据的个数。

用数学公式表示就是:平均值 = (数据1 + 数据2 + ... + 数据n) / n其中,数据1、数据2、...、数据n表示一组数据中的各个数值,n 表示数据的个数。

算法实现下面我们来实现一个简单的C语言函数来计算平均值。

假设我们有一个整数数组arr,大小为n,表示一组整数数据。

函数的返回值为平均值。

```cdouble average(int arr[], int n){int sum = 0;for (int i = 0; i < n; i++) {sum += arr[i];}return (double)sum / n;}```在这个函数中,我们首先定义一个变量sum并初始化为0,用于存储数据的总和。

然后使用for循环遍历数组arr,将每个数值累加到sum中。

最后,我们将sum除以n并强制转换为double类型,以保证返回值为浮点数。

示例代码为了更好地理解算法的实现,下面是一个完整的示例代码,其中包含了主函数和调用average函数的代码:```c#include <stdio.h>double average(int arr[], int n){int sum = 0;for (int i = 0; i < n; i++) {sum += arr[i];}return (double)sum / n;}int main(){int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);double avg = average(arr, n);printf("平均值为: %.2lf\n", avg);return 0;}```在这个示例代码中,我们定义了一个包含5个整数的数组arr,并将其传递给average函数,同时传递数组的大小n。

C语言计算一维数组的平均值

C语言计算一维数组的平均值

C语言计算一维数组的平均值在C语言中,可以通过使用函数来计算一个一维数组的平均值。

函数的定义如下:```c#include <stdio.h>double calculateAverage(int array[], int size)int i;double sum = 0.0;for (i = 0; i < size; i++)sum += array[i];}double average = sum / size;return average;int maiint array[] = {1, 2, 3, 4, 5};int size = sizeof(array) / sizeof(array[0]);double average = calculateAverage(array, size);printf("Average: %.2f\n", average);return 0;```在上面的代码中,calculateAverage函数接受一个整数型的一维数组和数组的大小作为参数。

函数通过使用一个for循环,累加数组的每个元素,然后计算平均值,并将其作为浮点数返回。

在主函数中,创建一个包含一些整数的一维数组,然后通过调用calculateAverage函数来计算平均值,并将其打印出来。

这段代码的输出结果应该是:```Average: 3.00```你可以在calculateAverage函数中添加一些错误处理的代码来确保传入的数组和数组大小的有效性,例如检查传入的数组是否为空,以及数组大小是否小于等于0,这样可以增加代码的健壮性。

另外,还可以通过自定义类型来使代码更具可读性和可维护性。

例如,可以定义一个名为`IntArray`的结构体来保存数组和数组大小。

然后,可以将calculateAverage函数的参数改为接受`IntArray`类型的变量,这样在函数外部调用时,参数即可被命名,提高代码的可读性。

c语言课程设计优秀案例

c语言课程设计优秀案例

c语言课程设计优秀案例C语言是一门广泛应用于计算机科学领域的编程语言,它具有高效、简洁、可移植等特点,因此在计算机科学领域中得到了广泛的应用。

在C语言课程设计中,学生需要通过实践来掌握C语言的基本语法和编程思想,同时也需要通过设计优秀的案例来提高自己的编程能力。

下面是10个优秀的C语言课程设计案例。

1. 学生成绩管理系统这个案例要求学生设计一个学生成绩管理系统,可以实现学生信息的录入、查询、修改和删除,同时还可以计算学生的平均成绩、最高成绩和最低成绩等统计信息。

2. 简单计算器这个案例要求学生设计一个简单的计算器,可以实现加、减、乘、除等基本运算,同时还可以实现括号、小数点和负数等高级运算。

3. 迷宫游戏这个案例要求学生设计一个迷宫游戏,可以实现玩家在迷宫中寻找出口的过程,同时还可以实现随机生成迷宫、计时和计分等功能。

4. 图书管理系统这个案例要求学生设计一个图书管理系统,可以实现图书信息的录入、查询、修改和删除,同时还可以实现借书和还书等功能。

5. 简单的文件管理器这个案例要求学生设计一个简单的文件管理器,可以实现文件的创建、删除、复制和移动等基本操作,同时还可以实现文件夹的创建和删除等高级操作。

6. 简单的网络聊天程序这个案例要求学生设计一个简单的网络聊天程序,可以实现用户之间的文字聊天和文件传输等功能,同时还可以实现用户登录和注册等操作。

7. 简单的音乐播放器这个案例要求学生设计一个简单的音乐播放器,可以实现音乐的播放、暂停、停止和跳转等基本操作,同时还可以实现音乐列表的管理和歌词显示等高级功能。

8. 简单的游戏开发这个案例要求学生设计一个简单的游戏,可以实现玩家的移动、攻击和防御等基本操作,同时还可以实现关卡设计和游戏难度调整等高级功能。

9. 简单的人工智能程序这个案例要求学生设计一个简单的人工智能程序,可以实现基本的语音识别、图像识别和自然语言处理等功能,同时还可以实现机器学习和深度学习等高级功能。

1097:计算平均成绩(函数专题)

1097:计算平均成绩(函数专题)
if(n=='C') a=75; else
if(n=='D') a=65; else
if(n=='E') a=40; else a=0; return a; } int main() { char m; int i=0; double sum=0,b; while((m=getchar())!='\n') { i++; b=f(m); sum+=b; } printf("%.1lf",sum*1.0/i); }
输入的成绩均为五级制成绩五级制成绩转换为百分之成绩的规则如下
1097: 计 算 平 均 成 绩 ( 函 数 专 题 )
题目描述
输入某位同学各门课的成绩,输出平均成绩。输入的成绩均为五级制成绩,五级制成绩转换为百分之成绩的规则如下:'A'转换为百分之成绩 为95分,'B'对应85分,C对应75分,'D'对应65分,'E'对应40分。 输出的平均成绩为一个实数,保留1位小数。
输入
输入为一行只包含'A'~'E'的字母,每个字母表示一门课的成绩,
输出
输出平均成绩,为一个实数,保留一位小数。
样例输入
ABCDE
样例输出
72.0
#include<stdio.h> int f(char n) {
int a; if(n=='A') a=95; e if(n=='B') a=85; else

任务5-1、统计某门课程的平均成绩

任务5-1、统计某门课程的平均成绩

while 循环 3-1
do...while语句用来实现‚直到型‛循环结构
while 循环的一般语法:
do { 循环体语句 }while(表达式);
执行流程
它先执行循环体中的语句,然后再判断条件是否为真, 如果为真则继续循环;如果为假,则终止循环
do-while 循环
do...while循环与while循环的不同之处在于:先执行循环中的 语句,然后再判断表达式是否为真,如果为真则继续循环;如 果为假,则终止循环。 do-while循环至少要执行一次循环语句。 与应用while一样,应该注意,在循环体中应该包含改变循环 条件表达式值的语句,否则会出现无限循环(死循环)。
案例2-1
【案例5-1】模拟超市的收款。
分析:
超市购买商品结账时要统计所购买商品的总金额,当依次输入完所 有的商品品的单价、数量后,立即显示所购买商品的的数量和总金额。 这就是逐个数据的累加处理的过程,利用循环来完成。
案例2-2
void main() { float price,sum=0; int counter=0,number=1; printf("输入单价和数量(单价为0结束)\n"); printf("No %d\n",counter+1); printf("单价:"); scanf("%f",&price); while (price!=0) { printf("数量:"); scanf("%d",&number); sum+=price*number; counter++; printf("No %d\n",counter+1); printf("单价:"); scanf("%f",&price); } printf("总共%d件商品\t", counter++); printf("总金额:%6.2f\n",sum); }

CC++语言程序设计案例教程:数组

CC++语言程序设计案例教程:数组
数组是一种构造数据类型,主要是将相同类型的数据集 合起来,用一个名称来代表,案例一中的10个成绩可以 组织成一个数组,用一个数组名代表。数组中的每一个 数据个体称为数组元素,案例一中的每一个成绩可以被 认为是一个数组元素(又称下标变量),它们用同一名字 、不同下标来区分。数组的使用和其他变量的使用一样 ,也需要遵循“先定义,后使用”的原则。
/*表示下标为8的数组元素,即第9
(2) 在引用数组元素时,下标不能越界,否则,可能导致 不可预料的错误。例如在案例一中,数组score的下标 范围是0至9,所以score[-1]和score[10]都属于错误的 引用。
2023/10/7
4.1.4 一维数组的初始化
11
定义后的数组每个数组元素的值都是随机的,需要对每 个数组元素赋值后才能使用。在定义数组的同时可以给 数组元素赋初值,这种操作称为数组的初始化。数组初 始化时可以给全部数组元素都赋初值,也可以只给部分 数组元素赋初值。
2023/10/7
4.1.3 一维数组的引用
9
数组在定义之后就可以使用了,但是数组不能作为一个整体参加各 种运算,只能通过每个数组元素逐个参与运算来完成数组整体的处 理,程序运行时需要引用各个数组元素。
一维数组引用格式: 数组名[下标表达式] 格式说明: (1) 数组名:要引用的数组名,必须是前期已经定义过的数组。 (2) 下标表达式:下标是每个数组元素的编号,对于长度为n的数组
,每个数组元素的下标从头至尾依次是0, 1, 2, 3,…,n-1,即第一 个元素的下标是0,最后一个元素的下标是n-1。下标表达式可以是 任何非负数整型表达式,包括整型常量、整型变量、含运算符的整 型表达式,以及返回值为整数的函数调用,下标为小数时,编译系 统将自动取整。案例一中对score数组的引用如图4.1所示。

c语言算平均分的函数

c语言算平均分的函数

c语言算平均分的函数
【原创版】
目录
1.函数的作用
2.函数的参数
3.函数的实现
4.函数的调用和输出
正文
C 语言是一种广泛使用的编程语言,它被广泛应用于各种场景,如操作系统、嵌入式系统、游戏开发等。

在 C 语言中,函数是一种可以实现特定功能的代码块。

本文将介绍一个计算平均分的函数。

首先,我们来看一下这个函数的作用。

这个函数主要用于计算一组分数的平均值。

它可以接收任意数量的分数作为输入,并返回这些分数的平均值。

接下来,我们来看一下这个函数的参数。

这个函数需要接收一个分数数组和分数的数量作为参数。

分数数组用于存储学生的分数,分数的数量用于指示分数数组中有多少个分数。

然后,我们来介绍一下这个函数的实现。

首先,我们需要定义一个全局变量,用于存储总分。

然后,我们需要遍历分数数组,将每个分数累加到总分中。

最后,我们需要将总分除以分数的数量,得到平均分,并将其返回。

最后,我们来介绍一下这个函数的调用和输出。

我们可以在一个主函数中调用这个函数,并将学生的分数作为参数传递给它。

在函数调用后,我们将得到一个输出,显示这组分数的平均值。

以上就是这个计算平均分的函数的详细实现过程。

C语言课程设计实验报告-学生成绩统计软件

C语言课程设计实验报告-学生成绩统计软件

C 语言课程设计实验报告一 问题描述:编辑一个学生成绩统计软件 二 基本要求:1) 每条记录由学号、姓名、若干门课程的成绩组成; 2) 能计算每个学生的总分和平均分并显示;3) 能按平均分统计各分数段的人数,并以分布图显示,如右图所示。

4) 在此基础上,可进行文件操作。

三 系统分析和设计函数的设计,其最终目的是要实现所需要的功能。

本例中,是用main 函数调用两个子函数来实现的! 1)文件的建立:要想实现对学生成绩的统计,首先要建立一个文件用来存放学生信息,要用到FILE 文件指针。

fp1=fopen("c:\\turboc2\\file1.rec","w+"); 2)程序的设计:学生的信息放在结构体数组struct student_score s[N]中。

通过for 循环,调用子函数getdata ,从键盘接收学生信息(num ,name ,score[0],score[1],score[2],score[3]),并计算总分与平均分,返回学生信息return st 到调用处。

用fprintf 函数向文件中逐一写入学生的信息,通过rewend(fp1)函数使文件指针回到文件头,用fscanf 读学生信息,并显示在屏幕上。

同时根据所读学生信息,统计各分数段的人数s1++,s2++,s3++,s4++,s5++,然后调用一个子函数putsgraph 用来输出图表!四 结构图主函数五 流程图:(背面)具体程序如下:#define N 5#include"stdio.h"#include"stdlib.h"struct student_score{long num;char name[20];float score[4];float total;float aver;}s[N];main(){FILE *fp1;struct student_score getdata(struct student_score st,int x);int putsgraph(int sa, int sb,int sc,int sd,int se);int i=0,s1=0,s2=0,s3=0,s4=0,s5=0;fp1=fopen("c:\\turboc2\\file1.rec","w+");for(i=0;i<N;i++)s[i]=getdata(s[i],i);for(i=0;i<N;i++)fprintf(fp1,"%-7ld%-10s%10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].total,s[i].aver);rewind(fp1);{long num;char name[20];float e,f,g,h,total,aver;for(i=0;i<N;i++){fscanf(fp1,"%ld%s%f%f%f%f%f%f\n",&num,name,&e,&f,&g,&h,&total,&aver);printf("%-7ld%-20s%10.1f%10.1f\n",num,name,total,aver);if(aver<60) s1++;else if(aver<70) s2++;else if(aver<80) s3++;else if(aver<90) s4++;else if(aver<=100) s5++;}}fclose(fp1);putsgraph(s1,s2,s3,s4,s5);}struct student_score getdata(struct student_score st,int x){int y;printf("\nEnter student%d\'s num:\n",x+1);scanf("%ld",&st.num); getchar();printf("\nEnter name:\n");gets();st.total=0;printf("\nEnter 4 scores:\n");for(y=0;y<4;y++){scanf("%f",&st.score[y]);getchar();st.total+=st.score[y];}st.aver=st.total/4;return st;}int putsgraph(int sa, int sb,int sc,int sd,int se){int i,j;char graph[16][80];for(i=0;i<16;i++){for(j=0;j<79;j++) graph[i][j]=' ';graph[i][79]='\0';}for(j=0;j<79;j++) graph[11][j]='-';for(j=3;j<=15;j+=4){ graph[12][j]='<'; graph[12][j+2]='0'; }graph[12][4]='6';graph[12][8]='7';graph[12][12]='8';graph[12][16]='9';graph[12][19]='<'; graph[12][20]='=';graph[12][21]='1';graph[12][22]='0'; graph[12][23]='0';for(i=10;i>(10-sa);i--) graph[i][4]='o';for(i=10;i>(10-sb);i--) graph[i][8]='o';for(i=10;i>(10-sc);i--) graph[i][12]='o';for(i=10;i>(10-sd);i--) graph[i][16]='o';for(i=10;i>(10-se);i--) graph[i][20]='o';for(i=0;i<16;i++) puts(graph[i]);}六测试数据Entrer student1’ num:7879366Enter name:wuhaoEnter 4 scores:66778894Entrer student2’ num:7879343Enter name:JiapanEnter 4 scores:87547683Entrer student3’ num:7879343Enter name:huboEnter 4 scores:85907061Entrer student4’ num:7879422Enter name:jinleiEnter 4 scores:72846578Entrer student5’ num:7879222Enter name:yananEnter 4 scores:37728975结果:7879366 wuhao 325.0 81.2 7879343 jiapan 300.0 75.07879456 hubo 306.0 76.57879422 jinlei 299.0 74.87879222 yanan 273.0 68.2ooo o o-----------------------------------------<60 <70 <80 <90 <=100七软件说明:本程序采用宏定义方式定义学生人数,增加程序的通用性,文件的路径为c:\\turboc2\\file1.rec,当运行结束后,可在dos状态下,输入命令行:type file1.rec打开此文件以检验文件的建立是否正确,并且可以查看学生的全部信息。

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。

例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。

参考答案:includevoid main()double score[30]。

sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。

aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。

算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。

可利用两个下标变量i和XXX。

参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。

i++,j--)//逐一向中,交换。

直到已没有元素没交换t=a[i]。

a[i]=a[j]。

a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。

C语言——求学生平均成绩和最高分对应学生及科目的程序

C语言——求学生平均成绩和最高分对应学生及科目的程序
sum+=a[i][j];
printf(“%0.1f\n”,(float)sum/5);
printf(“\n”);
}
}
voidaverageB(int a[10][5])
{
inti,j,sum;
for(j=0;j<5;j++)
{
sum=0;
printf(“第%d科目的平均分是:”,j+1);
for(i=0;i<10;i++)
sum+=a[i][j];
printf(“%0.1f\n”,(float)sum/10);
printf(“\n”);
}
}
void find(int a[10][5])
{
int i,j,max=0,s1,s2;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(max<a[i][j])
1、输入所有人、科目和分数
运行结果:
五、问题及解决办法
(1)书写标识符时,忽略了中英文的转换,像英文状态下的“,”或“;”总是写成中文状态下的“,”或“;”。
(2)忘加分号;分号是C语句中不可缺少的一部分,语句末尾必须有分号。
(3)少写花括号;花括号也是C语言中不可缺少的一部分,句子结束必须加花括号。
解决方法:在调试与测试后进行修改。
六、课外实践总结
通过这次实践报告,让我深深感觉到C语言的灵活性,在这次的实践中,不仅让我们加深了对C语言的理解,而且充分让我们感受到了亲自动手的能力,巩固和加深了我们对C语言的理解,提高了综合运用课本所学知识的能力。培养了我们动手,思考,查找资料,深入研究,分析问题、解决问题的能力。通过这次课程设计我们发现,我们对C语言基础掌握的还不够扎实,有很多地方还需要继续努力。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.6案例学习:计算平均成绩
【例5-18】输入3个学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。

(1)问题分析:
有3个学生,每个学生有4门课,学生的成绩包括3行4列。

求每个学生的平均成绩即在数组中做行求和,求每门课程的平均成绩即在数组中做列求和。

因此可以用4行5列的数组存放,其中最后一列用于存放每个学生的各门课的平均成绩,最后一行用于存放各门课的平均成绩,例如:
C1C2C3C4S_AVER
S167.068.076.088.074.8
S287.089.091.092.089.8
S393.094.089.099.093.8
C_AVER82.383.785.393.0
(2)参考程序如下:
/*程序名:5_18.c*/
/*程序功能:计算学生的平均成绩*/
#include<stdio.h>
#define M3
#define N4
int main()
{
int i,j;
float score[M+1][N+1]={0};/*定义数组,各元素初值为0*/
printf("array a:\n");
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{
printf("input the mark of%dth courseof%dth student:",j+1,i+1);
scanf("%f",&score[i][j]);
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
score[i][N]+=score[i][j];/*求第i个学生的总成绩*/
score[M][j]+=score[i][j];/*求第j门课的总成绩*/
}
score[i][N]/=N;/*求第i个学生的平均成绩*/
}
for(j=0;j<N;j++)/*求第j门课的平均成绩*/
score[M][j]/=M;
printf("NO.C1C2C3C4AVER\n");
for(i=0;i<M;i++)/*输出每个学生的各科成绩和平均成绩*/
{
printf("stu%d\t",i+1);
for(j=0;j<N+1;j++)
printf(“%6.1f\t”,score[i][j]);
printf(“\n”);
}
printf("-----------------------------------------------------------");
printf(“\naver_c”);
for(j=0;j<N;j++)/*输出每门课的平均成绩*/
printf(“%6.1f\t”,score[M][j]);
printf(“\n”);
return0;
}
运行结果:
按要求输入三个学生的四门课的成绩
NO C1C2C3C4S_AVER
Stu167.068.076.088.074.8
Stu287.089.091.092.089.8
Stu393.094.089.099.093.8
----------------------------------------------------
C_AVER82.383.785.393.0
二维数组score用来存放学生各门课的成绩,定义时行数及列数要比学生人数和课程门数多1,即最后一列用于存放每个学生的各门课的平均成绩,最后一行用于存放各门课的平均成绩。

【例5-19】2008年北京奥运会开幕式运动员入场(按国家名排序)。

(1)问题分析:
通过明确地列出所提供的输入数据、要求的输出和输入到输出相关的算法分析要求说明。

a.确定输入项。

输入项是若干个字符串。

b.确定期望的输出。

c.列出输入输出相关的算法。

(2)选择一个全面的解决方案算法
每个国家的名字是一个字符串,可以使用二维字符数组来实现。

前面讲过,可以把二维数组看作是一种特殊的一维数组,它的元素又是一个一维数组。

这样可以定义一个二维字符数组,每一行是一个字符串,代表一个国家的名字。

然后可以使用冒泡法排序算法对国家名进行排序。

(3)参考程序如下:
/*程序名:5_19.c*/
/*程序功能:字符串排序*/
#define N10
#include<stdio.h>
#include<string.h>
int main()
{
char name[N][20],temp[20];/*定义一个二维数组和一个一维数组*/
int i,j,n;
printf(“请输入n:\n”);
scanf(“%d”,&n);
printf(“请输入国家名:\n”);
for(i=0;i<n i++)
gets(name[i]);
for(i=0;i<n;i++)/*冒泡法排序*/
for(j=0;j<n–i-1;j++)
if(strcmp(name[j],name[j+1])>0)
{
strcpy(temp,name[j]);
strcpy(name[j],name[j+1]);
strcpy(name[j+1],temp);
}
printf(“排序后的国家名为:”);/*输出*/
for(i=0;i<n;i++)
printf(“%s\n”,name[i]);
return0;
}
程序运行结果如下:
请输入n:
5
请输入国家名:
China
Greece
Australia
Kenya
Brazil
排序后的国家名为:
Australia
Brazil
China
Greece
Kenya
程序中name[N][20]用来存放国家名,语句gets(name[i])表示从键盘输入5个国家名,可以将name[5][20]看成5个元素的一维数组name[i],它的元素又是一个一维数组,存放的是一个国家的名字。

采用冒泡法从小到大进行排序,在比较两个字符串时,使用字符串比较函数strcpy();最后将排好序的国家名输出。

相关文档
最新文档