|
while((c=fgetc(fp))!= EOF){ ……/* 这里对刚读人的字符信息C作某种处理*/ } fclose(fp); ……/* 输出处理结果*/ int c;/*也可以是 char类型*/ 对于本例题,只要包含上述(1)、(3)、(5)和(4)即可,写成完整程序如下: # include<stdio.h> FILE*FP;/*定义文件指针变量 fp*/ char fname[40]=“text.txt”; main() {char c;/*或 int c*/ if((fp= fopen(fname,“r”))== NULL){ /*为读打开*/ printf(“%s文件不能打开,结束程序的执行\n”,fname); return; } c=fgetc(fp);/*将从文件输入的字符存于变量c*/ printf(“%c\n”, c); fclose(fp);/*中所指文件关闭*/ } 「例9」编写函数f,该函数没有浮点型数组形参float[]和整型形参n,函数的功能是计算并返回p[]中前n个元素的平均值。由于函数返回已知数组的平均值,函数的头有以下形式: float f( float p[], int n) 函数为了计算平均值,需要两个计算步骤,首先是求出数组元素之和,然后将求得的和除以元素个数。严格地说,函数还因防止形参n小于等于0的情况,假定当n小等于0时,函数返回0值。为求数组元素和,需要一个存储 一是引入一个循环控制变量(例如说i),并让 i作为弓佣数组元素的下标(如 p[i])。所以有以下代码: float f(float p[], int n) { int i; float s; if(n<=0)return 0.0; for( s=0.0, i=0; i<n; i++) s+= p[i]; return s/n; } 二是由于函数的数组形参实际是一个指针变量,遍历数组直接可用指针形参p实现。循环次数可让变量 j控制, j的初值为 n,每次循环后让 j减 1,循环直至 j为 0结束。写成 C代码如下: float f( float p[], int n) { floa S; int j=n; if( n<=0) return 0.0; for( s=0.0; j>0; j——) s+=*p++; return s/n; } | |
| 没有相关文章 |
| 文章评论 | |||