实验任务4

#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]);
    for(i=0;i<N;i++)
    printf("%x: %c\n",&b[i],b[i]);
    return 0;
}

 1.是 4个字节

2.是 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: %c\n",&b[i][j],b[i][j]);
       return 0;
 } 

 1.是 4 个

2.是 1 个

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

 

#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); // 调用input完成数组输入
    output(a, N); // 调用output输出数组元素值
    max = find_max(a, N); // 调用find_max查找数组a的最大值
    printf("max = %d\n", max);
    return 0;
} 

// 函数定义 
// 功能:为数组x的n个元素输入数值
void input(int x[], int n)
{
    int i;
    for(i=0;i<n;i++)
    scanf("%d",&x[i]);
}

// 函数定义
 // 功能:输出数组x中的n个元素
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;
    int max=0;
    for(i=0;i<n;i++)
    {
        if(x[i]>max)
        max=x[i];
    }
    return max;
}

#include <stdio.h>
void dec2n(int x, int n); // 函数声明
int main()
{
    int x;
    printf("输入一个十进制整数: ");
    scanf("%d", &x);
    dec2n(x, 2); // 函数调用: 把x转换成二进制输出
    dec2n(x, 8); // 函数调用: 把x转换成八进制输出
    dec2n(x, 16); // 函数调用: 把x转换成十六进制输出
    return 0;
}


// 函数定义 
// 功能: 把十进制数x转换成n进制,打印输出
void dec2n(int x,int n)
{
    int i=0,j;
    int a[1000];
    if(n==2)//2进制 
    {
        while(x!=0)
        {
            a[i]=x%n;
            x=x/n;
            i++;
        }
        for(i--;i>=0;i--)
        printf("%d",a[i]);
        printf("\n");
    }
    if(n==8)//8进制
    {
        while(x!=0)
        {
            a[i]=x%n;
            x=x/n;
            i++;
        }
        for(i--;i>=0;i--)
        printf("%d",a[i]);
        printf("\n");
     } 
     if(n==16)//16进制
     {
         while(x!=0)
         {
             a[i]=x%n;
             x=x/n;
             i++;
        }
        for(i--;i>=0;i--)
        printf("%x",a[i]);
    } 
}

 

#include<stdio.h>
int main()
{
    int i,j,a,b;
    printf("Enter n:");
    while(scanf("%d",&i)!=EOF)
 {
     j=i;
     int m[i][j]={0}; 
        for(a=0;a<i;a++)
        {
               for(b=0;b<j;b++)
           {
                  if(b>=a)
               {
               m[a][b]=a+1;
               }
               else
               {
               m[a][b]=b+1;
               } 
           } 
        } 
        for(a=0;a<i;a++)
          {
           for(b=0;b<j;b++)
           printf("%d ",m[a][b]);
           printf("\n"); 
           } 
           printf("Enter n:");
  }
    return 0;    
}

 

大致了解了数组的使用方式。还有很多的算法自己无法独自思考出来,还需多加练习。 

posted @ 2021-12-06 22:01  可可yyds  阅读(49)  评论(1编辑  收藏  举报