C++ C++;在vscode上:Debug get error,但仍在运行不带Debug的运行代码
这是我的代码排序数组2D使用额外的数组或不使用。我像这样使用函数指针C++ C++;在vscode上:Debug get error,但仍在运行不带Debug的运行代码,c++,debugging,C++,Debugging,这是我的代码排序数组2D使用额外的数组或不使用。我像这样使用函数指针 int main() { input(); printf("Array 2D: \n"); output(); printf("After sorting: \n"); solve(sortWithoutUseExtraArr); output(); } 我的职责是: void sortWithoutUseExtraArr { ..... } void solve(void (*so
int main() {
input();
printf("Array 2D: \n");
output();
printf("After sorting: \n");
solve(sortWithoutUseExtraArr);
output();
}
我的职责是:
void sortWithoutUseExtraArr { ..... }
void solve(void (*sort)()) {
(*sort)();
}
当我在没有调试的情况下运行时。它运行得很好。但当我开始调试时。它得到错误:函数'void solve()'的参数太多。
大家能给我解释一下吗。非常感谢你。
对不起,我的英语太差了
编辑:整个代码:
#include<stdio.h>
#define MAX 100
int a[MAX][MAX];
int row, column;
void input();
void output();
void sortArray1D();
void sortUseExtraArr();
void sortWithoutUseExtraArr();
void solve();
int main() {
input();
printf("Array 2D: \n");
output();
printf("After sorting: \n");
solve(sortWithoutUseExtraArr);
output();
}
void input() {
printf("Nhap so hang: ");
scanf("%d", &row);
printf("Nhap so cot: ");
scanf("%d", &column);
for (int i = 0; i < row;++i)
{
for (int j = 0; j < column;++j)
{
printf("a[%d][%d] = ", i + 1, j + 1);
scanf("%d",&a[i][j]);
}
}
}
void output() {
for (int i = 0; i < row;++i) {
for (int j = 0; j < column;++j) {
printf("%d\t", a[i][j]);
}
printf("\n");
}
}
void sortArray1D(int arr[],int n) {
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if(arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
void sortUseExtraArr() {
int b[MAX * MAX];
int n = 0;
for (int i = 0; i < row;++i)
{
for (int j = 0; j < column;++j)
{
b[n] = a[i][j];
++n;
}
}
sortArray1D(b, n);
int d = 0;
for (int i = 0; i < row;++i)
{
for (int j = 0; j < column;++j)
{
a[i][j] = b[d];
++d;
}
}
}
void sortWithoutUseExtraArr() {
int n = row * column;
for(int i = 0; i < n - 1; i++)
{
for(int j = i + 1; j < n; j++)
{
if(a[i / column][i % column] > a[j / column][j % column])
{
int temp = a[i / column][i % column];
a[i / column][i % column] = a[j / column][j % column];
a[j / column][j % column] = temp;
}
}
}
}
void solve(void (*sort)()) {
(*sort)();
}
#包括
#定义最大值100
int a[MAX][MAX];
int行,列;
无效输入();
无效输出();
void sortArray1D();
void sortUseExtraArr();
void sortwithoutuse extrarr();
void solve();
int main(){
输入();
printf(“数组2D:\n”);
输出();
printf(“排序后:\n”);
解决(SortWithoutuseExtrarr);
输出();
}
无效输入(){
printf(“Nhap sohang:”);
scanf(“%d”行和第行);
printf(“Nhap so cot:”);
scanf(“%d”列和列);
对于(int i=0;iarr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=温度;
}
}
}
}
无效sortUseExtraArr(){
int b[MAX*MAX];
int n=0;
对于(int i=0;ia[j/列][j%列])
{
int temp=a[i/列][i%列];
a[i/列][i%列]=a[j/列][j%列];
a[j/列][j%列]=温度;
}
}
}
}
void solve(void(*sort)(){
(*排序)();
}
你能从错误消息中发布更多的上下文吗?每个人都能解释我的观点吗?我想你需要显示更多代码来解释这个问题。你写非法的C++,至少你所发布的,显示一个最小的完整C++文件,问题是我得到的错误,我的源代码是: