30/09/2018, 16:26
Lỗi logic ở dòng if else không biết cách sửa
Sáng giờ e mò mà ko hiểu tại sao nó ko chạy dòng else cứ tới if rồi return 0 luôn. Lúc nào cung “mang toàn chẵn hết” khó hiểu
// giai bai tap mang 1 chieu co ban.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
#define MAX 100
//nhap mang
void nhapmang(int a[], int &n)
{
cout << "nhap phan tu n=";
cin >> n;
for (int i = 0; i < n; i++)
{
cout << "nhap phan tu a[" << i << "]"<<":";
cin >> a[i];
}
}
// in mang
void inmang(int a[], int n)
{
cout << "mang sau khi nhap:"<<endl;
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
}
/////////////dang toan kiem tra////////////
/////dung bool//////////////
//kiem tra mang toan chan
bool kttc(int a[], int n)
{
for (int i = 0; i < n; i++)
{
if (a[i] % 2 != 0)
{
return false;
}
}
return true;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[MAX];
int n;
////////////////////////////////
nhapmang(a, n);
inmang(a, n);
/////////kiem tra toan chan//////
bool check=kttc(a, n);
if (check=true)
{
cout << "mang toan so chan ";
}
else
cout << "mang ko toan so chan";
return 0;
}
Bài liên quan
Sửa lại
check == true
Lý do tại sao thì xem videos này
Bạn viết if(check=true) tức là gán check= true, sau đó lệnh if sẽ kiểm tra biến check, vì thế else không bao giờ chạy. Thay “==” cho "="
hèn chi. e cảm ơn a.
lúc đầu định tự mò ko hỏi. mà giờ thấy mình đã làm đúng. trc giờ chưa nge thầy nói if(check=true) là gán check=true. mình chỉ biết vs câu lệnh if lúc nào cũng phải dùng ==. hi
em tưởng chỉ cần
if(check)
là được rồi chứ nhỉRất đúng trong trường hợp này ta nên đặt tên biến là
isMangChan
hoặcmangChan