Dạ cho em hỏi đoạn code này với ạ.
em dùng code này em run trên vsc :
#include <iostream>
using namespace std;
int gcd(int a, int b){
if (a == 0 || b == 0){
return a + b;
}
while (a != b){
if (a > b){
a -= b;
}else{
b -= a;
}
}
return a;
}
int main(){
int n;
cout<<n;
int arr[n];
cin>>n;
int dem =0;
for(int i=0;i<n;i++){
cin>>arr[i];
for(int j=0; j<=i;j++){
if(gcd(arr[i],arr[j]) == 1 && arr[i] != arr[j]){
dem++;
}
}
}
}
thì in n là bằng 0;
Còn đoạn này thì in ra giá trị rác của n:
#include <iostream>
using namespace std;
int gcd(int a, int b){
if (a == 0 || b == 0){
return a + b;
}
while (a != b){
if (a > b){
a -= b;
}else{
b -= a;
}
}
return a;
}
int main(){
int n;
cout<<n;
int arr[n];
cin>>n;
int dem =0;
for(int i=0;i<n;i++){
cin>>arr[i];
}
}
Em cố tình để cái arr[n] ở đằng sau cin>>n; (giá trị rác n quá lớn , mà đặt khởi tạo mảng trong main với chỉ số lớn làm ngừng chương trình) nên mọi người không cần chỉ chỗ sai này đâu ạ.
Em thắc mắc là tại sao khi khôgn khởi tạo thì cả hai đều in ra giá trị rác chứ ạ.