Ctest8(2019-05-23~05-30)


//
//  main.c
//  Ctest8
//
//  Created by 王彬 on 2019/5/23.
//  Copyright © 2019年 王彬. All rights reserved.
//

/*
#include 

void main()
{
    int i=2000;
    int *pointer;
    pointer=&i;
    printf("%d\n",*pointer);
}
*/

//test1
/*
#include

void main()
{
    int a,b;
    int *pointer_1,*pointer_2;
    a=100;b=10;
    pointer_1=&a;
    pointer_2=&b;
    
    printf("%d,%d\n",a,b);
    printf("%d,%d\n",*pointer_1,*pointer_2);
}
*/



//test2 输入a和b两个整数,按先大后小的顺序输出a和b;
/*
#include

void main()
{
    int *p1,*p2,*p,a,b;
    
    scanf("%d%d",&a,&b);
    p1=&a;
    p2=&b;
    
    if(a

void main()
{
    int a,b,*p1,*p2;
    void swap(int *p1,int *p2);//声明交换函数
    
    printf("input two numbers:\n");
    scanf("%d%d",&a,&b);//输入两个数
    p1=&a;
    p2=&b;
    
    if(a%d\n",*p1,*p2);
}

void swap(int *p1,int *p2)
{
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
*/



//test4 输入a,b,c 3个整数,按大小顺序输出
/*
#include

void main()
{
    int a,b,c,*p1,*p2,*p3;
    void swap(int *p1,int *p2,int *p3);
    
    printf("input three numbers:\n");
    scanf("%d,%d,%d",&a,&b,&c);
    p1=&a;
    p2=&b;
    p3=&c;
    
    if(a%d>%d",*p1,*p2,*p3);
}

void swap(int *p1,int *p2,int *p3)
{
    int temp;
    if(*p1<*p2)
    {
        temp=*p1;
        *p1=*p2;
        *p2=temp;
        
    }
    if(*p1<*p3)
    {
        temp=*p1;
        *p1=*p3;
        *p3=temp;
    }
    if(*p2<*p3)
    {
        temp=*p2;
        *p2=*p3;
        *p3=temp;
    }
}
*/



//test5 输出数组中的全部元素
/*
#include

void main()
{
    int a[10]={9,8,7,6,5,4,3,2,1,0};
    void output(int *p);
    int *p;
    p=a;
    
    output(p);
    putchar('\n');
    
}

void output(int *p)
{
    int i;
    for(i=0;i<10;i++)
    {
        //printf("%d ",a[i]);
        //printf("%d ",*(a+i));
        printf("%d ",*(p+i));
    }
}
*/



//test6
/*
#include

void main()
{
    int *p,i,a[10];
    p=a;
    
    for(i=0;i<10;i++)
    {
        scanf("%d",p);
    }
    printf("\n");
    for(i=0;i<10;i++)
    {
        printf("%d ",*p++);
    }
}
*/


//test7
/*
#include

void main()
{
    int a[10]={1,2,4,5,2,3,46,7,0,9},i,*p;
    void change(int x[],int n);
    p=a;
    printf("the original array:\n");
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    putchar('\n');
    change(p,10);
    printf("the array has been inverted:\n");
    for(i=0;i<10;i++)
    {
        printf("%d ",*(p+i));
    }
    putchar('\n');
}

void change(int x[],int n)
{
    int m,temp,j,i=0;
    m=(n-1)/2;
    for(j=n-1;j>m;j--)
    {
        //static int i=0;
        temp=x[j];
        x[j]=x[i];
        x[i]=temp;
        i++;
    }
}
*/



//test8
/*
#include

int max,min;
void main()
{
    void select_max(int *p1);
    void select_min(int *p2);
    int a[10],i,*pointer1,*pointer2;
    pointer1=a;
    pointer2=a;
    
    printf("input ten numbers:\n");
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    select_max(pointer1);
    select_min(pointer2);
    
}

void select_max(int *p1)
{
    int n,temp;
    
    for(n=0;n<10;n++)
    {
        if(*p1<*(p1+n))
        {
            temp=*p1;
            *p1=*(p1+n);
            *(p1+n)=temp;
        }
    }
    printf("max is %d\n",*p1);
}

void select_min(int *p2)
{
    int n,temp;
    for(n=0;n<10;n++)
    {
        if(*p2>*(p2+n))
        {
            temp=*p2;
            *p2=*(p2+n);
            *(p2+n)=temp;
        }
    }
    printf("min is %d\n",*p2);

}
*/



