【发布时间】:2016-10-09 06:13:58
【问题描述】:
我的老师有一个任务,比如: x^2 + y^3 = z
x 只填充奇数 y 只填充偶数
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
int x,y,z;
int main(){
for (x=1;x<=20;x++){
if ((x%2==1)&&(y%2==0)){
for (y=1;y<=20;y++){
if ((x%2==1)&&(y%2==0)){
z = (x*x) + (y*y*y);
cout << "x^2 + y^3 =" <<z <<"\n";
}
}
}
}
}
我尝试像上面那样编写自己的代码,但唯一的一个循环是 Y ,x 与 1 保持一致。
我也想让 x 循环。我应该怎么办?
我的输出期望是这样的:
1^2 + 2^3 = 9
3^2 + 4^3 = 71
5^2 + 6^3 = 241
7^2 + 8^3 = 561
9^2 + 10^3 = 1081
11^2 + 12^3 = 1849
13^2 + 14^3 = 2913
15^2 + 16^3 = 4321
17^2 + 18^3 = 6121
19^2 + 20^3 = 8361
附言。我很抱歉我的英语不好:D
【问题讨论】:
-
除了严重的缩进之外,您应该使用 调试器 来解决这个问题。使用调试器,您可以逐行单步执行代码,同时监控变量及其值。
-
@JoachimPileborg:
y具有静态存储持续时间,因此初始化为零。 -
@BenjaminLindley 是的,刚刚看到了。
-
@JoachimPileborg 那么我应该去扫描“IF-STATEMENT”之后的第一个变量吗?但我不知道应该用什么来扫描 C++ 上的变量
-
@FahmyArsyaad 解决此类问题的正确工具是您的调试器。 在询问 Stack Overflow 之前,您应该逐行逐行检查您的代码。如需更多帮助,请阅读How to debug small programs (by Eric Lippert)。至少,您应该 [编辑] 您的问题,以包含一个重现您的问题的 Minimal, Complete, and Verifiable 示例,以及您在调试器中所做的观察。
标签: c++ loops if-statement for-loop cout