我的for
循环在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-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingw32.a(lib64_libmingw32_a- crt0_c.o) In function `main': 18 C:\crossdev\src\mingw-w64-v3-git\mingw-w64- crt\crt\crt0_c.c undefined reference to `WinMain' D:\CPP Projects\collect2.exe [Error] ld returned 1 exit status
答案 0 :(得分:3)
我相信您遇到的问题是您试图执行一个函数而不在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;
}
答案 1 :(得分:2)
您的程序需要具有一个主要功能(程序的入口)。
尝试一下
#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;
}