首页 > 其他分享 >CCF第三十一次计算机软件能力认证202309-1坐标变换(其一)

CCF第三十一次计算机软件能力认证202309-1坐标变换(其一)

时间:2023-09-25 22:11:48浏览次数:35  
标签:202309 ops int sum column 第三十一次 coords CCF row

第一题第二题一般比较简单,需要对编程达到熟悉的要求即可,不要求了解过多的数据结构和算法

使用C提交一直编译错误,相同的代码使用C++提交却能通过,真是醉了

坐标变化(其一)题目描述

  • 1.需要创建一个操作符矩阵,行和列分别是n和2
  • 2.需要创建一个操作数矩阵,行和列分别是m和2
  • 3.求出操作符矩阵所有行的和,得到一个数组,包含两个元素
  • 4.输出数组+操作数矩阵的每一行

C语言代码

#include <stdio.h>
#include <stdlib.h>

int** create_matrix(const int row, const int column);
int* ops_sum(int** ops, int row, const int column);
void print_new_coords(int** coords, int* op_sum, int row, const int column);

int main(int argc, char* argv[]) {
	int m, n;
	const int column = 2;
	scanf("%d %d", &n, &m);
	int** ops = create_matrix(n, column);
	int** coords = create_matrix(m, column);
	int* op_sum = ops_sum(ops, n, column);
	print_new_coords(coords, op_sum, m, column);

	// free memory
	for (int i = 0; i < n; i++) {
		free(ops[i]);
	}
	free(ops);

	for (int i = 0; i < m; i++) {
		free(coords[i]);
	}
	free(coords);

	free(op_sum);

	return 0;
}
int** create_matrix(const int row, const int column) {
	// 创建一个二维数组,使用二级指针表示
	int** p = (int**)malloc(sizeof(int*) * row);
	for (int i = 0; i < row; i++) {
		p[i] = (int*)malloc(sizeof(int) * column);
		for (int j = 0; j < column; j++) {
			scanf("%d", &(p[i][j]));
		}
	}
	return p;
}
int* ops_sum(int** ops, int row, const int column) {
	// 求出二维数组所有行的和,结果是一个一维数组,使用一级指针表示
	int* ret = (int*)malloc(sizeof(int)*column);
	for (int i = 0; i < column; i++) {
		ret[i] = 0;
	}
	for (int j = 0; j < column; j++) {
		for (int i = 0; i < row; i++) {
			ret[j] += ops[i][j];
		}
	}
	return ret;
}
void print_new_coords(int** coords, int* op_sum, int row, const int column) {
	// op_sum这个一维数组作用于二维数组的每一行,打印结果
	for (int i = 0; i < row; i++) {
		for (int j = 0; j < column; j++) {
			printf("%d ", coords[i][j] + op_sum[j]);
		}
		printf("\n");
	}
}

提交结果

标签:202309,ops,int,sum,column,第三十一次,coords,CCF,row
From: https://www.cnblogs.com/gjsun/p/17728978.html

相关文章

  • 20230925打卡
    今天我参加了传统工程实训,并学习了Java中的类与对象。在传统工程实训中,我们通过实践来加强实际操作能力和问题解决能力。另外,我还学习了Java中的类与对象,这是构建Java应用程序的基础。通过学习类与对象的概念、属性和方法等基本知识,我能够了解如何在Java中创建和使用类与对象,并运......
  • 每日总结20230925
    代码时间(包括上课)5h代码量(行):400行博客数量(篇):1篇相关事项:1、今天上午进行的是相关大数据的测试,老师具体讲了讲相关题目的注意事项。2、今天上午没有完成该题目的编程,只能下午继续努力了。3、晚上问了问编程大佬,对具体的代码的使用有了新的认识,对该题目也就编的差不多了,剩下的......
  • 20230925 模拟赛总结
    模拟赛连接排名:\(\text{rank1}\)分数:\(100+100+100+100=400\)集训期间第二次AK!T1:灭火/fire题目描述:求出\(n\)个数\(a_1,a_2,\dots,a_n\)的和除以\(m\)向上取整的结果。(\(0<a_i,m<2^{63},0<n\le20\))思路:直接求和,然后向上取整即可,注意要用高精度,我用的是__int128......
  • 20230924
    23/09/24NOIP模拟赛总结时间安排8:00-8:20看题8:20-8:40思考T1,感觉是最短路,但不知道最长距离怎么处理8:40-9:10感觉T2是组合数,但是有个细节不会处理,先把暴力打了9:10-9:40写T3暴力,感觉今天的题好难啊。9:40-10:30回到T1,发现这就是\(n\)遍\(dijkstra\),写完正解又写......
  • 20230924
    //deposit,difficulty,intention,marine,materialize,oblige,party,pilferage,profit,quotation,steamship,gooverdeposit-存款Adepositreferstoasumofmoneythatisplacedintoabankaccountorheldbyaninstitutionforsafekeeping.Itcanal......
  • 20230924天七集训测试总结
    这场考试败在策略,节奏被T1完全打乱了,导致T3甚至把题读错了(竟然有分)。按理来说是应该先把题看完的,但可能是前几次考试比较能平推的原因,这次没有先看所有题。暴力拿稳其实有很多分的。吸取一个教训吧。感觉这一整套题的思维难度都并没有那么深,但带有迷惑性且细节巨多。T1卡空......
  • 20230924学习总结
    1、DataGrip连接hive数据库DataGrip是JetBrains旗下的一款数据库管理软件,通过它能更方便的操作虚拟机中的hive数据库 依次点击+ ->数据源->ApacheHive进入配置链接界面 主机处填虚拟地址,用户密码填虚拟机账号密码(配置无误情况下仍可能连接失败,等候几分钟重试即可)2......
  • #20230924
    20230924NOIP#14总结时间安排8:10~8:35看题,\(B,D\)看完没一点想法先放放。8:35~9:20写\(A\)的前两档和\(C\)的第一档。9:20~9:40瞪出来了\(A\)的正解写了。(但是因为没判\(-1\)导致\(100\Rightarrow30\)9:40~10:00写\(B\)的第一档。10:00~11:55觉得\(B,......
  • 20230921
    23/09/21NOIP模拟赛总结时间安排7:50-8:10看了T1,70是裸的质因数分解,花10分钟写代码。8:10-8:30想了会T1正解,不会,去看T2。8:30-9:00T2暴力不会(感觉自己最优解问题的暴力一直不太行),跳到T4。9:00-9:30先打了T4最低档暴力,没想到第二档是背包计数,去看T3。T3第二档和第三档......
  • 20230922
    20230922NOIP#13(33daiOJ)总结时间安排7:40~8:00看\(A,B,C,D\),\(A\)和\(C\)一点不会。8:00~8:10写\(D\)的\(10\)分。8:10~9:00\(B\)一边写一边想,写了50。9:00~10:10别的想不到了,但是秉持不能不写的原则乱搞各个题。10:10~11:30\(B\)对路径的处理有了新的想法......