求大神解两个c语言题!谢谢
输入两个三阶方阵,计算两个方阵之积,以数学表示方式输出。编程输出1000个数组元素的前十个最大的数。(测试用20个数组元素)。求大神给出代码谢谢!...
输入两个三阶方阵,计算两个方阵之积,以数学表示方式输出。
编程输出1000个数组元素的前十个最大的数。(测试用20个数组元素)。
求大神给出代码谢谢! 展开
编程输出1000个数组元素的前十个最大的数。(测试用20个数组元素)。
求大神给出代码谢谢! 展开
展开全部
一、输入两个三阶方阵,并以数学的形式输出
#include<stdio.h>
#define N 3
void main()
{
int i,j;
int A[N][N],B[N][N],C[N][N];
void indeterminant(int a[N][N],int);
void outresult(int a[N][N],int b[N][N],int c[N][N],int);
indeterminant(A,N);
indeterminant(B,N);
outresult(A,B,C,N);
}
void indeterminant(int a[],int count)
{
int i,j;
printf("Input a deteminant %d :\n",count);
for(i=0;i<count;i++)
for(j=0;j<count;j++)
scanf("%d",&a[i][j]);
}
void outresult(int a[N][N],int b[N][N],int c[N][N],int count)
{
int i,j,k;
int m,n;
for(i=0;i<count;i++)
for(j=0;j<count;j++)
{
c[i][j]=0;
for(m=0;m<N;m++)
{
c[i][j]+=a[i][m]*b[m][j]
}
}
printf("\n----------------------------\n");
for(i=0;i<N;i++)
{
printf("| ");
for(j=0;j<N;j++)
printf("%6d",c[i][j]);
printf(" |\n");
}
}
二、输出1000个数组元素的前10个最大数
注:测试时,将下面预定义的#define N 1000 改为:#define N 20即可。
#include<stdio.h>
#define N 20
void main()
{
int i,j,k;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
printf("\n------------------\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
#include<stdio.h>
#define N 3
void main()
{
int i,j;
int A[N][N],B[N][N],C[N][N];
void indeterminant(int a[N][N],int);
void outresult(int a[N][N],int b[N][N],int c[N][N],int);
indeterminant(A,N);
indeterminant(B,N);
outresult(A,B,C,N);
}
void indeterminant(int a[],int count)
{
int i,j;
printf("Input a deteminant %d :\n",count);
for(i=0;i<count;i++)
for(j=0;j<count;j++)
scanf("%d",&a[i][j]);
}
void outresult(int a[N][N],int b[N][N],int c[N][N],int count)
{
int i,j,k;
int m,n;
for(i=0;i<count;i++)
for(j=0;j<count;j++)
{
c[i][j]=0;
for(m=0;m<N;m++)
{
c[i][j]+=a[i][m]*b[m][j]
}
}
printf("\n----------------------------\n");
for(i=0;i<N;i++)
{
printf("| ");
for(j=0;j<N;j++)
printf("%6d",c[i][j]);
printf(" |\n");
}
}
二、输出1000个数组元素的前10个最大数
注:测试时,将下面预定义的#define N 1000 改为:#define N 20即可。
#include<stdio.h>
#define N 20
void main()
{
int i,j,k;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
printf("\n------------------\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
更多追问追答
追答
哈,怪我了,因为赶时间,编写完成后没有及时将开始想的与完成后的对照一下。
前两个警告,是因为在主函数里面定义了两个没有用到的变量:
int i,j;
只要去掉就行了。
后两个,我看了一下,很可能是函数outresult(int a[N][N],int b[N][N],int c[N][N],int count)
中语句 c[i][j]+=a[i][m]*b[m][j]
后面漏了一个分号“;”请加上后试一试。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询