A - C語言實驗——求一個3*3矩陣對角線元素之和
#include <stdio.h>
#include <string.h>
#define n 3
int main()
{
int a[5][5], i, j, sum;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &a[i][j]);
}
}
sum = 0;
for(i=0;i<n;i++)
{
sum += a[i][n-i-1];
}
printf("%d\n", sum);
return 0;
}
B - 爬山
#include <stdio.h>
#include <string.h>
int main()
{
int n, m, i, j, a[105][105];
int max, ans, x, y;
while(~scanf("%d %d", &n, &m))
{
max = 0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d", &a[i][j]);
if(a[i][j]>max) max = a[i][j];
}
}
scanf("%d %d", &x, &y);
ans = max - a[x-1][y-1];
printf("%d\n", ans);
}
return 0;
}
C - C語言實驗——矩陣轉置
#include <stdio.h>
#include <string.h>
int main()
{
int n, i, j;
int a[105][105], b[105][105];
scanf("%d", &n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[i][j] = a[j][i];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(j==n-1) printf("%d\n", b[i][j]);
else printf("%d ", b[i][j]);
}
}
return 0;
}
D - 對稱矩陣的判定
#include <stdio.h>
#include <string.h>
int main()
{
int n, i, j;
int a[105][105], flag;
while(~scanf("%d", &n)&&n)
{
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
flag = 1;
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
if(a[i][j]!=a[j][i]) flag = 0;
}
}
if(flag) printf("yes\n");
else printf("no\n");
}
return 0;
}
E - 矩陣的舞蹈
#include <stdio.h>
#include <string.h>
int main()
{
int t, n, m, i, j, k;
int a[105][105], b[105][105];
scanf("%d", &t);
for(k=1;k<=t;k++)
{
scanf("%d %d", &m, &n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
b[i][j] = a[m-j-1][i];
}
}
printf("Case #%d:\n", k);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(j==m-1) printf("%d\n", b[i][j]);
else printf("%d ", b[i][j]);
}
}
}
return 0;
}
F - 楊輝三角
#include <stdio.h>
#include <string.h>
int main()
{
int n, i, j;
int a[35][35];
while(~scanf("%d", &n)&&n)
{
a[0][0] = 1;
for(i=1;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0||i==j) a[i][j] = 1;
else a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j==i) printf("%d\n", a[i][j]);
else printf("%d ", a[i][j]);
}
}
printf("\n");
}
return 0;
}
G - 鞍點計算
#include <stdio.h>
#include <string.h>
int main()
{
int n, m, i, j, k, flag;
int a[15][15];
while(~scanf("%d %d", &m, &n))
{
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
flag = 0;
for(k=0;k<m;k++)
{
if(a[k][j]<a[i][j])
{
flag++;
break;
}
}
for(k=0;k<n;k++)
{
if(a[i][k]>a[i][j])
{
flag++;
break;
}
}
if(flag==0) break;
}
if(j<n) break;
}
if(i<m) printf("Array[%d][%d]=%d\n", i, j, a[i][j]);
else printf("None\n");
}
return 0;
}