#include<iostream> #include<bits/stdc++.h> using namespace std; const int N= 1e3+3; int n, m, q; long long a[N][N], b[N][N]; void insert(int x1,int y1,int x2,int y2,int c){ b[x1][y1]+= c; b[x2+1][y1]-= c; b[x1][y2+1]-= c; b[x2+1][y2+1]+= c; } int main(){ cin>>n>>m>>q; for(int i= 1; i<= n; i++) for(int j= 1; j<= m; j++){ cin>>a[i][j]; insert(i, j, i, j , a[i][j]); } while(q--){ int x1, y1, x2, y2, c; cin>>x1>>y1>>x2>>y2>>c; insert(x1, y1, x2, y2, c); } for(int i=1;i<=n;i++){ for(int j= 1;j<= m; j++){ b[i][j]+=b[i-1][j]+b[i][j-1]-b[i-1][j-1]; cout<<b[i][j]<<" "; } puts(""); } return 0; }
insert 函数:
puts("");
是一条用于输出空字符串的语句
puts
函数:puts
是 C 标准库中的一个函数,用于向标准输出设备(通常是终端屏幕)输出一个字符串,并在字符串末尾自动添加换行符(\n
)。
空字符串:双引号 ""
包围的部分即为空字符串。空字符串没有可见字符,只包含一个空字符(\0
)作为终止符。尽管它看起来似乎没有任何作用,但在某些场景下仍然有意义,如占位、满足语法要求或与外部接口对接时保持一致等。
puts("");
这一行代码的作用就是向标准输出设备输出一个空字符串,并在其后添加一个换行符。实际效果就是在屏幕上显示一个空行。
虽然从表面上看,输出一个空字符串似乎没有实际意义,但在某些特定情况下可能有用,例如:
- 为了保持代码结构的一致性,或者在调试时方便注释和取消注释某段代码,可能会保留一个空的
puts
调用。 - 在某些循环或条件结构中,根据特定条件决定是否输出内容时,可能会先写出一个空的
puts
,然后在合适的地方替换为实际的字符串。 - 当需要频繁与某个期望接收空字符串作为输入的外部接口交互时,使用
puts("")
可能更为直观和便捷。
然而,在大多数实际编程场景中,如果单纯是为了输出一个空行,通常会选择使用更直接的 std::endl
(在 C++ 中)或 \n
(在 C 或 C++ 中)与输出流操作符结合,
std::cout << std::endl; // C++
std::cout << '\n'; // C 或 C++
printf("\n"); // C
这些写法更为简洁,且不会引入不必要的函数调用开销。