EOF (End Of File) 表示文件结束, 在这里就是告诉while循环, 如果获得到的是EOF, 就结束循环
这个程序运行的时候, 要终止程序, 按Ctrol+D(Linux) 或者 Ctrl+Z(Windows), 这时,getchar()获取的就是EOF了
一、首先打开VC++
二、文件》》新建
三、创建一个C++空白文档头文件是必须声明的# include <stdioh>
四、说下主体思想我们定义一个求每门课平均成绩的函数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("%42f ", ((score+n)+i));
printf("\n");
}
下面是主函数
int main()
{
int num,i;
//定义一个数组aveCourse来存储每门课的平均成绩,
定义变量aveAll来存储总的平均成绩
float aveAll,aveCourse[4];
float score[4][4] = {{67, 78, 45, 88}, {76, 54, 90, 69},
{99, 45, 88, 99}, {98, 69, 77, 87}};//这是成绩,可以用scanf输入,也可以在这里定义
/ 调用函数AverageAll求16个分数的平均分 /
aveAll=AverageAll(&score[0][0],16);
printf("The average of all courses is:\n %f\n\n",aveAll);
/ 调用函数AverageCourse求4门客的平均分 /
AverageCourse(score,aveCourse);
for(i=0;i<4;i++)
printf("The average of %dth course is:\n %f\n",i,aveCourse[i]);
/ 求出序号是num的学生的成绩 /
printf("\nPlease input the num of student(0-3):\n");
scanf("%d", &num);
printf("The score of the %dth student is:\n",num);
StudentScore(score,num);
getch();
return 0;
}
七、程序运行结果
c语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的DMRitchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
eof
是个宏,其意思是:end
of
file,文件尾标志。
从数值上来看,就是整数-1
在c语言的头文件中对其进行了宏定义:
libioh: # define eof (-1)当读文件 *** 作时,遇到文件结束位置或读数据出错均会返回
eof。
(c语言中所有的输入输出 *** 作均是按读文件的思想来设计的,或者说,是文件 *** 作的一种特例,如getchar()就是fgetc(stdin)
的一个宏
)
int getchar() ; //从标准输入缓冲区读取一个字符,成功返回该字符的ascii值,出错,返回eof那么,如何在键盘输入时,产生eof呢?
不同的系统方法不同:
linux系统下,在输入回车换行后的空行位置,按
ctrl+d
(先按ctrl键,不放,再按d键)
windows系统下,在输入回车换行后的空行位置,按
ctrl+z,再回车确认
以下代码供参考:
#include
void main()
{
int ch;
do {
ch=getchar();
printf("ch=%d\n", ch ); //输出读返回的ch值,读到eof会输出-1
} while ( ch!=eof );
}
以上就是关于c语言EOF的问题全部的内容,包括:c语言EOF的问题、c语言作业 编写一个输出学生成绩等级的程序、c语言中怎么用EOF来结束数组输入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)