程序改错完整版---C语言
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h"
#define N 20
void fun(int a[], int n)
{
int i, j, t, k;
for (j = 0 ;j < n-1 ;j++)
{
/**********ERROR**********/
k = j
for (i = j+1;i < n; i++)
/**********ERROR**********/
if(a[i] >a[k])
/**********ERROR**********/
k=j;
t = a[k] ;
a[k] = a[j] ;
a[j] = t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i, m = 5;
printf("排序前的数据:") ;
for(i = 0;i < m;i++)
printf("%d ",a[i]);
printf("\n");
fun(a,m);
printf("排序后的数据:") ;
for(i = 0;i < m;i++)
printf("%d ",a[i]);
printf("\n");
}
【参考答案】
k = j;
【参考答案】
if(a[i] < a[k])
if(a[k] > a[i])
【参考答案】
k = i;
(二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,……
项值通过函数值返回 main ( )函数。
例如:若 n = 15,则应输出:The value is: 2209。
#include "conio.h"
#include "stdio.h"
long fun ( int n )
{
long a=1, b=1, c=1, d=1, k;
/**********ERROR**********/
for (k=4; k { d = a+b+c; /**********ERROR**********/ a=b b=c; c=d; } /**********ERROR**********/ return k; } main( ) { int n = 15; printf( "The value is: %ld\n", fun ( n ) ); } 【参考答案】 for (k=4; k<=n; k++) 【参考答案】 a=b; 【参考答案】 return d; (三)功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 #include"stdio.h" main() { int i=5; void palin(int n); printf("\40:"); palin(i); printf("\n"); } void palin(n) int n; { /**********ERROR**********/ char next if(n<=1) { /**********ERROR**********/ next!=getchar(); printf("\n\0:"); putchar(next); } else { next=getchar(); /**********ERROR**********/ palin(n); putchar(next); } } 【参考答案】 char next; 【参考答案】 next=getchar(); 【参考答案】 palin(n-1); (四) 功能:计算级数 ex=1+x+x2/2!+x3/3!+ ...+xn/n! 的值。其中xn代表x的n次方。include "stdio.h" main() { int m,n; float x,term,ex1,ex2; printf("x,m="); scanf("%f %d",&x,&m); /**********ERROR**********/ ex1==ex2=1; term=1; for(n=1;n<=m;n++) { /**********ERROR**********/ term*=x%n; ex1+=term; } ex2=term; /**********ERROR**********/ for (n=m;n>1; n--) { term*=n/x; ex2+=term; } printf("exforward=%f exbackrard=%f\n",ex1,ex2); } 【参考答案】 ex1=ex2=1; 【参考答案】 term*=x/n; 【参考答案】 for (n=m;n>=1; n--) (五)功能:用"冒泡法"对连续输入的十个字符排序后按从小到大的次序输出. define N 10 #include "stdio.h" #include "string.h" void sort(char str[N]); main( ) { int i; char str[N]; /***********ERROR***********/ for(i=0;i /***********ERROR***********/ sort(str[N]); for(i=0;i printf("%c",str[i]); printf("\n"); }