程序改错

更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
题目:fun函数的功能是:在任意给定的N个正整数中,从左到右依次逐个取三个数作为一组,按值大小找出该组数的中值,用该中值替换与该组数对应的原三个数中的中间位置的数。处理后原数列中首尾2个数不变。处理后数列在主函数中输出。 例如:有10个正整数如下:初始数列为:6 5 7 23 18 5 8 21 45 38 第1组数为:6 5 7 中值为:6 替换后的数列为:6 6 7 23 18 5 8 21 45 38 第2组数为:5 7 23 中值为:7 替换后的数列为:6 6 7 23 18 5 8 21 45 38 第3组数为:7 23 18 中值为:18 替换后的数列为:6 6 7 18 18 5 8 21 45 38 第4组数为:23 18 5 中值为:18 替换后的数列为:6 6 7 18 18 5 8 21 45 38 第5组数为:18 5 8 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第6组数为:5 8 21 中值为:8 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第7组数为:8 21 45 中值为:21 替换后的数列为:6 6 7 18 18 8 8 21 45 38 第8组数为:21 45 38 中值为:38 替换后的数列为:6 6 7 18 18 8 8 21 38 38 最终结果为:6 6 7 18 18 8 8 21 38 38 #include <stdio.h> #define N 10 int findmid(int a,int b,int c) { int t; t = (a>b)?(b>c?b:(a>c?a:c)):((a>c)?a:((b>c)?c:b)); /**********FOUND**********/ return b; } void fun(int x[]) { int i,a,b,c,t[N]; /**********FOUND**********/ for(i=0;i<N;i++) t[i]=x[i] for(i=0;i<N-2;i++) { a=t[i]; b=t[i+1]; c=t[i+2]; /**********FOUND**********/ t[i+1]=findmid(a,b,c); } } main() { int i,x[N]={6,5,7,23,18,5,8,21,45,38}; for(i=0; i<N; i++) printf("%d ",x[i]); printf("\n"); fun(x); for(i=0; i<N; i++) printf("%d ",x[i]); printf("\n"); }