3.28练练手

/*#include <stdio.h>
int main()
{
	int a[10];
	int i;
	printf("please enter 10 integer numbers:");
	for( i = 0;i <10;i++ )
	{
		scanf("%d",&a[i]);
	}
	for( i = 0;i <10;i++ )
	{
		printf("%d",*(a + i));  //通过数组名和元素序号计算元素地址,再找到该元素
	}
	printf("\n");
	return 0;
}*/
/*#include <stdio.h>
int main()
{
	int a[10];
	int *p,i;
	printf("please enter 10 integer numbers:");
	for( i = 0;i < 10;i++ )
		scanf("%d",&a[i]);
	for( p = a;p < (a + 10);p++ )
		printf("%d",*p);			//用指针指向当前的数组元素
	printf("\n");
	return 0;
}*/
/*#include <stdio.h>
int main()
{
	int *p,i,a[10];
	p = a;											//p指向a[0]
	printf("please enter 10 integer numbers:");
	for( i = 0; i < 10; i++ )
		scanf("%d",p++);							//输入10个整数给a[0]-a[9]
	p = a;											//重新使p指向a[0]
	for( i = 0; i < 10; i++, p++ )
		printf("%d",*p);							//输出a[0]-a[9]
	printf("\n");
	return 0;
}*/
//将数组a中的n个整数按相反顺序存放
/*#include <stdio.h>
int main()
{
	void inv( int x[], int n );				//inv函数声明
	int i,a[10] = {3,7,9,11,0,6,7,5,4,2};
	printf("The original arry:\n");
	for( i = 0; i < 10; i++ )
		printf("%d",a[i]);					//输出未交换时数组个元素的值
	printf("\n");
	inv(a,10);								//调用inv函数,进行交换
	printf("The array has been inverted:\n");
	for( i = 0; i < 10; i++ )
		printf("%d",a[i]);					//输出交换后数组个元素的值
	printf("\n");
	return 0;
}
void inv(int x[],int n)						//形参x是数组名
{
	int temp,i,j,m = (n-1)/2;
	for( i = 0; i <= m; i++ )
	{
		j = n-1-i;
		temp = x[i];						//把x[i]和x[j]交换
		x[i] = x[j];
		x[j] = temp;
	}
	return ;
}*/
/*#include <stdio.h>
int main()
{
	void inv( int *x, int n );
	int i, a[10] = {3,7,9,11,0,6,7,5,4,2};
	printf("The original array :\n");
	for( i = 0; i < 10; i++ )
		printf("%d",a[i]);
	printf("\n");
	inv(a,10);
	printf("The array has been inverted:\n");
	for( i = 0; i < 10; i++ )
		printf("%d",a[i]);
	printf("\n");
	return 0;
}

void inv( int *x, int n )
{
	int *p,temp,*i,*j,m = (n-1)/2;			//形参x是指针变量
	i = x; j = x+n-1; p = x+m;
	for( ; i <= p; i++, j-- )
	{
		temp = *i;
		*i = *j;							//*i与*j交换
		*j = temp;
	}
	return;
}*/
/*#include <stdio.h>
int main()
{
	void inv( int *x, int n );
	int i, arr[10], *p = arr;
	printf("The original array:\n");
	for( i = 0; i < 10; i++, p++ )
		scanf("%d",p);
	printf("\n");
	p = arr;
	inv( p,10 );
	printf("The array has been inverted :\n");
	for( p = arr; p < arr+10; p++ )
		printf("%d",*p);
	printf("\n");
	return 0;
}

void inv( int *x, int n )
{
	int *p,m,temp,*i,*j;
	m = (n-1)/2;
	i = x;
	j = x+n-1;
	p = x+m;
	for( ; i <= p; i++, j-- )
	{
		temp = *i;
		*i = *j;
		*j = temp;
	}
	return;
}*/
//用指针方法对10个整数按由大到小顺序排序
/*#include <stdio.h>
int main()
{
	void sort( int x[], int n );					//sort函数声明
	int i, *p, a[10];
	p = a;											//指针变量p指向a[0]
	printf("please enter 10 integer numbers;");
	for( i = 0; i < 10; i++ )
		scanf("%d",p++);							//输入10个整数
	p = a;											//指针变量p重新指向a[0]
	sort( p,10 );									//调用sort函数
	for( p = a, i = 0; i < 10; i++ )
	{
		printf("%d",*p);							//输出排序后的10个数组元素
		p++;
	}
	printf("\n");
	return 0;
}

void sort( int x[], int n )							//定义sort函数,x是形参数组名
{
	int i, j, k, t;
	for( i = 0; i < n-1; i++ )
	{
		k = i;
		for( j = i+1; j < n; j++ )
			if( x[j] > x[k] )
				k = j;
		if( k != i )
		{
				t = x[i];
				x[i] = x[k];
				x[k] = t;
		}
	}
}*/
//定义一个字符数组,在其中存放字符串“I love China!”,输出该字符串和第8个字符
/*#include <stdio.h>
int main()
{
	char string[] = "I love China!";		//定义字符数组string
	printf("%s\n",string);					//用%s格式声明输出string,可以输出整个字符串
	printf("%c\n",string[7]);				//用%c格式输出一个字符数组元素
	return 0;
}*/
//通过字符指针变量输出一个字符串
/*#include <stdio.h>
int main()
{
	char *string = "I love China!";			//定义字符指针变量string并初始化
	printf("%s\n",string);					//输出字符串
	return 0;
}*/

