发布网友
共2个回答
热心网友
int items[5]={1,2,3,4,5};//这里先预设置好一个数组
int ans=0;//然后你这里写上答案,一定要保证你的答案正确.我不知道你的测试数据是怎么来的.这里你自己控制吧
if(countInversions (items,5)==ans)//这里调用那个函数,然后判断一下
{
puts("YES");
}
else
{
puts("NO");
}
热心网友
不是太明白楼主意思,补全了函数,运行过
测试5个数据假如是 1 2 4 5 3
结果为2, 4和3逆序了,5和3逆序了,就这两个
#include<stdio.h>
int countInversions (int items[], int numItems)
{
int a,b;
int result=0;
for (a=0; a<numItems;a++) {
for (b=a+1;b<=numItems;b++){
if (items[a]>items[b]) {
result++;
}
}
}
return (result);
}
main()
{
int items[100],numItems,i,result;
printf("输入测试数据的个数:");
scanf("%d",&numItems);
printf("输入%d个数:",numItems);
for(i=0;i<numItems;i++)
{
scanf("%d",&items[i]);
}
result=countInversions(items,numItems)-numItems;
printf("共有%d个逆序数。",result);
return 0;
}