文档章节

第十章 数组和指针

yohoj
 yohoj
发布于 2015/05/20 20:23
字数 1668
阅读 10
收藏 0

#include<stdio.h>
#define MONTHS 12
#define YEARS 5

int 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,2.3,5.6,2.5,1.3,1.5,2.2,5.6,8.6,9.1,7.7},
	{7.2,9.9,3.2,3.6,5.3,1.1,2.2,6.5,6.3,7.5,7.1,8.2},
	{7.6,5.3,2.3,1.3,4.1,2.5,6.4,2.0,0.5,0.0,0.0,5.2},
	};
	const float *p;
	int year,month;
	float subtot,total;

	p = &rain[0][0];

	printf("YEAR RAINFALL (inches)\n");
	for(year = 0,total = 0;year < YEARS;year++)
	{
		for(month = 0,subtot = 0;month < MONTHS; p++,month++)
		{
			subtot += *p;
		}
		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;
}

#include<stdio.h>
void cpy_arr(double source[],double target1[],int n);
void cpy_ptr(double *s,double *t,int n);

int main()
{
	double source[5] = {1.1,2.2,3.3,4.4,5.5};
	double target1[5];
	double target2[5];
    cpy_arr(source,target1,5);
	cpy_ptr(source,target2,5);
	return 0;
}

void cpy_arr(double source[],double target1[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		target1[i] = source[i];
		printf(" %.1f ",target1[i]);
	}
}

void cpy_ptr(double *s,double *t,int n)
{
	int i;
	for(i=0;i<n;i++,s++,t++)
	{
		*t = *s;
		printf(" %.1f ",*t);
	}
}

#include<stdio.h>
int max(int a[],int n);

int main()
{
	int a[]={5,6,3,8,9,12,45,7};
	int n;
	n = sizeof(a)/sizeof(a[0]);
	printf("%d\n",max(a,n));
}

int max(int a[],int n)
{
	int max=0,i;
	for(i=0;i<n;i++)
	{
		if(a[i] > max)
			max = a[i];
	}
	return max;
}

#include<stdio.h>
double max(double a[],int n);

int main()
{
	double a[]={5.2,6.3,3.00,8.54,9.36,12.1,45.55,7.32};
	int n;
	n = sizeof(a)/sizeof(a[0]);
	printf("%f\n",max(a,n));
}

double max(double a[],int n)
{
	double max=0;
	int i;
	for(i=0;i<n;i++)
	{
		if(a[i] > max)
			max = a[i];
	}
	return max;
}

#include<stdio.h>
double max(double a[],int n);

int main()
{
	double a[]={5.2,6.3,3.00,8.54,9.36,12.1,45.55,7.32};
	int n;
	n = sizeof(a)/sizeof(a[0]);
	printf("%f\n",max(a,n));
}

double max(double a[],int n)
{
	double max=0,min=a[0];
	int i;
	for(i=0;i<n;i++)
	{
		if(a[i] > max)
			max = a[i];
		if(a[i] < min)
			min = a[i];
	}
	return max-min;
}

#include<stdio.h>
void cpy_arr(double source[][5],double target1[][5],int n);
void cpy_ptr(double (*s)[5],double (*t)[5],int n);

int main()
{
	double source[2][5] = {
				{1.1,2.2,3.3,4.4,5.5},
				{6.6,7.7,8.8,9.9,0.0}
				};
	double target1[2][5];
	double target2[2][5];
        cpy_arr(source,target1,2);
	cpy_ptr(source,target2,2);
	return 0;
}

void cpy_arr(double source[][5],double target1[][5],int n)
{
	int i,j;
	for(i=0;i<n;i++)
	{	 
		for(j=0;j<5;j++)
		{
			target1[i][j] = source[i][j];
			printf(" %.1f ",target1[i][j]);
		}
		printf("\n");
	}
}

void cpy_ptr(double (*s)[5],double (*t)[5],int n)
{
	int i,j;
	for(i=0;i<n;i++,s++,j++)
	{
		for(j=0;j<5;j++)
		{
			(*t)[j] = (*s)[j];
			printf(" %.1f ",(*t)[j]);
		}
		printf("\n");
	}
}

#include<stdio.h>
void cpy_arr(double source[],double target1[],int n);
void cpy_ptr(double *s,double *t,int n);

int main()
{
	double source[7] = {1.1,2.2,3.3,4.4,5.5,6.6,7.7};
	double target1[3];
	double target2[3];
    cpy_arr(source,target1,3);
	cpy_ptr(source,target2,3);
	return 0;
}