/*#include <stdio.h>
int main()
{
	char a[] = "I am a student.";			//定义字符数组
	char b[20];
	int i;
	for( i = 0; *( a+i ) != '\0'; i++ )
	{
		*(b+i) = *(a+i);					//将a[i]的值赋给b[i]
	}
	*(b+i) = '\0';							//在b数组的有效字符之后加'\0'
	printf("string a is :%s\n",a);			//输出a数组中全部有效字符
	printf("string b is:");
	for( i = 0; b[i] != '\0'; i++ )
		printf("%c",b[i]);					//逐个输出b数组中全部有效字符
	printf("\n");
	return 0;
}*/
/*#include <stdio.h>
int main()
{
	char a[] = "I am a boy.",b[20],*p1,*p2;
	p1 = a;
	p2 = b;
	for( ; *p1 != '\0'; p1++, p2++ )
	{
		*p2 = * p1;
	}
	*p2 = '\0';
	printf("string a is:%s\n",a);
	printf("string b is:%s\n",b);
	return 0;
}*/
//用函数调用实现字符串的复制
/*#include <stdio.h>
int main()
{
	void copy_string( char from[], char to[] );
	char a[] = "I am a teacher.";
	char b[] = "You are a student.";
	printf("string a=%s\nstring b=%s\n",a,b);
	copy_string(a,b);							//用字符数组名作为函数实参
	printf("copy string a to string b:\n");
	printf("string a=%s\nstring b=%s\n",a,b);
	return 0;
}

void copy_string( char from[], char to[] )		//形参为字符数组
{
	int i = 0;
	while( from[i] != '\0' )
	{
		to[i] = from[i];
		i++;
	}
	to[i] = '\0';
}*/

/*#include <stdio.h>
int main()
{
	void copy_string( char from[], char to[] );			//函数声明
	char a[] = "I am a student.";						//定义字符数组a并初始化
	char b[] = "You are a student.";					//定义字符数组b并初始化
	char *from = a, *to = b;							//from指向a数组首元素,to指向b数组首元素
	printf("string a = %s\n string b = %s\n",a,b);
	printf("\ncopy string a to string b:\n");
	copy_string(from,to);								//实参为字符指针变量
	printf("string a = %s\n string b = %s\n",a,b);
	return 0;
}
void copy_string( char from[], char to[] )				//形参为字符数组
{
	int i = 0;
	while( from[i] != '\0' )
	{
		to[i] = from[i];
		i++;
	}
	to[i] = '\0';
}*/

#include <stdio.h>
int main()
{
	void copy_string( char from[], char to[] );
	char *a = "I am a student.";
	char b[] = "You are a student.";
	char *p = b;
	printf("string a = %s\n string b = %s\n",a,b);
	printf("\ncopy string a to string b:\n");
	copy_string(a,p);
	printf("string a = %s\n string b = %s\n",a,b);
	return 0;
}

/*void copy_string( char *from, char *to )
{
	for( ;  *from != '\0'; from++, to++ )
	{
		*to = *from;
	}
	*to = '\0';
}*/
/*void copy_string( char *from, char *to )
{
	while( ( *to = *from ) != '\0' )
	{
		to++;
		from++;
	}
}*/
/*void copy_string( char *from, char *to )
{
	while( ( *to++ = *from++ ) != '\0' );
}*/
/*void copy_string( char *from, char *to )
{
	while( *to++ = *from++ );
}*/
/*void copy_string( char *from, char *to )
{
	for( ; *to++ = *from++; );
}*/
/*void copy_string( char from[], char to[] )
{
	char *p1,*p2;
	p1 = from;
	p2 = to;
	while( (*p2++ = *p1++)!=0 );
}*/
//用函数求a和b中的大者
#include <stdio.h>
int main()
{
	int max( int, int );
	int a,b,c;
	printf("please enter a and b:");
	scanf("%d%d",&a,&b);
	c = max( a, b );
	printf("a = %d\nb = %d\nmax = %d\n",a,b,c);
	return 0;
}

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






发布了42 篇原创文章 · 获赞 3 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章