0
点赞
收藏
分享

微信扫一扫

小甲鱼 c语言 20课 二维数组

witmy 2022-05-01 阅读 94
c语言
//动动手1  将四行五列的二维数组打印出来编程五行四列
 
#include <stdio.h>

int main(void){
	int a[4][5]={
		{1,2,3,4,5},
		{6,7,8,9,10},
		{11,12,13,14,15},
		{16,17,18,19,20}};
	int i,j;
	
	for(i=0;i<4;i++){
		for(j=0;j<5;j++){
			printf("%2d ",a[i][j]);
			if(i+j==3){
				printf("\n");
			}
		}
	}
	
	return 0;
}
//使用二维数组打印slogan 

#include <stdio.h>

int main(void){
	char s[5][100];
	int i;
	
	for(i=0;i<5;i++){
		printf("请输入第%d句话:",i+1);
		gets(s[i]);
	}
	printf("你输入了下面5句话:\n");
	for(i=0;i<5;i++){
		printf("%s\n",s[i]);
	}
	
	return 0;
} 
//实现矩阵相乘算法

#include <stdio.h>

#define m 2
#define n 2
#define p 3

int main(void){
	int a[m][p]={{1,2,3},{4,5,6}};
	int b[p][n]={{1,4},{2,5},{3,6}};
	int c[m][n];
	int i,j,k;
	
	//初始化C
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			c[i][j]=0;
		}
	}
	//赋值C 
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			for(k=0;k<p;k++){
				c[i][j]+=a[i][k]*b[k][j];
			}
		}
	}
	int row=m>p?m:p;
	//开始打印	
	for(i=0;i<row;i++){
		//打印A		在i<m的情况下才打印 | 
		if(i<m){
			printf("| ");
			for(j=0;j<p;j++){
				printf("%d ",a[i][j]);
			}
			printf("|");
		}
		else{
			for(j=0;j<2*(p+1)+1;j++){	//打印一个数字和空格为一个p,因为一开始打印了一个|+空格,所以在i>=M的时候,需要打印p+1个空格 
				putchar(' ');
			}
		}
		//打印 * 号 
		if(i==row/2){
			printf(" * ");
		} 
		else{
			printf("   ");
		}
		//打印B
		if(i<p){
			printf("| ");
			for(j=0;j<n;j++){
				printf("%d ",b[i][j]);
			}
			printf("|");
		} 
		else{
			for(j=0;j<2*(n+1)+1;j++){
				printf(" ");
			}
		}
		//打印 = 号
		if(i==row/2){
			printf(" = ");
		} 
		else{
			printf("   ");
		}
		//打印C
		if(i<m){
			printf("| ");
			for(j=0;j<n;j++){
				printf("%d ",c[i][j]);
			}
			printf("|");
		}
		else{
			for(j=0;j<2*(n+1)+1;j++){	//一开始这里写成了i++,导致一直循环,注意细节
				printf(" ");
			}
		}
		printf("\n"); 
	} 

	return 0;
}
举报

相关推荐

0 条评论