C/C++文件未编译,(gcc不工作)在Windows VScode中

btqmn9zl  于 8个月前  发布在  C/C++
关注(0)|答案(2)|浏览(124)

每当我在VS代码中点击运行按钮时,我都会遇到这个错误:

我以前每次运行它都会收到这段代码,它工作得很好:

它要求我选择给定的调试器:

当我使用独立的gcc命令时,我的代码工作得很好,但仍然是这里的代码。

#include <stdio.h>

int main() {
    int arr1[50] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    int arr2[50] = {};
    int i, temp;
    int n = 8;
    int turn = n - 1;
    int sort = 1;
    for (i = 0; i < n - 1; i++) {
        if (arr1[i] > arr1[i + 1]) {
            temp = arr1[i];
            arr1[i] = arr1[i + 1];
            arr1[i + 1] = temp;
            sort = 0;
            n--;
        }
        i++;
        if (i < n - 1) {
            turn--;
            if (!turn || sort) {
                break;
            }
            i = 0;
            sort = 1;
        }
    }
    for (i = 0; i < 8; i++) {
        printf("%d ", arr1[i]);
    }
}

有关更多信息,它发生后,新的VS代码更新可用版本1.82请帮助我重置我的设置或任何其他问题,我可能会面临。
我已经重置了代码运行器扩展,并检查了所有必须使用代码运行器的设置:

gcuhipw9

gcuhipw91#

无法直接从VSCode编译,因为配置文件无效:cpp.exe不是C编译器,而是一个需要单个参数的C预处理器。此外,传递源文件的全名(包括带有嵌入空格的目录名)会导致此程序接收多个参数。源文件名必须用引号括起来,以防止嵌入的空格用作参数分隔符。
当我使用独立的gcc命令时,我的代码工作得很好,但仍然是这里的代码。
我担心代码只工作,因为数组已经排序。

  • 你不应该在每次交换时递减n,而只是在到达数组的末尾时。您可以将一个sort标志和多个turns组合在合并中:这种类型的排序算法的更简单的方法是使用嵌套循环和单个sorted标志。

以下是修改后的版本:

#include <stdio.h>

int main(void) {
    int arr1[] = { 8, 7, 6, 5, 4, 3, 2, 1 };
    int n = sizeof(arr1) / sizeof(arr1[0]);
    int last = n - 1;
    int sorted = 0;
    while (!sorted) {
        sorted = 1;
        for (int i = 0; i < last; i++) {
            if (arr1[i] > arr1[i + 1]) {
                int temp = arr1[i];
                arr1[i] = arr1[i + 1];
                arr1[i + 1] = temp;
                sorted = 0;
            }
        }
        last = last - 1;  // the last element is the largest one
    }
    for (int i = 0; i < n; i++) {
        printf("%d ", arr1[i]);
    }
    printf("\n");
    return 0;
}
mzsu5hc0

mzsu5hc02#

以下是一些有效的步骤:
1.重新启动系统(ofc一直工作)。
1.然后我删除了.vs代码文件夹,该文件夹已创建了一些文件,由于不必要的点击错误的选项,而选择GCC。
1.使用了一个正常的代码,没有任何错误,就像一个简单的print语句。

#include <stdio.h>
int main(){
    printf("Welcome");
}

1.在VS代码上单击运行代码。https://i.stack.imgur.com/8gWzQ.png
1.选择g++.exe选项,如图所示。https://i.stack.imgur.com/SVmQg.png
1.它成功地工作了,现在用你之前尝试的代码替换你的代码,它就可以工作了。
1.默认情况下,终端将运行给定的命令,考虑到文件名为world. c

cd "c:\Users\Varun Kharkwal\whatsoever your directory is\" ; if ($?) { gcc world.c -o world } ; if ($?) { .\world }

相关问题