用C++编写:输入2个整数N和M,输出N行M列的的01数字矩阵。第1行第1个数是’1’,后面的数都和其左边或上面数相反(0和1称为相反)。例如:N=4,M=5时: 10101 01010 10101 01010
时间: 2023-03-26 16:00:18 浏览: 46
好的,我可以回答这个问题。以下是用C编写的代码:
#include <stdio.h>
int main() {
int n, m;
scanf("%d %d", &n, &m);
int matrix[n][m];
for (int i = ; i < n; i++) {
for (int j = ; j < m; j++) {
if (i == && j == ) {
matrix[i][j] = 1;
} else if (i == ) {
matrix[i][j] = 1 - matrix[i][j-1];
} else if (j == ) {
matrix[i][j] = 1 - matrix[i-1][j];
} else {
matrix[i][j] = 1 - matrix[i][j-1];
}
printf("%d", matrix[i][j]);
}
printf("\n");
}
return ;
}
希望能对您有所帮助。
相关问题
请用C++编写以下程序:题目描述 输入2个整数N和M,输出N行M列的的01数字矩阵。第1行第1个数是’1’,后面的数都和其左边或上面数相反(0和1称为相反)。例如:N=4,M=5时: 10101 01010 10101 01010 输入格式 第一行2
个整数N和M,表示矩阵的行数和列数。 输出格式 输出N行M列的01数字矩阵,每行M个整数,用空格隔开。 输入样例 4 5 输出样例 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 解题思路 我们可以使用数组来存储数字矩阵,根据题目要求进行填充,最后输出即可。 我们可以定义二维数组 matrix[N][M],然后使用双重循环进行填充。对于第一行和第一列来说,每一个位置都是 1,所以可以直接填充。对于其它行列,可以根据其上一行和左一列的值进行填充。if(matrix[i-1][j]==1) matrix[i][j]=0;else matrix[i][j]=1; 然后输出数组即可。 下面是完整的 C 代码:
用c++的数组编程:输入一个正整数 n 和 m,(0<n<7, 0< m<7)表示为 n 行 m 列的矩阵,统计出矩阵中大于所有元素平均值的元素之和以 及元素个数,请编写相应程序。
好的,这个问题可以回答。下面是对应的C语言代码:
```
#include <stdio.h>
int main() {
int n, m, sum = 0, count = 0;
double avg = 0;
printf("请输入矩阵的行数n和列数m(0 < n, m < 7):");
scanf("%d %d", &n, &m);
int matrix[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("请输入第%d行第%d列的数字:", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
sum += matrix[i][j];
}
}
avg = (double) sum / (n * m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] > avg) {
count++;
sum += matrix[i][j];
}
}
}
printf("大于平均值的元素和为:%d,元素个数为:%d\n", sum, count);
return 0;
}
```
希望这个代码可以解决您的问题,如果还有其他问题,可以继续问我。