二维数组问题 没思路呀
9、编程题:编写函数fun,将二维数组下半三角元素值(不含对角线)加4,上半三角(不含对角线)元素值*2。sample9.c#define N 4
void fun(int a[])
{
}
void main()
{
int a[]={{-2,0,-1,3},{3,-2,0,-1},{0,-1,2,5},{5,0,0,-2}};
int i,j;
fun(a);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a);
printf("\n");
}
}
本帖最后由 basketmn 于 2022-1-24 16:23 编辑
#include<stdio.h>
#define N 4
void fun(int a[])
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3-i;j++)a*=2;
for(i=1;i<4;i++)
for(j=4-i;j<4;j++)a+=4;
}
int main()
{
int a[]={{-2,0,-1,3},{3,-2,0,-1},{0,-1,2,5},{5,0,0,-2}};
int i,j;
fun(a);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%d ",a);
printf("\n");
}
}
好长时间不研究对角线了,把主对角线搞错了,搞成从右至左了!!!
代码仅供参考 #include <stdio.h>
#define N 4
void fun(int arr[]){
for(int i = 0; i < N; i++)
for(int j = i + 1; j < N; j++)
arr *= 2;
for(int i = N-1; i >= 0; i--)
for(int j = 0; j < i; j++)
arr += 4;
}
int main()
{
int arr[] = {
{-2, 0,-1, 3},
{ 3,-2, 0,-1},
{ 0,-1, 2, 5},
{ 5, 0, 0,-2}
};
fun(arr);
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++) printf("%2d ", arr);
printf("\n");
}
return 0;
}-20 -26
7 -20 -2
432 10
944 -2 basketmn 发表于 2022-1-24 16:03
好长时间不研究对角线了,把主对角线搞错了,搞成从右至左了!!!
代码仅供参考
好的~谢谢 傻眼貓咪 发表于 2022-1-24 16:15
好的~谢谢
页:
[1]