C++ Loop Problems and Corrections
C++ Loop and Conditional Programming Issues
1. Enumerating Through an Array
- Code Snippet:
```cpp
include
include
using namespace std;
int main() {
int array[]={3,4,5,6,7,8,9};
int i, j=0;
for (i=0;i<6;i++) {
cout << array[j] <<" ";
}
return 0;
}
- **Issues Identified:**
- The index used in the loop is `j` instead of `i` which does not change.
- The loop condition should be `i<7` instead of `i<6` to access all elements in the array.
## 2. Loop Running Times Issue
- **Code Snippet:**
cpp
include
using namespace std;
int main() {
int i=0j=0;
for (i=0;j<10;i++) {
cout << "Nice loop we have here with i or is it?"<<i<<endl;
cout <<" j is much better check it" <<endl;
}
cout << "did we get here yet";
return 0;
}
- **Issues Identified:**
- The variable declaration should be `int i=0, j=0;`.
- The loop runs forever because it is controlled by `j` which is not incremented within the loop.
- Two potential solutions:
- Change the for loop condition to `for(i=0;i<10;i++)`.
- Increment `j` within the loop: `j=j+1;`.
## 3. Do-While Loop Issues
- **Code Snippet:**
cpp
include
using namespace std;
int main() {
i=100;
do {
while(i<12) {
cout << "we want a loop "<<endl;
}
cout << " You are here"<<endl;
}
return 0;
}
- **Issues Identified:**
- `i` should be initialized to `0` to perform 13 iterations over the range.
- The loop will run indefinitely since `i` is not modified within the `while` loop.
- It is suggested to add the statement `i=i+1;` within the scope of the loop to ensure proper iteration.
## 4. Conditional Statements with Logical Operators
- **Objective:** Print "hello" if `a=2` and `b=7` simultaneously.
- **Code Snippet:**
cpp
int a=2;
int b=7;
if ( (a=2)&(b=7) ){
cout << "hello";
}
- **Issues Identified:**
- The `&` operator is incorrect; it should be `&&` to represent logical AND.
- Assignment in the conditional should be `==` instead of `=`. Therefore, it should read: `if ((a==2) && (b==7))`.
## 5. Implicit Conversion in C++
- **Code Snippet:**
cpp
include
using namespace std;
int main() {
int a =12.456;
cout << a;
return 0;
}
```
- Explanation:
- The output is
12instead of12.456, which occurs due to
- The output is