实验四

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;
}

  

 

posted @ 2021-12-07 23:33  玥浅浅  阅读(62)  评论(0编辑  收藏  举报