为什么我的 for 循环在我的 void 函数中不起作用

Why does my for loop not work in my void function

本文关键字:我的 函数 不起作用 void for 循环 为什么      更新时间:2023-10-16

我的for循环在void函数之外工作,但在void函数内部不起作用。

我尝试不使用函数并且它可以工作,但我需要将这个for循环放在函数中,因为我想在其他代码中使用它。

它的工作原理是这样的:

#include <iostream>
using namespace std;
int main()
{
    int n, sum = 0;
    cout << "Enter a positive integer: ";
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        sum += i;
    }
    cout << "Sum = " << sum;
    return 0;
}

但不是这样的:

#include <iostream>
using namespace std;
void somation(){
    int n, sum = 0;
    cout << "Enter a positive integer: ";
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        sum += i;
    }
    cout << "Sum = " << sum;
}

这是我在 dev-cpp 中收到的错误消息:

D:Dev-CppMinGW64x86_64-w64-mingw32liblibmingw32.a(lib64_libmingw32_a- 
crt0_c.o) In function `main':
18            C:crossdevsrcmingw-w64-v3-gitmingw-w64- 
crtcrtcrt0_c.c      undefined reference to `WinMain'
D:CPP Projectscollect2.exe  [Error] ld returned 1 exit status
我相信

您遇到的问题是您正在尝试执行一个函数而不在 main 中调用它。如果你想在其他地方使用函数somation,你可以复制它,但你总是必须在main中调用函数,否则它将无法工作。

void somation()
{
    int n, sum = 0;
    cout << "Enter a positive integer: ";
    cin >> n;
    for (int i = 1; i <= n; ++i) {
         sum += i;
    }
    cout << "Sum = " << sum;
    return;
}
int main(){
    somation();
    return 0;
}

你的程序需要有一个主函数(程序的入口点(。

试试这个

#include <iostream>
using namespace std;
void somation()
{
    int n, sum = 0;
    cout << "Enter a positive integer: ";
    cin >> n;
    for (int i = 1; i <= n; ++i) 
    {
        sum += i;
    }
    cout << "Sum = " << sum;
}
int main()
{
    somation();
    return 0;
}