C语言实验项目8 二维数组

设计性实验

1.求4*4二维数组中主对角线以下(包括主对角线)的元素之和

分析:主对角线以下(包括主对角线)的元素之和 a[i][j] i>=j

#include <stdio.h>
int main()
{
	int i,j,sum=0,a[4][4];
	printf("Input a 4*4 martix:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
	}
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			if(i>=j)
				sum=sum+a[i][j]; 
		}
	}
	printf("sum=%d\n",sum);
	return 0;
}

在这里插入图片描述

2.输入一个3*4的矩阵,计算并输出该矩阵的转置矩阵

分析:①定义一个3×4的二维数组表示原始矩阵a,一个4×3的二维数组 表示转置矩阵b。
②用双重循环语句输入原始二维数组中的数据。
③通过转置矩阵与原始矩阵的关系((b[i][j]=a[j][i])对转置矩阵进行 赋值。
④ 输出得到的转置矩阵。

#include <stdio.h>
int main()
{
	int i,j,a[3][4],b[4][3];
	printf("Input a 3*4 matrix:\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
	}
	printf("The reversed matrix is:\n");
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
			b[j][i]=a[i][j];
			
	}
	for(j=0;j<4;j++)
	{
		for(i=0;i<3;i++)
			printf("%d\t",b[j][i]);
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

提高性实验

1.输入3个学生5门课的成绩,计算并输出每门课的最高分及取得最高分的学生编号

#include<stdio.h>
int main()
{
    int a[3][5],i,j,max=0;
    printf("Input 3*5 scores:\n");
    for(i=0;i<3;i++)
    {
		for(j=0;j<5;j++)
            scanf("%d",&a[i][j]);
	}
    printf("The max scores are:\n");        
    for(j=0;j<5;j++)   
    {   
        for(i=0;i<3;i++)
        {    
            if(a[i][j]>max)
            	max=a[i][j];            
        }
        printf("course %d: stu %d get the max score %d\n",j,j,max);
        max=0;  
    }          
    return 0;
}

在这里插入图片描述

2.任意输入两个4*4的矩阵A和B,计算并输出A与B的乘积矩阵

分析:cij=ai0b0j+ai1bij+ai2b2j+ai3b3j

#include<stdio.h>
int main()
{
	int a[4][4],b[4][4],c[4][4],i,j,k,sum;
	printf("Input first 4*4 matrix:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
	}//for 输入矩阵A 
	printf("Input second 4*4 matrix:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
			scanf("%d",&b[i][j]);
	 }//for 输入矩阵B 
	for(i=0;i<4;i++)
	{
	 	for(j=0;j<4;j++)
	 	{
	 		sum=0;
	 		for(k=0;k<4;k++)
	 		{
			 sum=sum+a[i][k]*b[k][j];
			 c[i][j]=sum;	
			}
	 	} 
	}
	printf("The multiple matrix is:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
			printf("%d\t",c[i][j]);
		printf("\n"); 
	}
	return 0;
}

在这里插入图片描述

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值