*6.3从键盘输入三个整数,要求设三个指针变量P1 P2,P3,使P1指向三个数的最大者,P2指向次大者, P3指向最小者,然后按由大到小的顺序输出三个数 解:程序如下: maino i int*pl, *p2,*p3, i,,k, temp scanf(%d %d%d, &i, &j, &k; p1=&ip2=&jp3=&k if (P1<*p2 i temp=*p1,* plE*p2, *P2=tempel if(*P1<*p3) i temp=*pl, "p1=*p3, P3=temp;1 If(*P2<*p3) i temp=*p2, * p2=*p3, P3=tempi print(%dd%d%”:*p1,p2,“p3)
解:程序如下: main() { int *p1,*p2,*p3,i,j,k,temp; scanf(“%d %d %d”,&i,&j,&k); p1=&i,p2=&j,p3=&k; if (*P1<*p2) { temp=*p1,*p1=*p2,*P2=temp;} if (*P1<*p3) { temp=*p1,*p1=*p3,*P3=temp;} if (*P2<*p3) { temp=*p2,*p2=*p3,*P3=temp;} printf(“%dd %d %d”,*p1,*p2,*p3); } 6.3 从键盘输入三个整数,要求设三个指针变量P1, P2,P3,使P1指向三个数的最大者,P2指向次大者, P3指向最小者,然后按由大到小的顺序输出三个数
615编写一个函数,能测出一个字符串的长度,函 数返回值是字符串的长度。 #inc|Ude“ stdio.h” main() f int len(char*ps), l; char string[80], *p gets(string); p=string; len(p) puts(p) printf((%d”,); int len(char *ps) int n=0 while(*ps!=“0) n++; ps++,1 return(n)
6.15 编写一个函数,能测出一个字符串的长度,函 数返回值是字符串的长度。 #include “stdio.h” main( ) { int len(char *ps),l; char striing[80] , *p ; gets(string); p=string; l=len(p); puts(p); printf(“%d”,l ); } int len(char *ps) { int n=0; while (*ps!=‘\0’) { n++; ps++; } return(n) }
619写一个函数 strcmp,以实现两个字符串的比较 函数调用形式为: strcmp(str,str2) 如果str>str2,则此函数值为一个正数;若str1=str2, 则返回值0;若str1<str2,则输出一个负数
6.19 写一个函数strcmp,以实现两个字符串的比较。 函数调用形式为: strcmp(str1,str2); 如果str1>str2,则此函数值为一个正数;若str1=str2, 则返回值0;若str1<str2,则输出一个负数
# include“ stdio.h” Maino i int cmp str(char stri[l, char str2[1); char stri[100], str2[100] int cmpval; gets(str1); gers(str2) cmpval=cmp str(str1, str2) printf(“ cmpval=%d” cmpva); Int cmp str(char stri[l, char str2[1) i int i=0; while(strigil==str2[i1) if(stri[++]==0) return(o) if(strii]str2[] return (1); else return(-1)
#include “stdio.h” Main( ) { int cmp_str(char str1[ ],char str2[ ] ); char str1[100],str2[100]; int cmpval; gets(str1); gers(str2); cmpval=cmp_str(str1,str2); printf(“cmpval=%d”,cmpval); } Int cmp_str(char str1[ ],char str2[ ] ) { int i=0; while( str1[ i ])==str2[ i ] ) if ( str1[ i++]==‘\0’) return(0); if(str1[ i ]>str2[ i ]) return(1); else return( -1 ); }
66编一个函数sort,使10个整数按由小到大的顺 序排列。在main函数中输入这10个数,并输出排好 序的数。 编程序方法: 1、主函数中定义一个一维数组,和一个指向该类型数 据的指针变量,并对定义的函数进行说明; 2、主函数中对该数组赋值(单循环结构); 3、主函数中调用该函数; 4、主函数中输出该数组(单循环结构) 5、定义sort函数,形参应能接收数组首地址,和元素 个数; 6、排序采用顺序比较法对数组元素进行排序
6.6 编一个函数sort,使10个整数按由小到大的顺 序排列。在main函数中输入这10个数,并输出排好 序的数。 编程序方法: 1、主函数中定义一个一维数组,和一个指向该类型数 据的指针变量,并对定义的函数进行说明; 2、主函数中对该数组赋值(单循环结构); 3、主函数中调用该函数; 4、主函数中输出该数组(单循环结构); 5、定义sort函数,形参应能接收数组首地址,和元素 个数; 6、排序采用顺序比较法对数组元素进行排序
排序方法: 取数组中第一个元素,分别与其它所有元素进行比较, 从中选出最小值存放在第一个元素中,再取第二个元素, 分别与其它所有元素进行比较,选出次大的放于第二个元 素中,以此类推。 如 j=i+1 ato a[] a[3 a[4 8 afifi j++直到j4 从j=计+起交换 8 小=计+起叫la[j 从 j++直到j=4 交换 从j=计+1起a[iPa【]j++直到j4 交换
排序方法: 取数组中第一个元素,分别与其它所有元素进行比较, 从中选出最小值存放在第一个元素中,再取第二个元素, 分别与其它所有元素进行比较,选出次大的放于第二个元 素中,以此类推。 如: j j=i+1 a[0] a[1] a[3] a[4] i 8 3 4 9 i=0 3 8 4 9 a[ i ]>a[ j ] j++ 直到 j=4 交换 i=1 4 8 9 a[ i ]>a[ j ] j++ 直到 j=4 交换 i=2 8 9 a[ i ]>a[ j ] j++ 直到 j=4 交换 从j=i+1起 从j=i+1起 从j=i+1起
程序: main (0 i void sort(int al l,int n) int dol, i; for(i=0;aljl D temp-alilaliF=a[j halil=temp
程序: main() { void sort (int a[ ],int n) int d[10], i; for (i=0 ;i a[ j ]) { temp=a[ i ],a[ i ]=a[ j ],a[ j ]=temp;} }
6.11有n个人围成一圈,顺序排号,从第一个人开始 报数,从1到5,凡报到5的人退出圈子,问最后留下 的是原来的第几号的人。 [8] [7 [6 3] [5 if(a[i]!=0)s++;if(s=5){a[i]=0;=0
6.11 有n个人围成一圈,顺序排号,从第一个人开始 报数,从1到5,凡报到5的人退出圈子,问最后留下 的是原来的第几号的人。 1 1 1 1 1 1 1 1 1 a [0] a[2] a [1] a [5] a [6] a [7] a [8] a[4] a[3] 0 if (a[ i ]!=0) s++ ; if ( s==5) {a[ i ] =0 ;S =0
main( i void left (int *p, int n) int num 100l,n, i; scanf(%od”,&n); for(i=0; i<n; i++) num i=l; left(num, n) for(i=0;<n;i++) if (num[i!=0 2 printf(sod", num[i1) void left(int*p, int n) fint i=0,out=0, count=0 while(out <n-1) fif((p+)=0) count++ if(count5((p+i=0, count=0, out++; 3 if(i==n)i=0;}
main() { void left (int *p,int n) int num[100],n,i; scanf(“%d”,&n); for ( i =0; i<n; i++) num[ i ]=1; left(num,n); for (i=0;i<n;i++) if (num[ i ]!=0) printf(“%d”,num[ i ] ); } void left(int *p,int n) { int i=0,out=0 ,count=0 ; while (out <n-1) { if (*(p+i)!=0) count++; if (count==5) { *(p+i)=0,count=0,out++;} i ++; if ( i==n) i= 0; } }