资源描述
程序改错功能:给定n个实数,输出平均值,并统计在平均值以下(含平 均值)的实数个数。例如:n=6时,输入23.5, 45.67, 12.1, 6.4,58.9, 98.4所得 平均值为40.828335,在平均值以下的实数个数应为3。-*/#include int fun(float x,int n) int j,c=0; /*FOUND*/ float j=0; /*FOUND*/ for(j=0;j=n;j+) xa+=xj; xa=xa/n; printf(ave=%fn,xa); /*FOUND*/ for(j=0;j=n;j+) if(xj=xa) c+; return c;void main(void) float x=23.5,45.67,12.1,6.4,58.9,98.4; printf(%dn,fun(x,6);答案: 1). float xa=0; 或 float xa=0.0; 2). for(j=0;jj;j+) 或 for(j=0;n-1=j;j+) 或 for(j=0;j=n-1;j+) 3). for(j=0;jj;j+) 或 for(j=0;j=j;j+)功能:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入。-*/#include stdio.hmain() unsigned int m,n,q; printf(m,n=); scanf(%d,%d,&m,&n); /*FOUND*/ q=fun(m,n); printf(p(%d,%d)=%d,m,n,q); getch();int fun(int m,int n) int i; /*FOUND*/ if (m=n) i=m; m=n; n=i; for(i=m;i=m*n;i+=m) /*FOUND*/ if(i%n=1) return(i);答案: 1). q=fun(m,n); 2). if (mn) 3). if(i%n=0)功能:利用递归方法求5!。-*/#includestdio.h#include stdio.hmain() int i; int fact(); printf(5!=%dn,fact(5);int fact(j)int j; int sum; /*FOUND*/ if(j=0) /*FOUND*/ sum=0; else sum=j*fact(j-1); /*FOUND*/ return j;答案: 1). if(j=0) 2). sum=1; 3). return sum;功能:用指针作函数参数,编程序求一维数组中的最大和最小的 元素值.-*/#define N 10/*FOUND*/void maxmin(int arr ,int *pt1, *pt2, n) int i; /*FOUND*/ *pt1=*pt2=&arr0; for(i=1;in;i+) /*FOUND*/ if(arri*pt1) *pt1=arri; if(arri*pt1) *pt1=arri; 或 if(*(arr+i)*pt1) *pt1=arri; 或 if(*pt1*(arr+i) *pt1=arri; 或 if(*pt1arri) *pt1=arri; 4). p1=&a;p2=&b;功能:将长整型数中每一位上为偶数的数依次取出,构成一个新 数放在t中。高位仍在高位,低位仍在低位。例如:当s中的数为:87654时,t中的数为:864。-*/#include #include void fun (long s, long *t) int d; long sl=1; *t = 0; while ( s 0) d = s%10; /*FOUND*/ if(d%2=0) /*FOUND*/ *t=d* sl+ t; sl *= 10; /*FOUND*/ s=10; main() long s, t; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t); getch();答案: 1). if( d%2 = 0 ) 或 if(d%2!=1) 2). *t=d* sl+ *t; 或 *t+=d*sl; 或 *t+=sl*d; 或 *t=*t+d* sl; 或 *t=*t+sl*d; 3). s/=10; 或 s=s/10;功能:根据整型形参m,计算如下公式的值: y=1/21/81/18.1/2m*m-*/#include stdio.hdouble fun(int m) /*FOUND*/ double y=0 int i; /*FOUND*/ for(i=1; im; i+) /*FOUND*/ y=+1.0/(2*i*i); return(y);main() int n; clrscr(); printf(Enter n: ); scanf(%d, &n); printf(nThe result is %1fn, fun(n); getch(); 答案: 1). double y=0; 2). for(i=1; i=m; i+) 3). y+=1.0/(2*i*i);功能:以下程序输出前六行杨辉三角形,既 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 -*/main( ) static int a66; int i,j,k; /*FOUND*/ for(i=1;i=6;i+) for(k=0;k10-2*i;k+) printf( ); for(j=0;j=i;j+) /*FOUND*/ if(j=0&j=i) aij=1; else /*FOUND*/ aij=ai-1j-1+aij-1; printf( ); printf(%-3d,aij); /*FOUND*/ printf(t); 答案: 1). for(i=0;i6;i+) 或 for(i=0;i=5;i+) 2). if(j = 0 | j = i) 3). aij=ai-1j+ai-1j-1; 或 aij=ai-1j-1+ai-1j; 4). printf(n);功能:以下程序能求出1*1+2*2+.+n*n1000) +n; s+=n*n; /*FOUND*/ printf(n=%dn,&n-1); getch();答案: 1). s=n=0; 2). while(s=1000) 3). printf(n=%dn,n-1);功能:读入一个整数k(2k10000),打印它的所有质因子(即 所有为素数的因子)。例如:若输入整数:2310,则应输出:2、3、5、7、11。 请改正程序中的语法错误,使程序能得出正确的结果。-*/#include conio.h#include stdio.h/*FOUND*/IsPrime(integer n ) int i, m; m = 1; for ( i = 2; i n; i+ ) /*FOUND*/ if ( n%i ) m = 0; break; /*FOUND*/ return ( n ); main( ) int j, k; clrscr(); printf( nPlease enter an integer number between 2 and 10000: ); scanf( %d, &k ); printf( nnThe prime factor(s) of %d is( are ):, k ); for( j = 2; j = k; j+ ) if(!( k%j)&( IsPrime(j) printf( n %4d, j ); printf(n);答案: 1). IsPrime(int n) 2). if(!(n%i) 3). return ( m );功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按 降序排列。例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。-*/#include#include#includeint fun(char *s,int num) /*FOUND*/ int i;j; char t; for(i=0;inum;i+) /*FOUND*/ for(j=i;jsj) t=si; si=sj; sj=t; main() char s10; clrscr(); printf(输入8个字符的字符串:); gets(s); fun(s,8); printf(n%s,s); getch();答案: 1). int i,j; 2). for(j=i+1;jnum;j+) 3). if(sisj)功能:计算正整数num的各位上的数字之积。例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。-*/#include #include long fun (long num)/*FOUND*/ long k=1 do k*=num%10 ; /*FOUND*/ num=10; /*FOUND*/ while(!num) ; return (k) ;main( ) long n ; clrscr() ; printf(Please enter a number:) ; scanf(%ld,&n) ; printf(n%ldn,fun(n) ; getch();答案: 1). long k=1; 2). num/=10; 3). while(num) ; 或 while(num!=0)
展开阅读全文