c primer plus 10.13

#include<stdio.h>
int max(double a[],int size)
{
	int b = a[0];
	int flag;
	for (int i = 0; i < size; i++)
	{
		if (b < a[i + 1])
		{
			b=a[i+1];
			flag=i+1;
		}
	}
	return flag; 

}
int main()
{
	double a[]={1,3,7,2,10};
	printf("%d",max(a,5));
	return 0;
}

1.

#include<stdio.h>
#define months 12
#define years 5
int main()
{
	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}
	};
	float(*p)[months];
	p = rain;
	int year, month;
	float subtot, total;
	printf("每一年,各月的降水量总和\n");
	for (year = 0, total = 0; year < years; year++)
	{
		for (month = 0, subtot = 0; month < months; month++)
		{
			subtot += *((*p + year) + month);//rain[year][month]
		}
		printf("%5d %15.1f\n", 2010 + year, subtot);
		total += subtot;
	}
		printf("每年的平均值:%.1f\n",total/years);
		printf("月平均\n");
		printf("jan feb mar apr may jun jul aug sep oct nov dec\n");
		for (month = 0; month < months; month++)
		{
			for (year = 0, subtot = 0; year < years; year++)
			{
				subtot += *((*p + month) + year);
			}
			printf("%4.1f", subtot / years);
		}
		
	return 0;
}

2.

#include<stdio.h>
void shuzu(double a[], double b[])
{
	for (int i = 0; i < 5; i++)
	{
		b[i] = a[i];
	}
}
void zhizhen(double* a, double* b)
{
	for (int i = 0; i < 5; i++)
	{
		*(b + i) = *(a + i);
	}
}
void zhizhen2(double a[], double b[], double *x)
{
	for (int i = 4; i >= 0; i--)
	{
		b[i] = *(x - 1);
		x--;
	}
}
int main()
{
	double x[] = { 1,2,3,4,5 };
	double a[5];
	double b[5];
	double c[5];
	double* p;
	shuzu(x, a);
	zhizhen(x, b);
	zhizhen2(x, c, x + 5);
	printf("%f", c[4]);
	return 0;
}

3.

#include<stdio.h>
#include<string.h>
int max(int a[],int size)
{
	int b = a[0];
	for (int i = 0; i < size; i++)
	{
		if (b < a[i + 1])
		{
			b = a[i + 1];
		}
	}
	return b;
}
int main()
{
	int a[] = { 1,8,6,4,5 };
	printf("%d",max(a, 5));
	return 0;
}

4.

#include<stdio.h>
int max(double a[],int size)
{
	int b = a[0];
	int flag;
	for (int i = 0; i < size; i++)
	{
		if (b < a[i + 1])
		{
			b=a[i+1];
			flag=i+1;
		}
	}
	return flag; 

}
int main()
{
	double a[]={1,3,7,2,10};
	printf("%d",max(a,5));
	return 0;
}

5.

#include<stdio.h>
double max(double a[],int size)
{
	double ma = a[0];
	double mi=a[0];
	int i;
//	printf("%f\n",mi);
	for (i = 0; i < size; i++)
	{
		if (ma < a[i + 1])
		{
			ma=a[i+1];
		}
		if(a[i+1]<mi)
		{
			if(i+1>=5)
			{
				break;
			}
			mi=a[i+1];
		}
	}

	return ma-mi;

}
int main()
{
	double a[]={1,3,4,2,10};
	printf("最大和最小的差值为%f",max(a,5));
	return 0;
}

6.

#include<stdio.h>
void paixu(double a[],int size)
{

	double temp;
	for(int i=0;i<size;i++)
	{
		size--;
		temp = a[i];
		a[i]=a[size];
		a[size]=temp;
	} 
}
int main()
{
	double a[]={6,10,4,8,9};
	paixu(a,5);
	for(int i=0;i<5;i++)
	{
		printf("%f\n",a[i]);
	}
	return 0;
}
//方法二
#include<stdio.h>
void paixu(double a[],int size)
{
	int count=0;
	double b[size];
	for(int i=size-1;i>=0;i--)
	{
		b[count]=a[i];
		count++;
	} 
	for(int i=0;i<size;i++)
	{
		a[i]=b[i];
	}
}
int main()
{
	double a[]={6,10,4,8,9};
	paixu(a,5);
	for(int i=0;i<5;i++)
	{
		printf("%f\n",a[i]);
	}
	return 0;
}

7.

