求解两道关于二维数组的c语言编程题

1:求4*4矩阵的主对角线元素积与副对角线元素积的差。
2:以直角三角形形式打印出杨辉三角的前十行。

第1个回答  2011-04-28
分析一下第一题:
主对角线元素下标为(0,0), (1,1), (2,2), (3,3),即(i,i)
副对角线元素下标为(0,3),(1,2),(2,1),(3,0) 即(i,3-i)

code:
int d[4][4];
int mul_primary = 1;
int mul_secondary = 1;

for (int i = 0; i < 4; ++i) {
mul_primary *= d[i][i];
mul_secondary *= d[i][3-i];
}

return mul_primary - mul_secondary;
第2个回答  2011-04-28
//第1题
#include <stdio.h>
void main()
{
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j,t1=1,t2=1;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d",a[i][j]);
printf("\n");
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i==j)t1*=a[i][j];
if(i+j==3)t2*=a[i][j];
}
printf("t1-t2=%d\n",t1-t2);
}
//第2题
#include <stdio.h>
#define N 11
void main()
{int i,j,a[N][N]={0};
for(i=1;i<N;i++)
{a[i][1]=1;
a[i][i]=1;
}
for(i=3;i<N;i++)
for(j=2;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<N;i++)
{for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
}
第3个回答  2011-04-28
第一道:
#include "stdio.h"
#define N 4

int main()
{
int a[N][N];
printf("Input the numbers:");
for (int i = 0;i < N;i++)
{
for (int j = 0;j < N;j++)
{
scanf("%d",&a[i][j]);
}
}
int f1=1,f2=1;
for (int i = 0;i < N;i++)
{
f1 *= a[i][i];
f2 *= a[i][N-i-1];
}
int result=f1-f2;
printf("%d \n",result);
return 0;
}
第二道:
#include<stdio.h>
#define N 10
int main()
{
int a[N][N];
int i,j;
for (i = 0;i < N;i++)
{
for (j = 0;j <= i;j++)
{
if (i==j||j==0)
{
a[i][j]=1;
}
else
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}本回答被提问者采纳
第4个回答  2011-04-29
我给你看看吧
1.
#include<stdio.h>

void QCH(int a[4][4]);
main()
{
int a[4][4],i,j;

printf("input array:\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
scanf("%d",&a[i][j]);
}
}

QCH(a);
return 0;
}
void QCH(int a[4][4])
{
int i,J1=1,J2=1;

for(i=0;i<4;i++)
{
J1=J1*a[i][i];
}
for(i=0;i<4;i++)
{
J2=J2*a[i][3-i];
}
printf("差为%d",J1-J2);
}

2.
#include <stdio.h>

void YHTriangle(int a[][10]);
void PrintYHTriangle(int a[][10]);
main()
{
int a[10][10];
YHTriangle(a);
PrintYHTriangle(a);
return 0;
}

void YHTriangle(int a[][10])
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j)
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}

}
void PrintYHTriangle(int a[][10])
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
}
第5个回答  2011-04-28
帮顶一下!
相似回答
大家正在搜