2
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:读入一个整数m( 5≤m≤20 ),函数rnd获得m个随机整数,
函数sortpb将这m个随机整数从小到大排序。
例如:若输入整数7,则应输出:3 10 17 28 32 36 47。
------------------------------------------------------*/
#include "conio.h"
#include "stdio.h"
sortpb ( int n, int a[] )
{
/**********ERROR**********/
int i, j, p;
for ( j = 0; j < n-1 ; j++ )
{
p = j;
for ( i = j + 1; i < n ; i ++ )
/**********ERROR**********/
if ( a[p] > a[j] ) p = i;
/**********ERROR**********/
if ( p == j )
{
t = a[j];
a[j] = a[p];
a[p] = t;
}
}
}
double rnd ( )
{
static t = 29, c = 217, m = 1024, r = 0;
r =( r*t + c )%m; return( ( double )r/m );
}
getarr( int n, int *x )
{
int i;
for( i = 1; i <= n; i++, x++ ) *x = ( int )( 50*rnd() );
}
putarr( int n, int *z )
{
int i;
for( i = 1; i <= n; i++, z++ )
{
printf( "M", *z );
if ( !( i ) ) printf( "\n" );
}
printf("\n");
}
main()
{
int aa[20], n;
printf( "\nPlease enter an integer number between 5 and 20: " );
scanf( "%d", &n );
getarr( n, aa );
printf( "\n\nBefore sorting %d numbers:\n", n ); putarr( n, aa );
sortpb( n, aa );
printf( "\nAfter sorting %d numbers:\n", n ); putarr( n, aa );
}
【改错1】
【参考答案】
int i, j, p, t;
============================================================
【改错2】
【参考答案】
if ( a[p] > a[i] ) p = i;
if ( a[i] < a[p] ) p = i;
============================================================
【改错3】
【参考答案】
if ( p != j )
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 |