Çözüldü C Kodundaki hata ne?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

KAANYTD

Femtopat
Katılım
28 Mart 2021
Mesajlar
66
Daha fazla  
Cinsiyet
Erkek
1617620896815.png


Arkadaşlar Z'yi 6 ya eşitlemem rağmen üstte yazdığım değeri de yanına yazıyor. Nasıl düzeltebilirim?
 
Çözüm
Bu sefer Z :62 değerini yazdı.
Çünkü üsteki printf 1 karakter fazla ve aşağıdaki printf onun tüm karakterlerini kaplayamıyor. \r'nin yaptığı şey karakterlerin üstüne yazmak. Anladın mı?

Yani asıl yapman gereken bu;

C:
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  int x,y,z;

  x = 5;
  y = 7;
  z = 2;

  x = y;
  y = x + z + 1;

  printf("x:%d y:%d z:%d", x, y, z);

  system("clear");

  x = 4;
  y = 5;
  z = 6;

  printf("x:%d y:%d z:%d", --x, ++y, z++);

  return 0;
}

Ama bu da anlamsız. Bunun yerine üstteki printf'i sil.
++ Operatörü başa gelirse önce 1 ekler sonra ekrana bastırır. Sona gelirse önce ekrana bastırır sonra 1 ekler.

Yapman gereken:
C:
z++;
printf("%d", z);

//ya da

printf("%d", ++z);
 
++ Operatörü başa gelirse önce 1 ekler sonra ekrana bastırır. Sona gelirse önce ekrana bastırır sonra 1 ekler.

Yapman gereken:
C:
z++;
printf("%d", z);

//ya da

printf("%d", ++z);

Dostum bende biliyorum fakat Z:2:6 değerini almamın nedeni ne diğer X ve Y değişkeninde aynı sorunu yaşamadım.
 
Dostum ben de biliyorum fakat Z:2:6 değerini almamın nedeni ne? Diğer X ve Y değişkeninde aynı sorunu yaşamadım.
Çünkü önceki satırın üstüne yazıyor. Önceki satırda da fazladan bir boşluk olduğu için 2 yanına geliyor. printf("\r"); yerine printf("\n"); yazarsan anlayacaksın.
 
Dostum bende biliyorum fakat Z:2:6 değerini almamın nedeni ne diğer X ve Y değişkeninde aynı sorunu yaşamadım.
Kod bu ise eğer bende hatasız çalıştı.
C:
#include <stdio.h>

int main()
{
    int x, y, z;
    x= 5;
    y=7;
    z=2;
    x = y;
    y= x+z+1;
    printf("x:%d y:%d z:%d", x,y,z);
    printf("\r");
    x = 4;
    y=5;
    z=6;
    printf("x:%d y:%d z:%d", --x,++y,z++);
    return 0;
}
 
Çünkü önceki satırın üstüne yazıyor. Önceki satırda da fazladan bir boşluk olduğu için 2 yanına geliyor. printf("\r"); yerine printf("\n"); yazarsan anlayacaksın.

X, Y, Z değerlerini okumayıp sadece alta yazdığım değeri okuması için kullanmam gereken bir kod var mı?
Kod bu ise eğer bende hatasız çalıştı.
C:
#include <stdio.h>

int main()
{
int x, y, z;
x= 5;
y=7;
z=2;
x = y;
y= x+z+1;
printf("x:%d y:%d z:%d", x,y,z);
printf("\r");
x = 4;
y=5;
z=6;
printf("x:%d y:%d z:%d", --x,++y,z++);
return 0;
}

Bende Z'nin hem üstteki değerini hem de alttaki değerini bastı.
 
X, Y, Z değerlerini okumayıp sadece alta yazdığım değeri okuması için kullanmam gereken bir kod var mı?
Sadece son atadığın değerlerin yazdırılmasını istiyorsan üstteki printf'te Z'nin önündeki boşluğu silmen ve \r kullanman gerek.
Bende Z'nin hem üstteki değerini hem de alttaki değerini bastı.
\n'yaptığın için öyle oldu. \r ile \n'in farkı bu.

Diğer bir yöntem de clrscr(); methodunu kullanarak konsolu komple temizlemek. Bunun için #include <conio.h> tanımlamasını yapman gerek.
 
Sadece son atadığın değerlerin yazdırılmasını istiyorsan üstteki printf'te Z'nin önündeki boşluğu silmen ve \r kullanman gerek.

\n'yaptığın için öyle oldu. \r ile \n'in farkı bu.

Diğer bir yöntem de clrscr(); methodunu kullanarak konsolu komple temizlemek. Bunun için #include <conio.h> tanımlamasını yapman gerek.

1617622317979.png


Bu sefer Z :62 değerini yazdı.
 
Bu sefer Z :62 değerini yazdı.
Çünkü üsteki printf 1 karakter fazla ve aşağıdaki printf onun tüm karakterlerini kaplayamıyor. \r'nin yaptığı şey karakterlerin üstüne yazmak. Anladın mı?

Yani asıl yapman gereken bu;

C:
#include <stdio.h>
#include <stdlib.h>

int main(void) {
  int x,y,z;

  x = 5;
  y = 7;
  z = 2;

  x = y;
  y = x + z + 1;

  printf("x:%d y:%d z:%d", x, y, z);

  system("clear");

  x = 4;
  y = 5;
  z = 6;

  printf("x:%d y:%d z:%d", --x, ++y, z++);

  return 0;
}

Ama bu da anlamsız. Bunun yerine üstteki printf'i sil.
 
Çözüm

Yeni konular

Geri
Yukarı