C语言解答 将一个整型数组中的元素循环向右移动一个位置. 十万火急!!

1.将一个整型数组中的元素循环向右移动一个位置.

2.已知一个比赛有10个评委,每个选手的得分是去掉一个最高分和一个最低分生的平均得分,从键盘输入这10个评委的分数,输出选手的最终得分,要求用数组实现.

第1题
#include <stdio.h>

void LoopMove( int* array, int size, int n )
{
int* temp = ( int* )malloc( n * sizeof( int ) );

memcpy( temp, array + size - n, n * sizeof( int ) );
memmove( array + n, array, ( size - n ) * sizeof( int ) );
memcpy( array, temp, n * sizeof( int ) );

free( temp );
}

int main( void )
{
int i = 0;
int size;

int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
size = sizeof( a ) / sizeof( a[0] );
LoopMove( a, size, 1 );

for( i = 0; i < size; ++i )
{
printf( "%d ", a[i] );
}

system( "pause" );
}

第2题
#include <stdio.h>

int main( void )
{
int a[ 10 ] = { 0 };
int i = 0;
int max;
int min;
int sum = 0;

printf( "请输入10个评委的分数:\n" );
for( i = 0; i < 10; ++i )
{
scanf( "%d", &a[ i ] );
}

max = min = a[ 0 ];
for( i = 1; i < 10; ++i )
{
if( a[ i ] > max )
{
max = a[ i ];
}
else if( a[ i ] < min )
{
min = a[ i ];
}
}

for( i = 0; i < 10; ++i )
{
sum += a[ i ];
}

sum -= max + min;

printf( "选手得分: %f\n", (float)sum / 8 );

system( "pause" );
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-20
#define N 10
#include <stdio.h>
int main()
{
int arr1[N],arr2[N];
printf("Input the array :");
for(i=0;i<N;i++)
scanf("%d",&arr1[i]);
for(i=1;i<N;i++)
arr2[i]=arr1[i-1];
arr2[0]=arr1[i];
printf("The result is :\n");
for(i=0;i<N;i++)
printf("%d\t",arr2[i]);
printf("\n");
return 0;
}
第2个回答  2011-11-20
1. for(int i=0;i<n;i++)
{
a[(i+1)%n]=a[i];
}
第3个回答  2011-11-20
1:k=a[0];
for(i=0;i<n-1;i++)
a[i]=a[i+1];
a[i]=k;
相似回答