//test9用指针变量输出二维数组的值。
/*
#include

void main()
{
    int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
    int (*p)[4];
    int i,j;
    
    p=a;
    for(i=0;i<3;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%3d ",*(*(p+i)+j));
        }
        putchar('\n');
    }
    
}
*/



//test10
/*
#include

int i,j;
void main()
{
    
    int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
    int (*p)[4];
    p=a;
    
    int REinput_i(int x);
    int REinput_j(int y);
    
    
    printf("input i = ");
    scanf("%d",&i);
    i=REinput_i(i);
    
    printf("input j = ");
    scanf("%d",&j);
    j=REinput_j(j);
    
    printf("(%d,%d) = %d\n",i,j,*(*(p+(i-1))+(j-1)));
    
}

int REinput_i(int x)
{
    while(x<1||x>3)
    {
        printf("input again i = ");
        scanf("%d",&x);
        i=x;
    }
    return i;
}

int REinput_j(int y)
{
    while(y<1||y>4)
    {
        printf("input again j = ");
        scanf("%d",&y);
        i=y;
    }
    return j;
}
*/


/*
 
//test11
#include

void main()
{
    char string[]="i love you";
    printf("%s\n",string);
}
*/



//test12
/*
#include

void main()
{
    char *string="i love you";
    printf("%s\n",string);
}
*/



//test13
/*
#include

void main()
{
    char A_string[]="I LOVE YOU";
    char B_string[100];
    int i;
    
    for(i=0;i<100;i++)
    {
        B_string[i]=A_string[i];
    }
    printf("%s\n",B_string);
}
*/



//test14
/*
#include

void main()
{
    char A_string[]="I LOVE YOU";
    char B_string[100];
    int i;
    
    for(i=0;*(A_string+i)!='\0';i++)
    {
        *(B_string+i)=*(A_string+i);
    }
    *(B_string+i)='\0';
    printf("%s\n",A_string);
    printf("%s\n",B_string);
}
*/



//test15
#if(0)
#include

void main()
{
    char *a="12345678";
    a+=6;
    printf("%s\n",a);
}
#endif



//test16
#if(0)
#include

void main()
{
    char *a="i love you";
    int i;
    
    printf("which character you want to print:");
    scanf("%d",&i);
    printf("print the NO.%d character:%c\n",i,a[i]);
    for(i=0;a[i]!='\0';i++)
    {
        printf("%c",a[i]);
    }
    putchar('\n');
}
#endif



//test17
#if(0)
#include

void main()
{
    int max(int x, int y);
    int a,b,c;
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    printf("the max number is %d\n",c);
}

int max(int x, int y)
{
    int result;
    
    if(x>y)
    {
        result=x;
    }
    else
    {
        result=y;
    }
    
    return result;
}

#endif



//test18
#if(0)
#include

void main()
{
    int max(int x,int y);
    int (*p)();
    int a,b,c;
    
    scanf("%d,%d",&a,&b);
    p=max;
    c=(*p)(a,b);
    printf("the max is %d\n",c);
}

int max(int x,int y)
{
    int result;
   
    if(x>y)
    {
        result=x;
    }
    else
    {
        result=y;
    }
    
    return result;
}

#endif



//test19 须体悟
#if(0)
#include

void main()
{
    int max(int,int);
    int min(int,int);
    int add(int,int);
    void process(int x,int y,int(*p)());
    int a,b;
    
    printf("input a and b\n");
    scanf("%d,%d",&a,&b);
    
    printf("max=");
    process(a,b,max);
    putchar('\n');
    
    printf("min=");
    process(a,b,min);
    putchar('\n');
    
    printf("sum=");
    process(a,b,add);
    putchar('\n');
}

int max(int a,int b)
{
    int max1;
    
    if(a>b)
    {
        max1=a;
    }
    else
    {
        max1=b;
    }
    return max1;
}

int min(int a,int b)
{
    int min1;
    
    if(a>b)
    {
        min1=b;
    }
    else
    {
        min1=a;
    }
    return min1;
}

int add(int a,int b)
{
    int sum;
    sum=a+b;
    return sum;
}

void process(int x,int y,int(*p)())
{
    printf("%d",(*p)());
}

#endif

你可能感兴趣的:(Ctest8(2019-05-23~05-30))