#include<iostream> #include<cmath> #include<algorithm> #include<string> using namespace std; int a[1000][1000]; int main() { int n1 = 0, n2 = 0,s = 0; int i = 0, j = 0; cin >> n1 >> n2; for (i = 0; i < n1; i++) for (j = 0; j < n2; j++) cin >> a[i][j]; i = 0; j = 0; for (i = 0,j=0; j < n2; j++) s += a[i][j]; i = 0; j = 0; for (i = n1-1,j=0; j < n2; j++) s += a[i][j]; for (j = 0,i=0; i < n1; i++) s += a[i][j]; i = 0; j = 0; for (j = n2-1,i=0; i < n1; i++) s += a[i][j]; cout << s - a[0][0] - a[0][n2-1] - a[n1-1][0] - a[n1-1][n2-1]; return 0; }
时间: 2024-01-06 10:05:06 浏览: 52
这段代码是一个二维数组的题目,给定n1行n2列的二维数组a,需要求出四条边上的元素之和,但不包括角上的元素。最后输出四条边的元素之和减去四个角上的元素之和。
具体实现思路是:先读入二维数组a,然后分别用四个循环分别求出四条边上的元素之和,最后用这四条边的元素之和减去四个角上的元素之和,即可得到最终答案。
其中,使用了两个变量i和j分别作为循环的计数器,用于遍历二维数组a。同时,使用了一个变量s来保存四条边的元素之和。
相关问题
#include <iostream> #include <string> #include <cmath> #include <iomanip> #include <algorithm> #include <conio.h> using namespace std; void test(int *A[]) {for(int a=0;a<2;a++) {cout<<A[a]<<endl; } } int main() {int *a[2]={0}; int b=3; a[1]=&b; test(a); }这段代码为什么不输出0 3
这段代码不会输出0 3,而是会输出一个地址和3。
在函数test中,传入的参数A是一个数组指针,类型为int *A[]。在主函数中定义了一个数组指针a,类型也为int *a[]。在主函数中,a[1]=&b;表示将变量b的地址赋给了数组指针a的第二个元素。因此,当调用test(a)时,test函数中的循环会打印出数组指针中的两个元素,即a[0]和a[1]所指向的地址。
由于在主函数中,a数组指针的第一个元素a[0]没有被初始化,因此它的值为0。而a数组指针的第二个元素a[1]被赋值为变量b的地址,因此它的值为b的地址,而不是3。因此,test函数中打印的结果是一个地址和3,而不是0和3。
#include <iostream> #include <fstream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <climits> #include <string> #include <algorithm> #include <vector> #include <map> using namespace std; struct Value { char str[10000]; }; void structSort(Value *a, int n) { @你的代码 } int n; Value a[5000]; int main() { scanf("%d", &n); for (int i = 0; i<n; i++) { scanf("%s", a[i].str); } structSort(a, n); for (int i = 0; i<n; i++) { printf("%s\n", a[i].str); } return 0; }
这段代码给出了一个结构体数组 `a`,其中每个结构体包含一个字符串成员 `str`。接下来有一个函数 `structSort`,它需要你来实现。你需要使用任何一种排序算法对 `a` 数组进行排序,排序的依据是字符串的字典序(即按照字母顺序进行比较)。最后将排序后的字符串数组依次输出即可。
以下是可能的 `structSort` 实现方式之一,使用了标准库中的 `qsort` 函数:
```c++
int compare(const void *a, const void *b) {
return strcmp(((Value *)a)->str, ((Value *)b)->str);
}
void structSort(Value *a, int n) {
qsort(a, n, sizeof(Value), compare);
}
```
其中,`compare` 函数用于比较两个字符串的大小,将其作为参数传递给 `qsort` 函数进行排序。
阅读全文