实验四 数组
#include<stdio.h> const int N = 4; int main() { int a[N]={2,0,2,1}; char b[N]={'2','0','1','1'}; int i; printf("sizeof(int) = %d\n",sizeof(int)); printf("sizeof(char) = %d\n",sizeof(char)); printf("\n"); for(i = 0;i<N;++i) printf("%x: %d\n",&a[i],a[i]); printf("\n"); for(i=0;i<N;++i) printf("%x: %c\n",&b[i],b[i]); printf("\n"); return 0; }
#include<stdio.h> int main() { int a[2][3] = {{1,2,3},{4,5,6}}; char b[2][3] = {{'1','2','3'},{'4','5','6'}}; int i,j; for(i = 0;i < 2; ++i) for(j = 0;j < 3; ++j) printf("%x: %d\n",&a[i][j],a[i][j]); printf("\n"); for(i = 0;i < 2; ++i) for(j = 0;j < 3; ++j) printf("%x :%c\n",&b[i][j],b[i][j]); }
#include<stdio.h> #define N 1000 int fun(int n,int m,int bb[N]) { int i,j,k = 0,flag; for(j = n;j <= m; j++) { flag = 1; for(i = 2; i < j; i++) if(j%i==0) { flag = 0; break; } if(flag==1) bb[k++] = j; } return k; } int main() { int n = 0,m = 0,i,k,bb[N]; scanf("%d",&n); scanf("%d",&m); for(i = 0;i < m - n; i++) bb[i] = 0; k = fun(n,m,bb); for(i = 0;i < k; i++) printf("%4d",bb[i]); return 0; }
#include<stdio.h> const int N = 5; int find_max(int x[],int n); void input(int x[],int n); void output(int x[],int n); int main() { int a[N]; int max; input(a,N); output(a,N); max = find_max(a,N); printf("max = %d\n",max); return 0; } void input(int x[],int n) { int i; for(i = 0;i < n; ++i) scanf("%d",&x[i]); } void output(int x[],int n) { int i; for(i = 0;i < n; ++i) printf("%d ",x[i]); printf("\n"); } int find_max(int x[],int n) { int i; for(i = 0;i < n; i++) { if(x[i]>=x[0]) { x[0]=x[i]; } } return x[0]; }
#include <stdio.h> void dec2n(int x, int n); int main() { int x; printf("输入一个十进制整数: "); scanf("%d", &x); dec2n(x, 2); dec2n(x, 8); dec2n(x, 16); return 0; } void dec2n(int x, int n) { int i = 0,j, m; int a[32]; if (n == 2) { while (x!=0) { m = (x%n); a[i] = m; x = x/n; i++; } for(i--;i>=0;i--) printf("%d", a[i]); printf("\n"); } if (n == 8) printf("%o\n", x); if (n == 16) printf("%x\n", x); }
#include<stdio.h> #define N 50 #define M 50 int a[N][M]; int main() { int n = 1,i,j; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { if (i < j) a[i][j] = i + 1; else a[i][j] = j + 1; } } printf("Enter n:"); while(scanf("%d", &n)!=EOF) { for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf("%d ", a[i][j]); printf("\n"); } printf("Enter n:"); } }
task1-1 int型数组a,在内存中是连续存放的,每个元素占用4个内存字节单元
char型数组b,在内存中是连续存放的,每个元素占用1个内存字节单元
task1-2 int型二维数组a,在内存中是连续存放的,每个元素占用4个内存字节单元
char型二维数组b,在内存中是连续存放的,每个元素占用1个内存字节单元