3.28练练手

来源:互联网 发布:饮用水配送软件 编辑:程序博客网 时间:2024/04/29 04:17
/*#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!";//定义字符数组stringprintf("%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;elsez = y;return z;}

0 0