以本题为例求告知二维数组的使用方法
输入一个二维数组(四行四列),按如下要求编程实现:1) 输出矩阵两个对角线上的数;
2) 分别输出各行和各列的和;
3) 交换第一行和第三行的位置,交换第二列和第四列的位置并输出处理后的数组。
示例输入
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
示例输出
(注意两个数组之间空格隔开)
[, , , ]
#include <stdio.h>
void swap(int * a , int * b)
{
int t ;
t = * a ;
* a = * b ;
* b = t ;
}
main()
{
int d = {0} , i , j , s ;
for(i = 0 ; i < 4 ; i ++) {
fflush(stdin) ;
for(j = 0 ; j < 4 ; j ++) scanf("%d" , & d) ;
}
printf("[%d,%d,%d,%d] " , d , d , d , d);
printf("[%d,%d,%d,%d]\n" , d , d , d , d) ;
for(i = 0 ; i < 4 ; i ++) {
for(s = j = 0 ; j < 4 ; j ++) s += d ;
if(! i) printf("[") ;
else printf(",") ;
printf("%d" , s) ;
}
printf("] ") ;
for(j = 0 ; j < 4 ; j ++) {
for(s = i = 0 ; i < 4 ; i ++) s += d ;
if(! j) printf("[") ;
else printf(",") ;
printf("%d" , s) ;
}
printf("]\n") ;
for(j = 0 ; j < 4 ; j ++) swap(& d , & d) ;
for(i = 0 ; i < 4 ; i ++) swap(& d , & d) ;
printf("[") ;
for(i = 0 ; i < 4 ; i ++) {
if(i) printf(",") ;
printf("[") ;
for(j = 0 ; j < 4 ; j ++) {
if(j) printf(",") ;
printf("%d" , d) ;
}
printf("]") ;
}
printf("]\n") ;
}
编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
[,,,]
D:\0002.Exercise\C> 录入的方法随便搞了一下,具体要怎么录入可以自己改,效果是实现了。
list_1 = [ for i in range(0,4)]
for k in range(0,4):
for i in range(0,4):
list_1 = input("请输入:")
# 测试格式
# list_1 = [['1', '1', '1', '1'], ['2', '2', '2', '2'], ['3', '3', '3', '3'], ['4', '4', '4', '4']]
for k in range(0,4):
for i in range(0,4):
print(list_1,end=" ")
print()
#对角线
ls_list = [[],[]]
for k in range(0,4):
for i in range(0,4):
if k == i: # 判断左对角线
ls_list.append(list_1)
if k + i == 3: # 判断右对角线
ls_list.append(list_1)
for k in ls_list:
print(k,end=" ")
print()
# 各行各列的和
ls_list = [[],[]]
for k in range(0,4):
h_sum_list = [] # 统计行
l_sum_list = [] # 统计列
for i in range(0,4):
h_sum_list.append(int(list_1))
l_sum_list.append(int(list_1))
ls_list.append(sum(h_sum_list))
ls_list.append(sum(l_sum_list))
for k in ls_list:
print(k,end=" ")
print()
# 交互行
for k in range(0,4):
list_1,list_1 = list_1,list_1
list_1, list_1 = list_1, list_1
for k in list_1:
print(k,end=" ")
页:
[1]