//
// 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