C++课后习题训练记录Day121
1.练习项目:
问题描述
给定一个 n×m 的矩阵表示 Excel 表格中的数据,行号从上到下按数字 1,2,3,⋯编号,列号从左到右按大写字母 A,B,C,⋯ 编号。一个单元格用列号和行号相连表示。
例如,第 3 行第 5 列编号为 E3,第 20 行第 3 列编号为 C20。
给定一个 Excel 中的加法公式,公式第一个字符一定为等号,后面只包含单元格的名称和加号,且单元格名称不相邻,加号的两边都是单元格名称。请计算加法的结果。
输入格式
输入的第一行包含两个整数 n,m,用一个空格分隔。
接下来 n 行,每行 m 个整数,表示给定的数据。
接下来一行包含一个 Excel 中的加法公式。
输出格式
输出一行包含一个整数,表示答案。
2.选择课程
在蓝桥云课中选择题库,选择题号17018并开始练习。
3.开始练习
(1)源码 :
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=110,M=30;
ll d[N][M];
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>d[i][j];
}
}
string s;cin>>s;
ll sum=0;
for(int i=0;i<s.size();i++){
if(s[i]!='+'&&s[i]!='=')continue;
int j=i+1;
while(j<s.size()&&s[j]!='+')j++;
string s1=s.substr(i+1,j-i-1);
int l=s1.size(),num=0;
char s2=s1[0];string s3=s1.substr(1,l-1);
for(int k=0;k<s3.size();k++){
num*=10;
num+=s3[k]-'0';
}
sum+=d[num][s2-'A'+1];
i=j-1;
}
cout<<sum<<'\n';
return 0;
}
(2)检验结果
对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。
(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。
更多推荐



所有评论(0)