01/10/2018, 14:32
Sửa lỗi was not declared in this scope (C++)
Em vừa chuyển sang học C++ và viết thử một đoạn chương trình thì bị lỗi này mặc dù đã khai báo biến rồi. Mong mọi người giải thích giúp em lý do và cách khắc phục ạ.
Em cám ơn.
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
#define maxN 50
#define inf 32000
int n,nn,k,p,t[maxN],d[maxN],tt[maxN],u,v,mind;
vector<int> M[maxN];
void bfs(int s){
for(int i=1;i<=n;i++)
d[i]=inf;
queue<int> q; //Khai báo queue q
q.push(s); d[s]=0;
while(!q.empty()){
u=q.front(); //u là phần tử đầu queue
q.pop(); //xóa phần tử đầu queue
for(int i=0;i<M[u].size();i++){
v=M[u][i]; //v là đỉnh kề u
if (d[v]==inf){ //nếu v chưa thăm
q.push(v);
d[v]=d[u]+1;
}
}
}
}
int main ()
{
freopen("robot.inp","r",stdin);
freopen("roboot.out","w",stdout);
scanf("%d %d %d %d",&n,&nn,&k,&p);
for(int i=1;i<=p;i++)
{
scanf("d%",&tt[i]);
}
for(int i=1;i<=nn;i++)
{
scanf("%d %d %d",&u,&v,&k);
if (k=1)
{
M[u].push_back(v);
M[v].push_back(u);
}
}
for (int j=1;j<=p;j++)
{
bfs(tt[j]);
for (int i=1;i<=n;i++)
{
t[i]=0;
T[i]=t[i]+d[i];
}
}
for (int i=1;i<=n;i++)
{
if (d[i]>inf && D[i]<mind)
mind=d[i];
}
printf("%d",mind);
return 0;
}

Bài liên quan
:3 Từ pascal sang C++ đúng không?
Vậy thì C++ phân biệt t và T nhé.
Thứ nhất, đúng như drgnz nói, có vẻ như bạn đang bị lẫn lộn Pascal với C++ (code của bạn có >=2 chỗ sai như nhau: T với t, D với d), Pascal không phân biệt hoa thường nhưng C++ thì có. Bạn nên phân biệt rõ sự khác nhau này.
[spoiler]Code viết Pascal mà cứ t với T lẫn lộn rất xấu, ngày xưa không có ai dạy bạn viết code sạch hơn sao?[/spoiler]
Thứ 2, cả đoạn này có vấn đề
Hình như phải là
chứ nhỉ?
Thứ 3, góp ý về cách code: Đã dùng C++ thì code cin cout luôn chứ scanf printf làm gì, đừng code kiểu nửa C nửa C++ như thế, xấu lắm.
Tks bạn, mình vừa chuyển từ Pascal sang nên chưa nhuyễn lắm. Còn phần dùng scanf printf là do thầy mình chỉ và bảo là nó đọc file nhanh hơn @@~
Có vẻ như bạn ở team code competitive programming…
Nên dùng printf scanf trong những trường hợp cần thiết thôi. Còn lại thì đừng dùng cho code đỡ xấu.
desync với stdio là xong vẫn dùng cin cout được.
Vâng, tks mọi người ạ, có gì mình sẽ xem lúc nào cần dùng với không cần :v