c - c qsort函数中的这个错误是什么
问题描述
我正在尝试使用 c++ 运行相同的计算函数,它可以按预期工作,但不能使用 c,请您告诉我哪里出了问题。我只是对比较值和递增答案的两个数组进行排序;
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
int compare_function(const void *a,const void *b) {
int *x = (int *) a;
int *y = (int *) b;
return *x - *y;
}
int calculate(long long A[], long long G[],int t){
int answer = 0;
int j = 0;
int i = 0;
while (i < t) {
if(G[i] > A[j]){
i++;
j++;
answer++;
} else {
i++;
}
}
return answer;
}
int main()
{
int p;
scanf("%d", &p);
while (p > 0){
int t;
scanf("%d", &t);
long long G[t];
long long A[t];
for(int i=0;i<t;i++)
scanf("%d",&G[i]);
for(int i=0;i<t;i++)
scanf("%d",&A[i]);
qsort(G,t,sizeof (long long ),compare_function);
qsort(A,t,sizeof (long long ),compare_function);
printf("%d\n", calculate(A,G,t));
p--;
}
}
我使用过 c(gcc 8.2.0) 并且一件奇怪的事情是每次我运行这个程序时我得到不同的输出。
Array Input
1
10
3 6 7 5 3 5 6 2 9 1
2 7 0 9 3 6 0 6 2 6
output: 6, expected : 7
constraints
1<= N <=100000
0<= Array elemts <= LLONG_MAX
解决方案
推荐阅读
- javascript - 我尝试使用 .substring 获取 2 个数字或 1 个数字,但是当我使用 var price 时,只读取一个,为什么?
- node.js - 将 React Native 前端与无服务器 node.js 后端连接起来
- bash - 如何获得完整的路径,*允许*符号链接
- mongodb - 将主集合与事务状态集合匹配
- javascript - 语义 ui 滚动下拉列表不显示所选项目
- oracle - Oracle 历史报告 - 某个时间点的行是什么
- c++ - libswscale/swscale.h:没有这样的文件或目录
- r - 如何计算数据框中特定时间值的出现次数
- javascript - 寻找聪明的方式来重新设计这个和/或声明
- javascript - React + TypeScript:“React”指的是一个 UMD 全局文件,但当前文件是一个模块。考虑改为添加导入。(理由)