SORU
31 Temmuz 2012, Salı


Hiç C görmediği için döngü

C C algorithmn dönüştürme olduğum#. -Döngü İÇİN bu geldi:

for (u = b.size(), v = b.back(); u--; v = p[v]) 
b[u] = v;

C hata veriyor ama C Yok# int bool dönüştürmek olamaz (). Ben gerçekten bir döngü için bu anlamaya olamaz, durumdur nerede?

Biri bana açıklayabilir mi lütfen?

PS. Sadece, bir LİSTE için bir VEKTÖR uyum kontrol etmek için yapar b.()geri karşılık b[b.Count-1] ?

CEVAP
31 Temmuz 2012, Salı


Doğru yanıtlar bir sürü, ama döngü sırasında eşdeğer yazmaya değer olduğunu düşünüyorum.

for (u = b.size(), v = b.back(); u--; v = p[v]) 
   b[u] = v;

Eşittir:

u = b.size();
v = b.back();
while(u--) {
   b[u] = v;
   v = p[v];
}

Bu süre için yeniden düzenleme düşünebilirsiniz() C tercüme olarak format#. Bence daha net, yeni programcılar için bir tuzak daha az ve eşit derecede etkilidir.

Diğerleri C -- ama benim cevabım -- çalışma yapmak için tam yapmak belirttiği gibi# while(u-- != 0) while(u--) değiştirmek gerekir.

... ya da sadece durum u while(u-- >0) başlıyor negatif. (TAMAM, b.size() asla başka bir şey u başlatıldığını nerede negatif ... ama genel bir durum düşünün).

Ya da, bunu daha belirgin hale getirmek için:

u = b.size();
v = b.back();
while(u>0) {
   u--;
   b[u] = v;
   v = p[v];
}

Kısa ve öz olması daha açık olmak daha iyidir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • Wii Minute Radio

    Wii Minute R

    31 Mayıs 2008