/*#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练练手
最新推荐文章于 2021-07-23 20:44:56 发布