void cpy_arr(double source[],double target1[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		target1[i] = source[i+2];
		printf(" %.1f ",target1[i]);
	}
}

void cpy_ptr(double *s,double *t,int n)
{
	int i;
	for(i=0;i<n;i++,s++,t++)
	{
		*t = *(s+2);
		printf(" %.1f ",*t);
	}
}

#include<stdio.h>
void cpy(int a,int b,double num[][5],double num1[][5]);
void output(int a,int b,double num[][5]);

int main()
{
	double num[3][5]={
	{2.1,5.3,2.31,6.35,0.23},
	{1.36,6.9,3.58,9.6,7.5},
	{41.2,5.6,9.9,10.2,2.36},
	};
	double num1[3][5];
	cpy(3,5,num,num1);
	output(3,5,num);
	output(3,5,num1);
}

void cpy(int a,int b,double num[][5],double num1[][5])
{
	int i,j;
	for(i=0;i<a;i++)
	{
		for(j=0;j<b;j++)
		{
			num1[i][j] = num[i][j];
		}
	}
}

void output(int a,int b,double num[][5])
{
	int i,j;
	for(i=0;i<a;i++)
	{
		for(j=0;j<b;j++)
		{
			printf(" %.2f ",num[i][j]);
		}
		printf("\n");
	}
}

#include<stdio.h>
void add(int n,int a[],int b[],int c[]);

int main()
{
	int a[4] = {2,4,5,8};
	int b[4] = {1,0,4,6};
	int c[4];
	add(4,a,b,c);
	return 0;
}

void add(int n,int a[],int b[],int c[])
{
	int i;
	for(i=0;i<n;i++)
	{
		c[i] = a[i]+b[i];
		printf(" %d ",c[i]);
	}
}

#include<stdio.h>
void output(int n,int m,double a[][5]);
void two(int n,int m,double a[][5],double b[][5]);

int main()
{
	double a[3][5] = {
	{2.3,5.3,6.8,9.9,4.5},
	{5.32,6.35,5.14,8.47,9.21},
	{6.3,5.21,3.3,0.0,8}
	};
	double b[3][5];
	output(3,5,a);
	two(3,5,a,b);
	output(3,5,b);
	return 0;
}

void output(int n,int m,double a[][5])
{
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
			printf(" %.2f ",a[i][j]);
		printf("\n");
	}
}

void two(int n,int m,double a[][5],double b[][5])
{
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			b[i][j] = 2 * a[i][j];
		}
	}
}

#include<stdio.h>
#define MONTHS 12
#define YEARS 5
float sumYear(const float rain[YEARS][MONTHS]);
void sumMonth(const float rain[YEARS][MONTHS]);

int 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,2.3,5.6,2.5,1.3,1.5,2.2,5.6,8.6,9.1,7.7},
	{7.2,9.9,3.2,3.6,5.3,1.1,2.2,6.5,6.3,7.5,7.1,8.2},
	{7.6,5.3,2.3,1.3,4.1,2.5,6.4,2.0,0.5,0.0,0.0,5.2},
	};
	

	
	float total;
	printf("YEAR RAINFALL (inches)\n");
	total =	sumYear(rain);
	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");

	sumMonth(rain);
	
	printf("\n");
	return 0;
}

float sumYear(const float rain[YEARS][MONTHS])
{
	float subtot,total;
	int year,month;
	const float *p;
	p = &rain[0][0];
	for(year = 0,total = 0;year < YEARS;year++)
	{
		for(month = 0,subtot = 0;month < MONTHS; p++,month++)
		{
			subtot += *p;
		}
		printf("%5d %15.1f\n",2000+year,subtot);
		total += subtot;
	}
	return total;
}

void sumMonth(const float rain[YEARS][MONTHS])
{
		float subtot;
		int year,month;
	for (month = 0; month < MONTHS; month++)
	{
	
		for(year = 0,subtot = 0; year < YEARS; year++)
			subtot += rain[year][month];
		printf("%4.1f",subtot/YEARS);
	}
}

#include<stdio.h>
void input(double a[3][5]);        //输入函数
void ave(double a[3][5]);          //每行平均数函数
double inch(double a[3][5]);       //全部平均数函数
double max(double a[3][5]);        //最大值函数
void output(double n,double m);    //输出函数

