C语言:求数组中比自己小的元素个数

#include<stdio.h>
#include<string.h>

#define LEN 4

void compute(int *p, int *s, int len) {
	if ((p == NULL) || (*p == NULL) || (len <= 0))
		return;
	for(int i = 0;i < len;i++){

		int *q = p + 1;
		int count = 0;

		for(int j = i + 1;j < len;j++) {
			if (*p > *q) {
				count++;
				q++;
			}
			else
				q++;
		}
		*s = count;
		s++;
		p++;
	}
	return;
}

int main() {
	int counts[LEN];
	int sums[LEN];
	memset(sums, 0, sizeof(int) * LEN);
	int i = 0;
	printf("[");
	for (; i < LEN - 1; i++) {
		scanf("%d,", &counts[i]);
	}
	scanf("%d]", &counts[i]);

	int len = sizeof(counts) / sizeof(int);

	compute(counts, &sums,len);

	printf("[");
	for (i = 0; i < LEN - 1; i++) {
		printf("%d,", sums[i]);
	}
	printf("%d", sums[i]);
	printf("]\n");

	return 0;
}

测试用例通过为0%,原因未知,伤心。。。。


版权声明:本文为weixin_43936250原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。