4.13.第三次实验报告

4.13.第三次实验报告

1.编写程序,把N×N矩阵A加上矩阵A的转置,存放在矩阵B中。

#include<stdio.h>
void main()
{
	//编写程序,把N×N矩阵A加上矩阵A的转置,存放在矩阵B中。
	int a[4][4],b[4][4],i,j;
	printf("输入4×4的矩阵A:\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++)
		{
			b[j][i]=a[i][j]+a[j][i];
		}
	}
	printf("矩阵A加上矩阵A的转置为\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%d ",b[i][j]);
		}
		printf("\n");
	}
}

2.编程求出二维数组A的最小元素,同时求出该最小元素所在的行row和列column。A数组的矩阵表示如下:
a[3][4]={{10,9,2,1},{12,1,11,3},{4,13,21,14}}

#include<stdio.h>
void main()
{
	//编程求出二维数组A的最小元素,同时求出该最小元素所在的行row和列column
	int i,j,min,row,column;
	int a[3][4]={{10,9,2,1},{12,1,11,3},{4,13,21,14}};
	min=a[0][0];
	row=0;column=0;
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			if(a[i][j]<min)
			{
				min=a[i][j];
				row=i;column=j;
			}
		}
	}
	printf("a[%d][%d]为最小值即%d\n",row,column,min);
}

3.用起泡法(或称冒泡法)对15、5、9、2、7、11、8、3、12、1共10个整数由小到大排序。自己修改数据,重新运行结果。

#include<stdio.h>
void main()
{
	//用起泡法(或称冒泡法)对15、5、9、2、7、11、8、3、12、1共10个整数由小到大排序。自己修改数据,重新运行结果
	int n=10,i,j,t;
	int a[10]={15,5,9,2,7,11,8,3,12,1} ;
	for(i=1;i<=n-1;i++)
	{
		for(j=0;j<n-i;j++)
		{
			if (a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
}

4.从键盘输入两个字符串,分别存放在数组a1和a2中,将字符串a2拼接到字符串a1后,并将拼接后的字符串放于数组c中,数组a1和a2中的值保持不变。

#include<stdio.h>
#include<string.h>
void main()
{
	//从键盘输入两个字符串,分别存放在数组a1和a2中,将字符串a2拼接到字符串a1后,并将拼接后的字符串放于数组c中,数组a1和a2中的值保持不变
	char a1[10],a2[10],c[20],t[10];
	printf("输入数组a1:\n");
	gets(a1);
	printf("输入数组a2:\n");
	gets(a2);
	strcpy(t,a1);
	strcpy(c,strcat(a1,a2));
	strcpy(a1,t);
	printf("输出a1,a2,c");
	puts(a1);
	puts(a2);
	puts(c);
}

5.选做题:创建一个4行4列的二维数组,按下图要求存储数据,并输出。

#include<stdio.h>
void main()
{
	//选做题:创建一个4行4列的二维数组,按下图要求存储数据,并输出
	int a[9],s[4][4],i,j,k=0;
	printf("请输入9个整数:");
	for(k=0;k<9;k++)
	{
		scanf("%d",&a[k]);
	}
	printf("-----------输出----------");
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			k=j+i*3;
			s[i][j]=a[k];
		}
	}
	for(k=0;k<3;k++)
		s[k][3]=s[k][0]+s[k][1]+s[k][2];
	for(k=0;k<=3;k++)
		s[3][k]=s[0][k]+s[1][k]+s[2][k];
	printf("\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<4;j++)
		{
			printf("%-2d ",s[i][j]);
		}
		printf("\n");
	}
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值