int main()
{
	double a[3][5];
	double n,ma;
	input(a);
	printf("第一行 第二行 第三行\n");
	ave(a);
	n = inch(a);
	ma = max(a);
	printf("平均数 最大值\n");
	output(n,ma);
	return 0;
}

//输入函数
void input(double a[3][5])
{
	int i,j;
	printf("请输入3个数集,每个数集包括5个double值\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			scanf("%lf",&a[i][j]);
		}
	}
}


//每行平均数函数
void ave(double a[3][5])
{
	double sum = 0;
	double inches = 0;
	int i,j,k;
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			sum = sum + a[i][j];
		}
		inches = sum / 5;
		sum = 0;
		printf("%.2f   ",inches);
	}
	printf("\n");
}


//全部平均数函数
double inch(double a[3][5])
{
	double n,m = 0;
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			m = m + a[i][j];
		}
	}
	n = m / 15;
	return n;
}


//最大值函数
double max(double a[3][5])
{
	int i,j;
	double max = 0;
	for(i=0;i<3;i++)
	{
		for(j=0;j<5;j++)
		{
			if(a[i][j] > max)
				max = a[i][j];
		}
	}
	return max;
}


//输出函数
void output(double n,double m)
{
	printf("%.2f  %.2f\n",n,m);
}

#include<stdio.h>
void input(int c,int d,double a[][5]);       //输入函数
void ave(int c,int d,double a[][5]);         //每行平均数函数
double inch(int c,int d,double a[][5]);      //全部平均数函数
double max(int c,int d,double a[][5]);       //最大值函数
void output(double n,double m);              //输出函数

int main()
{
	double a[3][5];
	double n,ma;
	input(3,5,a);
	printf("第一行 第二行 第三行\n");
	ave(3,5,a);
	n = inch(3,5,a);
	ma = max(3,5,a);
	printf("平均数 最大值\n");
	output(n,ma);
	return 0;
}

//输入函数
void input(int c,int d,double a[][5])    
{
	int i,j;
	printf("请输入3个数集,每个数集包括5个double值\n");
	for(i=0;i<c;i++)
	{
		for(j=0;j<d;j++)
		{
			scanf("%lf",&a[i][j]);
		}
	}
}

//每行平均数函数
void ave(int c,int d,double a[][5])        
{
	double sum = 0;
	double inches = 0;
	int i,j,k;
	for(i=0;i<c;i++)
	{
		for(j=0;j<d;j++)
		{
			sum = sum + a[i][j];
		}
		inches = sum / 5;
		sum = 0;
		printf("%.2f   ",inches);
	}
	printf("\n");
}

//全部平均数函数
double inch(int c,int d,double a[][5])        
{
	double n,m = 0;
	int i,j;
	for(i=0;i<c;i++)
	{
		for(j=0;j<d;j++)
		{
			m = m + a[i][j];
		}
	}
	n = m / 15;
	return n;
}

//最大值函数
double max(int c,int d,double a[][5])        
{
	int i,j;
	double max = 0;
	for(i=0;i<c;i++)
	{
		for(j=0;j<d;j++)
		{
			if(a[i][j] > max)
				max = a[i][j];
		}
	}
	return max;
}

//输出函数
void output(double n,double m)
{
	printf("%.2f  %.2f\n",n,m);
}


© 著作权归作者所有

yohoj
粉丝 0
博文 16
码字总数 14691
作品 0
宁波
私信 提问
C Primer Plus (第六版) 中文版 随手笔记(九)

版权声明: https://blog.csdn.net/qq_38351824/article/details/80102638 声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺...

sumjess
2018/04/27
0
0
13篇文章,教你学会ES6知识点

ES6 深入理解ES6》学习笔记 本文用于汇总链接到各个子章节的内容,github 欢迎大家题issues和PR,如果对你有帮助,也可以给 star 支持 :) 目录 第一章 块级绑定 第二章 字符串和正则表达式 ...

你听___
2018/05/08
0
0
C++快速入门

只学过Java的我最近笔试接触到各种C++的题目,于是稍微恶补了一下C++的基础部分,以下内容是基于《21天学通C++》的部分读书笔记,按照章节写的。 第二章 C++程序的组成部分 ①#include 预处理...

waffle930
2016/10/02
66
0
c++ primer 第五版学习笔记

第二章 函数体外定义的内置类型变量会初始化为0,函数体外的是未初始化的 用constexpr声明变量表示它是一个常量表达式(编译器可以确定的值),且只能应用于字面值 c++11中可以用 来定义一个...

David栗子
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
2.7K
22
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
3
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
69
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部