#include<stdio.h>
#define size 2
void copy1(double a[],double b[])
{
	for(int i=0;i<size;i++)
	{
		b[i]=a[i];
	}
}
void copy(double a[][size],double b[][size])
{
	for(int i=0;i<size;i++)
	{
		copy1(a[i],b[i]);
	}
}
int main()
{
	double a[][2]={{1,2},{3,4},{5,6}};
	double b[size][size];
	copy(a,b);
	for(int i=0;i<size;i++)
	{
		for(int j=0;j<size;j++)
		{
			printf("%f\n",b[i][j]);
		}
	}
	return 0;
}

8.

#include<stdio.h>
void copy1(double a[],double b[])
{
	int cout=0;
	for(int i=2;i<5;i++)
	{
		b[cout]=a[i];
		cout++;
	}
}
int main()
{
	double a[]={1,2,3,4,5,6,7};
	double b[3];
	copy1(a,b);
	for(int i=0;i<3;i++)
	{
			printf("%f\n",b[i]);

	}
	return 0;
}

9.

#include<stdio.h>
void copy(int m, int n, double a[m][n], double b[m][n])
{
	int i,j;
	for ( i = 0; i < m; i++)
	{
		for (j = 0; j < n; j++)
		{
			b[i][j] = a[i][j];
		}
	}
	print(m,n,a,b);
}
void print(int m, int n, double b[m][n])
{
	int i,j;
	for ( i = 0; i < m; i++)
	{
		for ( j = 0; j < n; j++)
		{
			printf("%f\n", b[i][j]);
		}
	}
}
int main()
{
	double a[3][3] = { {1,2,3},{4,5,6},{78,8,9} };
	double b[3][3];
	copy(3, 3, a, b);
	return 0;
}

10.

#include<stdio.h>
void add(int a[], int b[], int c[],int size)
{
	for (int i = 0; i < size; i++)
	{
		c[i] = a[i] + b[i];
	}
	for (int j = 0; j < size; j++)
	{
		printf("%d\n", c[j]);
	}
}
int main()
{
	int a[] = { 1,2,3,45,2 };
	int b[] = { 6,7,8,9,10 };
	int c[5];
	add(a, b, c,5);
	return 0;
}

11.

#include<stdio.h>
#define m 3
#define n 5
void dou(int a[][n])
{

	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			printf("新数组值为%d\n", a[i][j] * 2);
		}
	}
}
void print(int a[][n])
{
	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			printf("原数组值为%d\n", a[i][j]);
		}
	}
	dou(a);
}
int main()
{
	int a[m][n] = { {1,2,3,4,5},{4,5,6,7,8},{8,9,10,11,12} };
	print(a);
	return 0;
}

12.

#include<stdio.h>
#define months 12
#define years 5
void jisuan1(float p[][months])
{
	int year, month;
	float subtot, total;
	printf("每一年,各月的降水量总和\n");
	for (year = 0, total = 0; year < years; year++)
	{
		for (month = 0, subtot = 0; month < months; month++)
		{
			subtot += *((*p + year) + month);//rain[year][month]
		}
		printf("%5d %15.1f\n", 2010 + year, subtot);
		total += subtot;
	}
	printf("每年的平均值:%.1f\n", total / years);
}
void jisuan2(float p[][months])
{
	int year, month;
	float subtot, total;
	printf("月平均\n");
	printf("jan feb mar apr may jun jul aug sep oct nov dec\n");
	for (month = 0; month < months; month++)
	{
		for (year = 0, subtot = 0; year < years; year++)
		{
			subtot += *((*p + month) + year);
		}
		printf("%4.1f", subtot / years);
	}
}
int main()
{
	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}
	};
	float(*p)[months];
	p = rain;
	jisuan1(p);
	jisuan2(p);
	

	return 0;
}

13.

#include<stdio.h>
#define m 3
#define n 5
void jisuan(double a[m][n])
{
	double sum=0;
	double total = 0;
	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			sum += a[i][j];
			total += sum;
		}
		printf("第%d组平均值为%f\n",i, sum / 5);
		sum = 0;
	}
	printf("总平均值为%f\n", total/15 );
}
int main()
{
	double a[m][n];
	printf("请输入3组数,每组五个,只接受double类型:");
	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
		{
			scanf("%lf", &a[i][j]);
		}
	}
	jisuan(a);
	return 0;
}

14.

#include<stdio.h>
void jisuan(int m,int n,double a[m][n])
{
	double sum=0;
	double total = 0;
	int i,j;
	for (i = 0; i < m; i++)
	{
		for ( j = 0; j < n; j++)
		{
			sum += a[i][j];
			total += sum;
		}
		printf("第%d组平均值为%f\n",i, sum / 5);
		sum = 0;
	}
	printf("总平均值为%f\n", total/15 );
}
int main()
{
	double a[3][5];
	int i,j;
	printf("请输入3组数,每组五个,只接受double类型:");
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			scanf("%lf", &a[i][j]);
		}
	}
	jisuan(3,5,a);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值