XTU 1146 矩阵乘法

本文详细介绍了一种使用C语言实现二维数组矩阵乘法的方法。通过定义两个矩阵a和b,文章展示了如何输入这两个矩阵的数据,并通过三层循环计算出矩阵相乘的结果矩阵c。最后,文章还提供了打印结果矩阵的代码。

#include<stdio.h>

/*
*
* 二维数组形式,例如a[3][2] 
* a[0][0] a[0][1] 
* a[1][0] a[1][1]
* a[2][0] a[2][1]
*
*
*/
int main()
{
    int s;
    int a[100][100],b[100][100];
    int n,k1,k2,m;
    int i,j;
    scanf("%d",&s);
    while(s--)
    {
        int c[100][100] = {0};//初始化数组C[][]每一项都为0; 
        scanf("%d%d",&n,&k1);
        for(i=0;i<n;i++)
        {
            for(j=0;j<k1;j++)
            {
                scanf("%d",&a[i][j]);//输入a[][]; 
            }
        }
        
        scanf("%d%d",&k2,&m);
        for(i=0;i<k2;i++)
        {
            for(j=0;j<m;j++)
            {
                scanf("%d",&b[i][j]);//输入b[][]; 
            }
        }
      
         for(i=0;i<n;i++)
         {
             for(j=0;j<m;j++)
             {
                 for(int g=0;g<k2;g++)
                 {
                     c[i][j]+=a[i][g]*b[g][j]; //三层循环,输入c[][]; 
                 }
             }
         }
         
        for(i=0;i<n;i++)
        {
          for(j=0;j<m;j++)
          {
            printf("%d",c[i][j]);
            if(j<m-1)  //判断c[i][j]是否要空格 
            {
              printf(" ");    
            } 
          }
          printf("\n"); 
        }    
    }
}

### XTU Online Judge 字符矩阵题目解析 #### 题目描述 对于字符矩阵类问题,XTU Online Judge 平台上有两个典型例子。第一个是关于ASCII码的输出格式化[^1]: - 输出行号采用十六进制表示,宽度固定为五位,不足部分用零填充。 - 行号之后跟一个空格。 - 接下来每行最多显示32个字符对应的ASCII码值,同样以两位宽的大写字母形式呈现。 另一个案例涉及RGB颜色模式下的字符串处理[^2]: - 输入一段由'R', 'G' 和'B'组成的序列。 - 计算特定区间内不同字母的数量变化情况。 这两个实例展示了如何通过不同的逻辑来操作和展示字符数据。 #### 解决方案示例:ASCII 码转换与格式化输出 针对ASCII编码的任务需求,下面给出Python实现方法: ```python def format_ascii_output(text): lines = [] line_number = 0 while text: chunk = text[:32] hex_values = " ".join(f"{ord(c):02X}" for c in chunk) formatted_line_num = f"{line_number:05X}" combined_line = f"{formatted_line_num} {hex_values.rstrip()}" lines.append(combined_line) text = text[32:] line_number += 1 result = "\n".join(lines).rstrip() return result sample_text = "This is a sample string to demonstrate ASCII formatting." print(format_ascii_output(sample_text)) ``` 此函数接收任意长度的文字串作为参数,并按照指定规则将其转化为多行带有编号及相应ASCII码表征的结果集。 #### 解决方案示例:RGB 出现频率计算 对于RGB类型的挑战,则可以利用字典记录各阶段内的字符频次分布状况: ```python from collections import Counter def rgb_frequency(s): r_end = s.find('G') g_start, g_end = r_end, s.find('B', r_end) b_start = g_end counters = [ ('R1 R2', (s[:r_end], s[r_end:g_start])), ('G1 G2', (s[g_start:g_end], s[g_end:b_start])), ('B1 B2', (s[b_start:], "")) ] results = {} for label, parts in counters: part_counts = tuple(Counter(part)['R'] for part in parts), \ tuple(Counter(part)['G'] for part in parts), \ tuple(Counter(part)['B'] for part in parts) flat_results = sum([list(x) for x in zip(*part_counts)], []) results[label.replace(" ", "")] = list(map(str,flat_results)) output_string = ",".join(["=".join(item) for item in results.items()]) print(output_string) rgb_sequence = "RRGBBBGGGR" rgb_frequency(rgb_sequence) ``` 上述代码片段实现了对给定RGB序列中各个分段内字符数量的具体统计工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值