例1 寻找最大数
#include <stdio.h>
main()
{
int i,max,a[]={4,8,1,3,6,9,10,2};
max=a[0];
for(i=1;i<8;i++)
{
if ( a[i]>max)
max=a[i];
}
printf("max=%d ",max);
}
例2 寻找最大数和最大数的位置
#include <stdio.h>
main()
{
int i,p,max,a[]={4,8,1,3,6,9,10,2};
max=a[0];
p=0;
for(i=1;i<8;i++)
{
if ( a[i]>max)
{
max=a[i];
p=i;
}
}
printf("max=%d p=%d ",max,p+1);
}
例3 排队问题一
#include <stdio.h>
main()
{
int i,j,p,max,a[]={4,8,1,3,6,9,10,2};
j=0;
aa: max=a[j];
p=j;
for(i=j+1;i<8;i++)
{
if ( a[i]>max)
{
max=a[i];
p=i;
}
}
a[p]=a[j];
a[j]=max;
j++;
printf("max=%d p=%d ",a[j],a[p]);
if(j<7)
goto aa;
for(i=0;i<8;i++)
printf("a[%d]=%d ",i,a[i]);
}
例4 排队问题二
#include <stdio.h>
main()
{
int i,j,p,max,a[]={4,8,1,3,6,9,10,2};
for (j=0;j<7;j++)
{ max=a[j];
p=j;
for(i=j+1;i<8;i++)
{
if ( a[i]>max)
{
max=a[i];
p=i;
}
}
a[p]=a[j];
a[j]=max;
printf("max=%d p=%d ",a[j],a[p]);
}
for(i=0;i<8;i++)
printf("a[%d]=%d ",i,a[i]);
}
例5 排序问题(沉底法)
#include <stdio.h>
main()
{
int i,j,p,a[]={2,6,3,5,7,8,1};
for(i=0;i<7;i++ )
printf("%d ",a[i]);
printf(" " );
for(j=0;j<6;j++)
for(i=0;i<7-j;i++ )
if(a[i]>a[i+1])
{
p=a[i];
a[i]=a[i+1];
a[i+1]=p;
}
for(i=0;i<7;i++ )
printf("%d ",a[i]);
printf(" " );
}
例2-1 寻找最大数
#include <stdio.h>
main()
{
int i,j,p,max,a[3][3]={4,8,1,3,26,9,10,2,15};
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d ",a[i][j]);
printf(" ");
}
max=a[0][0];
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if ( a[i][j]>max)
max=a[i][j];
printf(" %d ",max);
}
例2-2 寻找最大数和最大数的位置
#include <stdio.h>
main()
{
int i,j,pi,pj,max,a[3][3]={4,38,1,3,26,9,10,2,15};
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d ",a[i][j]);
printf(" ");
}
max=a[0][0];
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if ( a[i][j]>max)
{
max=a[i][j];
pi=i;
pj=j;
}
printf(" %d %d %d ",max,pi+1,pj+1);
}
例3-1 矩阵乘法一(求第i行第j列元素)
#include <stdio.h>
main()
{
int i,j,k,a[3][3]={4,38,1,3,26,9,10,2,15},b[3][4]={1,3,4,7,9,1,4,2,11,6,8,3},c[3][4];
for (i=0;i<3;i++) /*打印矩阵a*/
{
for(j=0;j<3;j++)
printf("%2d ",a[i][j]);
printf(" ");
}
printf(" ");
for (i=0;i<3;i++) /*打印矩阵b*/
{
for(j=0;j<4;j++)
printf("%2d ",b[i][j]);
printf(" ");
}
/*求矩阵c[i][j]*/
i=1;
j=2;
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
printf("%d %d ",a[i][k],b[k][j]);
}
printf("%d %d %d ",i,j,c[i][j]);
}
例3-2 矩阵乘法二(求第i行元素)
#include <stdio.h>
main()
{
int i,j,k,a[3][3]={4,38,1,3,26,9,10,2,15},b[3][4]={1,3,4,7,9,1,4,2,11,6,8,3},c[3][4];
for (i=0;i<3;i++) /*打印矩阵a*/
{
for(j=0;j<3;j++)
printf("%2d ",a[i][j]);
printf(" ");
}
printf(" ");
for (i=0;i<3;i++) /*打印矩阵b*/
{
for(j=0;j<4;j++)
printf("%2d ",b[i][j]);
printf(" ");
}
/*求矩阵c[i][j]*/
i=1;
for (j=0;j<4;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
printf("%d %d ",a[i][k],b[k][j]);
}
printf("%d %d %d ",i,j,c[i][j]);
}
}
例3-3 矩阵乘法三(求所有元素)
#include <stdio.h>
main()
{
int i,j,k,a[3][3]={4,38,1,3,26,9,10,2,15},b[3][4]={1,3,4,7,9,1,4,2,11,6,8,3},c[3][4];
for (i=0;i<3;i++) /*打印矩阵a*/
{
for(j=0;j<3;j++)
printf("%2d ",a[i][j]);
printf(" ");
}
printf(" ");
for (i=0;i<3;i++) /*打印矩阵b*/
{
for(j=0;j<4;j++)
printf("%2d ",b[i][j]);
printf(" ");
}
/*求矩阵c[i][j]*/
for(i=0;i<3;i++)
for (j=0;j<4;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
printf("%d %d ",a[i][k],b[k][j]);
}
printf("%d %d %d ",i,j,c[i][j]);
}
for (i=0;i<3;i++) /*打印矩阵c*/
{
for(j=0;j<3;j++)
printf("%3d ",c[i][j]);
printf(" ");
}
}