total/years);
printf(\
printf(\ printf(\
for (month = 0; month < MONTHS; month++)
{ 写…个程序,提示用户输入3个数集,每个数集包括5个double值。程序应当实现下列所有功能:
a.把输入信息存储到一个3x5的数组中 b.计算出每个数集(包含5个数值)的平均值 c.计算所有数值的平均数 d.找出这15个数中的最大值. e.打印出结果
每个任务需要用一个单独的函数来实现(使用传统C处理数组的方法)。对于任务b,需要编写计算并返回一维数组平均值的函数,循环3次调用该函数来实现任务b。对于其他任务,函数应当把整个数组做为参数,并且完成任务c和d的函数应该向它的调用函数返回答案。
#include <> #define COLS 5
void store(double p[][COLS], int row);
void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2);
double f_average_total(double p[][COLS], int row); double f_max(double p[][COLS], int row);
void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max);
int main(void) {
double array[3][COLS];
double average0, average1, average2, average_total, max; store(array,3);
average_row(array, &average0, &average1, &average2); average_total = f_average_total(array,3); max = f_max(array,3);
display(array, 3, average0, average1, average2, average_total, max);
return 0; }
void store(double p[][COLS], int row) {
int i,j;
printf(\ for (i=0; i void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2) { int j; for (j=0, *p_average0=0; j for (j=0, *p_average1=0; j for (j=0, *p_average2=0; j double f_average_total(double p[][COLS], int row) { int i,j; double average=0; for (i=0; i return average; } double f_max(double p[][COLS], int row) { int i,j; double max=p[0][0]; for (i=0; i if (max < p[i][j]) max = p[i][j]; return max; } void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max) { int i,j; printf(\ for(i=0;i for (j=0; j printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ } 13.利用变长数组做为函数参量重做练习12。 我的编译器无变长数组功能 第11章 字符串和字符串函数 编程练习 1.设计并测试一个函数,可以从输入读取n个字符(包括空格、制表符和换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递。 #include <> void input(char *p, int n); int main(void) { char a[81]; int n; puts(\ scanf(\ getchar(); ; gets(str); } while(*str != 'q'); puts(\ return 0; } char *mystrchr(char *p, char ch) { char *p_save = p; if(*p == '\\0') return NULL; while(1) { if(*p == ch) { return p_save; } else { if(*++p == '\\0') return NULL; p_save = p; } } } 5.编写一个函数is_witlun()。它接受两个参数,一个是字符,另一个是字符串指针。其功能是如果字符在字符串中,就返回一个非O值(真);如果字符不在字符串中,就返回O值(假)。在一个使用循环语句为这个函数提供输入的完整程序中进行测试。 #include <> int is_within(char *p, char ch); int main(void) { char str[81]; char ch; do { puts(\ gets(str); puts(\ ch = getchar(); getchar(); if ( is_within(str, ch) ) puts(\ else puts(\ puts(\ ch = getchar(); getchar(); } while(ch != 'q'); puts(\ return 0;