01/10/2018, 16:20

Trong hàm CHECK(int n,int a[ ]) khi em return a[i] về và sau đó sử dụng câu lệnh break; mà vẫn bị lặp lại 3 lần

//Bài 143: Vi?t hàm tìm s? ch?n d?u tiên trong m?ng các s? nguyên. N?u m?ng không có giá tr? ch?n thì tr? v?  -1
// viet ham timso chan dau tien trong mang cacc so nguyen. neu mang khong cos gia tri chan thi tra ve -1

~~~
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;

int nhap(int n,int a[]){
	for(int i=0;i<=n;i++){
		cin>>a[i];
	}
}

int xuat(int n,int a[]){
	for(int i=0;i<=n;i++){
		cout<<a[i]<<" ";
	}
}
int check(int n,int a[]){
	int min=1000;
	for(int i=0;i<=n;i++){
		if(a[i]%2 ==0){
			cout<<a[i];
			return a[i];
			break;
		}
	}
	return -1;
	
}
int main(){
	int n,a[100];
	int c;
	cin>>n;
	
	nhap(n,a);
	xuat(n,a);
	
	check(n,a);
	c=check(n,a);
	cout<<c<<endl<<"/";
}
<img src="https://daynhauhoc.com//daynhauhoc.s3-ap-southeast-1.amazonaws.com/original/3X/3/2/3248375e94642b8b33f7c18e3c1dc89d4e94d278.png" width="476" height="202">
NBQ viết 18:26 ngày 01/10/2018

Trong hàm CHECK(int n,int a[ ]) khi em return a[i] về và sau đó sử dụng câu lệnh break; mà vẫn bị lặp lại 3 lần

Vấn đề lặp lại 3 lần là bởi vì bạn gọi hàm hai lần đầu sẽ in ra 2 lần bởi lệnh cout<<a[i]; lần thứ 3 là bởi vì bạn đã gán c = check(n,a); trước đó rồi in ra c bởi lệnh cout<<c<<endl<<"/";
Trong một chương trình, khi gặp lệnh return chương trình sẽ kết thúc hàm đang thực hiện ngay sau đó, cho dù phần phía sau vẫn còn nhiều dòng lệnh khác nữa thì chúng cũng không được thực hiện.

Bài liên quan
0