实验四
test1


1.连续存放;值相同
2.连续存放;值相同;差值:000000000062FDC0-000000000062FDD0;从第一行首项到第二行首项的地址数的差
(疑问,为什么二维数组的地址和值给了16项)
task2

(我看了半天也不知道到底是哪里输的有问题,但是不影响我理解这个过程)
1.形参是 int[x] ,int[n] 实参是x,n
2.input用于输入数组中的每一个数,compute用于找出数组中最大最小值后,求出平均值。
task 3


1.output 形参是intx[][N],int n 实参是x,n
2.不能,第一维可以。
3.output是输出数组中的每个数,init是将数组从[0][0]到[n-1][n-1]都赋值为value.
task 4
#include <stdio.h> #define N 100 void input(int x[],int n); double median(int x[],int n); int main(){ int x[N]; int n; double ans; while(printf("Enter n:"),scanf("%d",&n)!=EOF){ input(x,n); ans = median(x,n); printf("ans=%g\n\n",ans); } retuen 0; } void input(int x[],int n){ int i; for(i=0;i<n;i++){ scanf("%d",&x[i]); } } double median(int x[],int n){ double a; double b; double ans; if(n%2!=0){ a=[(n-1)/2]; ans=(x[a]); } else{ a=(n/2); b=[(n/2)-1]; ans=(x[a]+x[b])/2; } return ans; }
task 5
#include <stdio.h> #define N 100 void input(int x[][N], int n); void output(int x[][N], int n); void rotate_to_right(int x[][N], int n); int main() { int x[N][N]; int n; printf("Enter n: "); scanf("%d", &n); input(x, n); printf("原始矩阵:\n"); output(x, n); rotate_to_right(x,n); printf("变换后矩阵:\n"); output(x, n); return 0; } void input(int x[][N], int n) { int i, j; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) scanf("%d", &x[i][j]); } } void output(int x[][N], int n) { int i, j; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) printf("%4d", x[i][j]); printf("\n"); } } void rotate_to_right(int x[][N], int n){ int i, j; for (i = 0; i < n; ++i) { for (j = 1; j < n; ++j){ x[i][j]=x[i][j-1]; x[i][0]=x[i][n-1]; } }
task.6
#include <stdio.h> #define N 100 void dec_to_n(int x, int n); int main() { int x; while(printf("输入十进制整数: "), scanf("%d", &x) != EOF) { dec_to_n(x, 2); dec_to_n(x, 8); dec_to_n(x, 16); printf("\n"); } return 0; } void dec_to_n(int x, int n){ int a[N],b[N]; int i; int c; x/=n; for(c=0;x!=0;++c){ scanf("%d",&c); } for(i=0;i<c;++i){ while(x!=0){ x/=n; a[i]=x%n; a[i]=a[c-i] } } }
#include <stdio.h> #defin void input(int x[][N], int n); void output(int x[][N], int n); int is_magic(int x[][N],int n); int main() { int x[N][N]; int n; while(printf("输入n: "), scanf("%d", &n) != EOF) { printf("输入方阵:\n"); input(x, n); printf("输出方阵:\n"); output(x, n); if(is_magic(x, n)) printf("是魔方矩阵\n\n"); else printf("不是魔方矩阵\n\n"); } return 0; } void input(int x[][N], int n) { int i, j; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) scanf("%d", &x[i][j]); } } void output(int x[][N], int n) { int i,j; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) printf("%4d", x[i][j]); printf("\n") } } int is_magic(int x[][N],int n){ int i,j; int aans=0; int bbns=0; int vvns=0; for(i=0;i<n;++i){ aans+=x[0][i]; } for (i = 0; i < n; ++i) { for (j = 1; j < n; ++j){ bbns+=x[i][j]; } if(aans=bbns){ return 1; } else{ return 0; } } for (i = 1; i < n; ++i) { for (j = 0; j < n; ++j){ vvns+=x[i][j]; } if(aans=vvns){ return 1; } }

浙公网安备 33010602011771号