首页 > 其他分享 >cpp_10_1

cpp_10_1

时间:2024-11-07 22:49:27浏览次数:5  
标签:10 subtot 4.3 0.0 0.2 month year cpp

修改程序清单10.7的rain.c程序,用指针进行计算(仍然要声明并初始化数组)。

//程序清单2.10

#include <stdio.h>
#define MONTHS 12 // 一年的月份数
#define YEARS 5 // 年数
int main(void)
{
// 用2010~2014年的降水量数据初始化数组
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", 2010 + year, subtot);
total += subtot; // 5年的总降水量
}
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++)
{ // 每个月,5年的总降水量
for (year = 0, subtot = 0; year < YEARS;year++)
subtot += rain[year][month];
printf("%4.1f ", subtot / YEARS);
}
printf("\n");
return 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, 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=0;
	const float (*ptr)[MONTHS]=rain;
	
	printf(" YEAR RAINFALL (inches)\n");
	
	for(year=0;year<YEARS;year++){
		
		subtot=0;
		
		for(month=0;month<MONTHS;month++){
			
			subtot+=*(*(ptr+year)+month);
			
		}
		
        printf("%5d %15.1f\n", 2010 + 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 += *(*(ptr+year)+month);
            
		}

		printf("%4.1f ", subtot / YEARS);
		
	}

	printf("\n");

	return 0;

}

标签:10,subtot,4.3,0.0,0.2,month,year,cpp
From: https://blog.csdn.net/2403_87560502/article/details/143609682

相关文章

  • P10954 LCIS 题目解析
    P10954LCIS题目解析题目链接思路前置:弱化版没什么好说的,设\(f_{i,j}\)表示\(a\)的前\(i\)个并且结尾为\(b_j\)的最长上升公共子序列。定义\(a_0=b_0=-\infty.\)转移:\(a_i=b_j,f_{i,j}=\max_{k\in[0,j-1]\text{且}b_k<a_i}f_{i-1,k}.\)否则,\(f_{i,j}=f_{......
  • Win10笔记本桌面横向拉伸的恢复技巧
    Win10笔记本桌面横向拉伸的恢复技巧在使用Windows10操作系统的笔记本电脑时,用户可能会遇到桌面背景图像被横向拉伸的问题。这种现象通常会导致桌面图标和背景图像看起来扭曲或失真,极大地影响视觉体验。为了帮助用户快速恢复正常的桌面显示,本文将详细介绍几种有效的解决方......
  • cpp_9_8.9【(修改函数)计算一个数的p次幂】
    #include<stdio.h>doublepower(doublen,intp);//ANSI函数原型intmain(void){doublex,xpow;intexp;printf("Enteranumberandthepositiveintegerpower");printf("towhich\nthenumberwillberaised.Enterq......
  • cpp_9【用指针在更改主函数中的变量值】
    5.编写并测试一个函数larger_of(),该函数把两个double类型变量的值替换为较大的值。例如,larger_of(x,y)会把x和y中较大的值重新赋给两个变量。#include<stdio.h>voidlarger_of(double*x,double*y){ if(*x>*y){ *y=*x; } elseif(*y>*x){......
  • HTC Vive SDK:虚拟现实UI设计教程_2024-07-26_10-41-57.Tex
    HTCViveSDK:虚拟现实UI设计教程环境设置安装HTCViveSDK在开始虚拟现实UI设计之前,首先需要安装HTCViveSDK。以下是安装步骤:访问HTCVive开发者网站:前往HTCViveDeveloper网站,找到SDK下载页面。下载SDK:选择适合您操作系统的SDK版本进行下载。通常,SDK支持Windows和Li......
  • 使用c语言,用keil5进行stm32F103c8点灯实验
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言学习stm32首先要学会最基础的电灯实验。进行电灯实验需要进行一些前提工作,需要建立启动文件start和标准外设驱动文件library文件和uesr文件这三个工程文件。具体文件可在网站上进行搜素拷贝......
  • CF Round 984 C. Anya and 1100(模拟)
    传送门https://codeforces.com/contest/2036/problem/C解题思路先扫一遍字符串,判断有几个1100子串。然后,对于每一次操作,可以算出对答案的影响,减去更改会减少的子串,再加上更改后会增加的子串。代码#include<bits/stdc++.h>usingnamespacestd;chars[200001];intq......
  • 毕业设计-精品在线试题库系统源码+10000字论文
    项目简介精品在线试题库系统是一个多功能的在线教育平台,旨在提高教学和学习的效率。系统主要服务于三个核心角色:管理员、教师和学生,每个角色都有特定的功能权限。管理员功能:个人中心:管理员的个性化操作界面。专业管理:添加、查询、修改和删除专业信息。学生管理:对学生信息......
  • 高级java每日一道面试题-2024年10月29日-JVM篇-简述分代垃圾回收器是怎么工作的?
    如果有遗漏,评论区告诉我进行补充面试官:简述分代垃圾回收器是怎么工作的?我回答:在Java高级面试中,分代垃圾回收器的工作原理是一个重要的考点。下面将详细解释分代垃圾回收器是如何工作的:分代垃圾回收器的基本概念分代垃圾回收器是一种基于对象生命周期的垃圾回收方......
  • 高级java每日一道面试题-2024年10月28日-RabbitMQ篇-RabbitMQ的使用场景有哪些?
    如果有遗漏,评论区告诉我进行补充面试官:RabbitMQ的使用场景有哪些?我回答:RabbitMQ是一个开源的消息代理和队列服务器,它遵循高级消息队列协议(AMQP)。RabbitMQ的核心作用是作为应用程序之间的中介,实现异步消息传递。它可以帮助解耦系统组件、提供消息的持久化、支持消息......