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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章