.HE4215 分数矩阵和
>#include
int main() {
long n,i,t,c; double sum;
printf(\ scanf(\
printf(\ while(n!=0) {
for(sum=0,c=0,i=1;i<=n-1;i++,c++) sum+=1.0/(n-c)*(c+1); sum=sum*2+n;
printf(\ printf(\ scanf(\ }
return 0; }
2.WB4204 按要求对二维数组进行排序
写一个C程序,将一个5×5的整形矩阵中最大的元素放在中心,4
个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放)。 #include
void T(int mat[][5], int n); int mat[5][5]; int i, j; printf(\ for (i = 0;i < 5;i++)
for (j = 0;j < 5;j++)
scanf(\ T(mat, 5); printf(\ for (i = 0;i < 5;i++) {
for (j = 0;j < 5;j++)
printf(\ printf(\ }
return 0; }
/* 矩阵处理函数 */
void T(int mat[][5], int n) { int i, j, temp;
int *a, *b, *c, *d, *max;
/* 设置4个最小元素以及最大元素指针的初始值 */ a = &mat[0][0]; b = &mat[0][0]; c = &mat[0][0]; d = &mat[0][0]; max = &mat[0][0];
for (i = 0;i < 5;i++) {
for (j = 0;j < 5;j++) {
if (mat[i][j] < *a) {
d = c; c = b; b = a; a = &mat[i][j];
} else if (mat[i][j] < *b) { d = c; c = b; b = &mat[i][j];
} else if (mat[i][j] < *c) { d = c;
c = &mat[i][j];
} else if (mat[i][j] < *d) { d = &mat[i][j]; }
if (mat[i][j] > *max) max = &mat[i][j]; } }
/* 依次替换4个最小元素以及最大的元素 */
temp = mat[0][0]; mat[0][0] = *a; *a = temp; temp = mat[0][4]; mat[0][4] = *b; *b = temp; temp = mat[4][0]; mat[4][0] = *c; *c = temp; temp = mat[4][4]; mat[4][4] = *d; *d = temp;
temp = mat[2][2]; mat[2][2] = *max; *max = temp; }
3.LY4301 [1226]输出杨辉三角形的前n行
题目描述
输出杨辉三角形的前n行。>输入格式
第一行有一个正整数n,保证n不超过20。输出
共有n行,从第1行至第n行,每行输出与行数相等个数的整数,整数后输出一个空格。
请注意行尾输出换行。
#include
int main() {
int dat[20][20];
int n, i, j; printf(\ scanf(\ printf(\ for (i = 0;i < n;i++) {
dat[i][0] = dat[i][i] = 1;
for (j = 0;j + 1 < i;j++)
dat[i][j + 1] = dat[i - 1][j] + dat[i - 1][j + 1];
}
for (i = 0;i < n;i++) {
for (j = 0;j <= i;j++)
printf(\
puts(\
}
return 0; }
4.T4205 ;[2110]矩阵对角求和
题目描述求一个n×n矩阵对角线元素之和,其中
#include
int i,j,n;
int a[100][100]; int Zsum=0,Fsum=0;
printf(\scanf(\
if(n<1 || n>=100) {
printf(\return 0; }
printf(\
for(i=0;i for(j=0;j scanf(\a[i][j]); } } for(i=0;i for(j=0;j if(i==j) { Zsum = Zsum + a[i][j]; } if(j==(n-1-i)) { Fsum = Fsum + a[i][j]; } } } printf(\Zsum,Fsum); } 5.D4203 从键盘上输入矩阵的阶数n(n<=14), 矩阵中元素的值 等于其位置的行数和列数之和的n倍 #include int main(void) { int i, j, n, sum1 = 0, sum2 = 0; int array[15][15]; printf(\ scanf(\ for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { array[i][j] = (i + j) * n; } } for (i = 1; i < n - 1; i++) { for (j = 1; j < n - 1; j++) { sum1 += array[i][j]; } } for (i = 0; i < n; i++) { sum2 += array[i][i]; } printf(\ for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf(\ } printf(\ } printf(\ return 0;