c语言中怎样实现多行输入然后再多行输出?

上周,我在编程课上学习了如何处理多行输入和输出。
老师向我们展示了完成这项任务的两种方法。

方法一:先输入数据,然后存入二维数组,最后计算输出结果。
这个优势的逻辑很清楚,但效果可能不太好。
方法二:边输入数据边计算,将计算结果直接存储在一维数组中。
这种方法在处理大量数据时更为有效。
在2 02 3 年我遇到一个问题:输入n个整数行,输出每行的平均数。
这道题显然适合方法2 ,因为我们可以立即计算出每一行的平均值。

参考代码如下:
python def 计算平均值(数字) 平均值 = [] 对于数轴: 总和 = 总和(行) 平均值.append(总计/镜头(线)); 平均回报的用法示例 n = int (input("请输入行数:")); input_numbers = [ list ( map ( int , input ( f "请输入第 {i+1 } 行中的数字,以空格分隔:" ). split())) for i in range(n) ]. 结果=计算平均值(输入数字); 对我来说,平均数量(结果): print(f"该行的平均值为 {i+1 }: {mean:.2 f}")
朋友说如果数据量很大的话,这个方法会节省很多时间。
但具体采用何种方法仍需根据实际情况和课题要求来确定。
由你决定。

3行2列的矩阵怎么表示

说实话,矩阵乘法还是挺有趣的。
在您提到的示例中,取 a(2 行 3 列)和 b(3 行 2 列)。
计算结果确实是2 行2 列。
这里有一点,就是a(3 )的列数必须等于b(3 )的行数,否则不能直接相乘。
我记得当我第一次知道它的时候,我几乎陷入了妄想。
我做了4 行4 列,但是系统出错了。
最后我忘了查车站的尺寸。

C 语言中用于创建二维数组(2 行和 3 列)的语言实际上非常简单。
大家想一想,C中有一个二维数组,比如int a[2 ][3 ]。
初始化的时候可以这样写: c* int a[2 ][3 ] = { 1 、2 、3 ; {4 :5 } };
这行代码创建了一个 2 行 3 列的矩阵。
第一阶是1 ,2 ,3 ,第二阶是4 ,5 ,6 我个人不会在这方面的C语言环境中运行,但理论上应该可以。
编译时可以添加选项-std=c9 9 ,否则较旧的编译器可能会报错。

对于b(3 行2 列),实现类似,如下: c* int b[3 ][2 ] = { 7 、8 ; 9 , 1 0}; {1 1 :1 2 } };
这里创建了一个 3 行 2 列的矩阵。
有趣的是,C语言中的内存数组是连续的,但是当二维数组转换为规则数组时,它们以数组为单位是连续的。
例如,a[0]和a[1 ]在内存中彼此接近,但a[0][0]和a[1 ][0]也彼此接近。
这有时会使初始化或遍历有点复杂,但它仍然很有效。

实现矩阵乘法,我之前用C写过一个,基本上是一个概念; c* int c[2 ][2 ] = {0}; // 结果是一个素数为零的矩阵 for (int i = 0; i < 2 xss=clean xss=clean xss=clean> 我记得这里大概有1 0个注释,但是我建议你检查一下具体的乘法规则。
例如,c[0][0]是a[0][0]b[0][0]+a[0][1 ]b[1 ][0]+a[0][2 ]b[2 ][0]。
这个计算过程需要三个循环。
当时我不明白为什么是三倍,但后来我从一张照片中弄清楚了。
因为每个元素的总和都非常重。

矩阵归根结底就是行的列与对应的行相乘,然后加权求和。
当他们用 C 语言支持它时,他们关注的是访问和内存。
使用指针有时会更快,但编写起来更复杂。