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;
}
Nguyễn Minh Dũng viết 18:41 ngày 30/09/2018

if (check=true)

Sửa lại check == true

Lý do tại sao thì xem videos này

#include <stdio.h> #include <stdlib.h> int main() { int x = 0; if (x = 1) printf("x = %d\n", x); else (x = 1) printf(" x = %d\n", x); /* else{ printf("kem\n"); }*/ } Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây : Thông tin về khóa học xem tại đây : -Sự khác biệt giữa 2 khóa học cũ và mới : +Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả. +Trong …
Gió viết 18:32 ngày 30/09/2018

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 "="

Long Long viết 18:36 ngày 30/09/2018

hèn chi. e cảm ơn a.

Long Long viết 18:27 ngày 30/09/2018

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

nhatlonggunz viết 18:29 ngày 30/09/2018

em tưởng chỉ cần if(check) là được rồi chứ nhỉ

Nguyễn Minh Dũng viết 18:40 ngày 30/09/2018

Rất đúng trong trường hợp này ta nên đặt tên biến là isMangChan hoặc mangChan

bool mangChan=kttc(a, n);
if (mangChan) {
    cout << "mang toan so chan ";
} else {
    cout << "mang ko toan so chan";
}
Bài liên quan
0