/*#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;
}
3.28練練手
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.