实验四
task1
#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]); return 0; }

int 型数组a在内存中连续存放,每个元素占用4个内存字节单元;char 型数组b在内存中连续存放,每个元素占用1个内存字节单元。
#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:%d\n",&b[i][j],b[i][j]);
    printf("\n");	
}

① int型二维数组a在内存中是按行连续存放的,每个元素占用4个内存字节单元;
② char型二维数组b在内存中是按行连续存放的,每个元素占用1个内存字节单元。
task2
#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;
}
  
 
task3
#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,max;
max=x[0];
for(i=0;i<n;i++)	
{
	if(x[i]>max)
	  max=x[i];
	
}
return max;	
}
  
task4
#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,y,a[100]; do{ a[i]=x%n; switch(a[i]) { case 11:printf("%c",'A');break; case 12:printf("%c",'B');break; case 13:printf("%c",'C');break; case 14:printf("%c",'D');break; case 15:printf("%c",'E');break; case 16:printf("%c",'F');break; } x=x/n; i++; }while(x!=0); for(j=i-1;j>=0;j--) printf("%d",a[j]); printf("\n"); }

task5
#include<stdio.h>
int main()
{
int i,j,k,n;
printf("Enter n:");
while(scanf("%d",&n)!=EOF)
{
 for(i=1;i<=n;i++)
 {
  for(j=1;j<=n;j++)
  {
   k=i>j?j:i;
   printf("%4d",k);
  }
 printf("\n");
 }
}
return 0;
}
  
                    
                
                
            
        
浙公网安备 33010602011771号