971

导航

实验4

task1-1

#include <stdio.h>
const int N = 4;

int main()
{
    int a[N] = {2, 0, 2, 1};
    char b[N] = {'2', '0', '2', '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; }

是,占四个;是,占两个

task1-2

#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]);
          
}

 是,占四个;是,占两个

task2

#include <stdio.h>
#include <math.h>
#define N 1000
int fun(int n, int m, int bb[])
{
    int i, j, k = 0, flag;
    
    for (j = n; j <= m; j++)
    {

        for(i = 2; i < sqrt(j); i++)
           if( j%i == 0)
           {
                flag = 0;
                break;
           }
    if(i > sqrt(j)) 
      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, j;
    if(x[0] < x[1])
    j = x[1];
    else
    j = x[0];
    for(i = 1; i < N; ++i)
       if(j < x[i])
       j = x[i];
    return j;
}

 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 a[50], t, i=1;
    while (x != 0)
    {
        t = x%n;
        a[i] = t;
        x = x / n;
        i++;
    }
    
    int m;
    for(m=i-1;m>=1;m--)
    {
        if(a[m]<10)
        printf("%d", a[m]);
        else
        {
            switch(a[m])
            {
                case 10:printf("A");break;
                case 11:printf("B");break;
                case 12:printf("C");break;
                case 13:printf("D");break;
                case 14:printf("E");break;
                case 15:printf("F");break;
            }
        }
    }
    printf("\n");
}

 task5

#include <stdio.h>
void print(int n);
int main()
{
    int x;
    while(printf("Enter n: ")&&scanf("%d", &x) != EOF)
    {
        print(x);
    }
    return 0;
}

void print(int n)
{
    int i, j; 
    for(j=1;j<=n;j++)
    {
        for(i=1;i<=n;i++)
        {
            if(i<=j)
            printf("%2d", i);
            else
            {
            printf("%2d", j);
            }
        }
        printf("\n");
    }
}

 本次实验巩固了数组的相关知识,但对于二维数组的应用仍有不足。

posted on 2021-12-05 18:22  971  阅读(13)  评论(1编辑  收藏  举报