《c primer plus》编程练习回顾-第十章
来源:互联网 发布:windows图形编程pdf 编辑:程序博客网 时间:2024/05/16 15:47
1.
#include <stdio.h>#define MONTHS 12#define YEARS 5int main(void){ const float rain[YEARS][MONTHS] = { { 4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6 }, { 8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.3 }, { 9.1, 8.5, 6.7, 4.3, 2.1, 0.8, 0.2, 0.2, 1.1, 2.3, 6.1, 8.4 }, { 7.2, 9.9, 8.4, 3.3, 1.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 6.2 }, { 7.6, 5.6, 3.8, 2.8, 3.8, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 5.2 } }; int year, month; float subtot, total; printf(" YEAR RAINFALL (inches)\n"); for (year = 0, total = 0; year < YEARS; year++) { for (month = 0, subtot = 0; month < MONTHS; month++) subtot += *(*(rain + year) + month); printf("%5d %15.1f\n", 2000 + year, subtot); total += subtot; } printf("\nThe yearly average is %.1f inches.\n\n", total / YEARS); printf("MONTHLY AVERAGES:\n\n"); printf(" Jan Feb Mar Apr May Jun Jul Aug Sep Oct "); printf(" Nov Dec\n"); for (month = 0; month < MONTHS; month++) { for (year = 0, subtot = 0; year < YEARS; year++) subtot += *(*(rain + year) + month); printf("%4.1f ", subtot / YEARS); } printf("\n"); return 0;}
2.
#include<stdio.h>void copy_arr(double a[], double b[], int c);void copy_ptr(double *a, double *b, int c);int main(void){ double source[5] = { 1.1, 2.2, 3.3, 4.4, 5.5 }; double target1[5]; double target2[5]; copy_arr(source, target1, 5); copy_ptr(source, target2, 5); printf("%lf,%lf,%lf,%lf,%lf\n", target1[0], target1[1], target1[2], target1[3], target1[4]); printf("%lf,%lf,%lf,%lf,%lf\n", target2[0], target2[1], target2[2], target2[3], target2[4]); return 0;}void copy_arr(double a[], double b[], int c){ for (int i = 0; i < c; i++) b[i] = a[i];}void copy_ptr(double *a, double *b, int c){ for (int i = 0; i < c; i++) *(b + i) = *(a + i);}
3.
#include<stdio.h>int fun(int a[], int b);int main(void){ int num[5] = { 1, 2, 3, 4, 5 }; printf("max=%d\n", fun(num, 5)); return 0;}int fun(int a[], int b){ int max=0; for (int i = 0; i < b; i++) { if (max < a[i]) max = a[i]; else continue; } return max;}
4.
#include<stdio.h>int fun(double a[], int b);int main(void){ double num[5] = { 1, 2, 3, 4, 5 }; printf("The max is num[%d]\n", fun(num, 5)); return 0;}int fun(double a[], int b){ int i, max; for (i=0,max=1;i<b;i++) { if (a[max] < a[i]) max = i; } return max;}
5.
#include<stdio.h>double fun(double a[], int b);int main(void){ double num[5] = { 1, 2, 3, 4, 5 }; printf("%lf\n", fun(num, 5)); return 0;}double fun(double a[], int b){ double max, min; int i, j; for (i = 0, j = 1; i < b; i++) { if (a[i] < a[j]) j = i; min = a[j]; } for (i = 0, j = 1; i < b; i++) { if (a[i]>a[j]) j = i; max = a[j]; } return max - min;}
6.
#include<stdio.h>void fun(double a[][2], double b[][2]);int main(void){ double num[][2] = { 1, 2, 3, 4 }; double c[2][2]; fun(num, c); printf("%lf,%lf,%lf,%lf\n", c[0][0], c[0][1], c[1][0], c[1][1]); return 0;}void fun(double a[2][2], double b[2][2]){ int i, j; for (i = 0; i < 2; i++) { for (j = 0; j < 2; j++) b[i][j] = a[i][j]; }}
7.
#include<stdio.h>void fun(int *a, int b);int main(void){ int num[7] = { 1, 2, 3, 4, 5, 6, 7 }; fun(num, 3); return 0;}void fun(int *a, int b){ int c[3]; for (int i = 0; i < b; i++) c[i] = *(a + 2 + i); printf("%d %d %d\n", c[0], c[1], c[2]);}
8.
#include<stdio.h>#define M 5#define N 3void fun1(double p[N][M], double q[N][M]);void fun2(double p[N][M]);int main(void){ double num[N][M] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; double num1[N][M]; fun1(num, num1); fun2(num1); return 0;}void fun1(double p[N][M], double q[N][M]){ int i, j; for (i = 0; i < N;i++) for (j = 0; j < M; j++) q[i][j] = p[i][j];}void fun2(double p[N][M]){ int i, j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) printf("%.2f ", p[i][j]); printf("\n"); }}
9.
#include<stdio.h>void fun(int *a, int *b, int *c,int d);int main(void){ int r[4] = { 1, 2, 3, 4 }, s[4] = { 5, 6, 7, 8 }, t[4]; fun(r, s, t, 4); for (int i = 0; i < 4; i++) printf("%d ", t[i]); printf("\n"); return 0;}void fun(int *a, int *b, int *c, int d){ for (int i = 0; i < d; i++) *(c + i) = *(a + i) + *(b + i);}
10.
#include<stdio.h>void print(int (*p)[5],int b);void two(int (*p)[5], int b);int main(void){ int num[3][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; print(num, 3); two(num, 3); print(num, 3); return 0;}void print(int(*p)[5], int b){ for (int i = 0; i < b * 5; i++) printf("%2d ", *(*(p)+i)); printf("\n");}void two(int(*p)[5], int b){ for (int i = 0; i < b * 5; i++) *(*(p)+i) *= 2;}
12.
#include<stdio.h>void input(double (*a)[5],int b);double ave(double (*a)[5], int b);double all_ave(double (*a)[5], int b);double max(double (*a)[5], int b);void print(double *,double*);int main(void){ double *p, *q; double aver[3], m, all; int i; double num[3][5]; input(num, 3); for (i = 0; i < 3; i++) aver[i] = ave(num, i); all = all_ave(num, 3); m = max(num, 3); p = &all; q = &m; print(p,q); return 0;}void input(double(*a)[5], int b){ printf("please input 15 numbers:"); for (int i = 0; i < b;i++) for (int j = 0; j < 5; j++) scanf("%lf", *(a+i)+j);}double ave(double(*a)[5], int b){ double sum = 0; for (int i = 0; i < 5; i++) sum += *(*(a)+i + 5 * b); return (double)sum / 5;}double all_ave(double(*a)[5], int b){ double sum = 0; for (int i = 0; i < b * 5; i++) sum += *(*(a)+i); return (double)sum / (b * 5);}double max(double(*a)[5], int b){ double max = 0; for (int i = 0; i <= b * 5; i++) { if (*(*(a)+i)>max) max = *(*(a)+i); } return max;}void print(double *r,double *s){ printf("ave:%.2lf\n", *r); printf("max:%.2lf\n", *s);}
0 0
- 《c primer plus》编程练习回顾-第十章
- 《c primer plus》编程练习回顾-第二章
- 《c primer plus》编程练习回顾-第三章
- 《c primer plus》编程练习回顾-第四章
- 《c primer plus》编程练习回顾-第五章
- 《c primer plus》编程练习回顾-第六章
- 《c primer plus》编程练习回顾-第七章
- 《c primer plus》编程练习回顾-第八章
- 《c primer plus》编程练习回顾-第九章
- 《c primer plus》编程练习回顾-第十一章(上)
- 《C Primer Plus 第五版》第十章编程练习
- C primer plus(第五版)编程练习第十章
- c++.primer.plus第五版第十章编程练习答案
- C Primer Plus 第十章 编程练习 1-11题
- C ++ Primer Plus 第六版 第十章编程练习答案
- C++ primer plus 第十章编程练习
- C primer plus 第十章 练习1:
- C primer plus 第十章 练习2:
- struts2笔记整理第四天(项目实战)
- 跨进程遍历目标进程中树形控件的例子源码
- 分布式系统中进程通信的理解
- 6.时光机穿梭
- 如何在mac本上安装android sdk
- 《c primer plus》编程练习回顾-第十章
- 集中式vs分布式
- 2015-3-26C语言学习日记
- Python进阶(三)
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程
- 6、NSNotificationCenter使用
- gcov 用法
- cocos3.4 改变窗口大小
- 7.版本回退