好文档 - 专业文书写作范文服务资料分享网站

C primer plus课后编程练习答案

天下 分享 时间: 加入收藏 我要投稿 点赞

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;

3ty247x5vm0a6ri16ozy38gut0xsx2013u8
领取福利

微信扫码领取福利

微信扫码分享