两道C语言编程题
题目:计算两个5*5矩阵的乘积。要求:两个5*5矩阵的数据由数据文件输入,计算乘积存入另一个文件后再显示出。题目:走迷宫问题要求:迷宫是许多小方格构成的矩形,如图所示,在...
题目:计算两个5*5矩阵的乘积。
要求:两个5*5矩阵的数据由数据文件输入,计算乘积存入另一个文件后再显示出。
题目:走迷宫问题
要求:迷宫是许多小方格构成的矩形,如图所示,在每个小方格中有的是墙(图中的“1”),有的是咱(图中的“0”)。走迷宫就是从一个小方格沿上、下、左、右4个方向到邻近的方格,当然不能穿墙。设迷宫的入口是左上角(1,1),出口是右下角(8,8)。根据给定的迷宫,找出一条从入口到出口的路径。要求在屏幕上画出如图所示的迷宫,然后动态地画出走迷宫的路线。
上文图片 展开
要求:两个5*5矩阵的数据由数据文件输入,计算乘积存入另一个文件后再显示出。
题目:走迷宫问题
要求:迷宫是许多小方格构成的矩形,如图所示,在每个小方格中有的是墙(图中的“1”),有的是咱(图中的“0”)。走迷宫就是从一个小方格沿上、下、左、右4个方向到邻近的方格,当然不能穿墙。设迷宫的入口是左上角(1,1),出口是右下角(8,8)。根据给定的迷宫,找出一条从入口到出口的路径。要求在屏幕上画出如图所示的迷宫,然后动态地画出走迷宫的路线。
上文图片 展开
展开全部
#include <stdio.h>
int main(){
FILE *p1,*p2;
char name1[40],name2[40];
printf("Enter the name of the input file: ");
scanf("%s",name1);
p1=fopen(name1,"r");
if(p1==0){
printf("Cannot open the file.\n");
return 1;
}
printf("Enter the name of the output file: ");
scanf("%s",name2);
p2=fopen(name2,"w");
if(p2==0){
printf("Cannot open the file.\n");
return 2;
}
int i,j,k;
int m1[5][5],m2[5][5],m3[5][5];
for(i=0;i<5;i++)
fscanf(p1,"%d %d %d %d %d",&m1[i][0],&m1[i][1],&m1[i][2],&m1[i][3],&m1[i][4]);
for(i=0;i<5;i++)
fscanf(p1,"%d %d %d %d %d",&m2[i][0],&m2[i][1],&m2[i][2],&m2[i][3],&m2[i][4]);
for(i=0;i<5;i++)
for(j=0;j<5;j++){
int entry=0;
for(k=0;k<5;k++)
entry+=m1[i][k]*m2[k][j];
m3[i][j]=entry;
}
for(i=0;i<5;i++){
for(j=0;j<5;j++)
printf("%5d",m3[i][j]);
printf("\n");
}
for(i=0;i<5;i++)
fprintf(p2,"%d %d %d %d %d\n",m3[i][0],m3[i][1],m3[i][2],m3[i][3],m3[i][4]);
fclose(p1);
fclose(p2);
return 0;
}
把输入排列成如下格式:
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
其中m1是第一个矩阵的元素,m2是第二个。
第二题,什么叫做动态的画出路线?
int main(){
FILE *p1,*p2;
char name1[40],name2[40];
printf("Enter the name of the input file: ");
scanf("%s",name1);
p1=fopen(name1,"r");
if(p1==0){
printf("Cannot open the file.\n");
return 1;
}
printf("Enter the name of the output file: ");
scanf("%s",name2);
p2=fopen(name2,"w");
if(p2==0){
printf("Cannot open the file.\n");
return 2;
}
int i,j,k;
int m1[5][5],m2[5][5],m3[5][5];
for(i=0;i<5;i++)
fscanf(p1,"%d %d %d %d %d",&m1[i][0],&m1[i][1],&m1[i][2],&m1[i][3],&m1[i][4]);
for(i=0;i<5;i++)
fscanf(p1,"%d %d %d %d %d",&m2[i][0],&m2[i][1],&m2[i][2],&m2[i][3],&m2[i][4]);
for(i=0;i<5;i++)
for(j=0;j<5;j++){
int entry=0;
for(k=0;k<5;k++)
entry+=m1[i][k]*m2[k][j];
m3[i][j]=entry;
}
for(i=0;i<5;i++){
for(j=0;j<5;j++)
printf("%5d",m3[i][j]);
printf("\n");
}
for(i=0;i<5;i++)
fprintf(p2,"%d %d %d %d %d\n",m3[i][0],m3[i][1],m3[i][2],m3[i][3],m3[i][4]);
fclose(p1);
fclose(p2);
return 0;
}
把输入排列成如下格式:
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m1 m1 m1 m1 m1
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
m2 m2 m2 m2 m2
其中m1是第一个矩阵的元素,m2是第二个。
第二题,什么叫做动态的画出路线?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询