C
Sayı yardımcıları
Sayı dönüşüm ve hesaplama fonksiyonlarını eklersin.
Sayı yardımcıları
Üçüncü ders num_abs ve num_sign fonksiyonlarını tanımlar. num_abs, bir sayının mutlak değerini döndürür; num_sign, sayının işaretini (+1, 0, -1) verir.
num_abs için tek satırlık bir ternary yeter: return n < 0 ? -n : n;. num_sign, üç durumlu olduğu için if zinciriyle yazılır. Bu fonksiyonlar, matematik ve istatistik hesaplamalarında sık kullanılır. Önceki dersin çözümü başlangıç koduna dahildir; sen yeni fonksiyonları eklersin.
num_sign uygulaması
num_sign, üç olası değer döndürür: +1 (pozitif), 0 (sıfır) ve -1 (negatif). En doğal yazım if zinciridir.
Örnek: int num_sign(int n) { if (n > 0) return 1; if (n < 0) return -1; return 0; }. İlk if pozitifleri yakalar, ikincisi negatifleri; kalan durum sıfırdır. Bu desen, üçlü mantık gerektiren işaret, yön ve karşılaştırma fonksiyonlarında yaygındır. else kullanmadan da yazılabilir; erken dönüş sayesinde.
Uygulama num_abs ve num_sign'i ekle
Var olan tanımların altına int num_abs(int n) yaz; return n < 0 ? -n : n; döndürsün. int num_sign(int n) yaz; pozitifse 1, negatifse -1, sıfırsa 0 döndürsün. main içine printf("%d\n", num_abs(-7)); ve printf("%d\n", num_sign(-5)); satırlarını ekle.
Örnek çözümü göster
#include <stdio.h>
int str_len(const char *s);
int str_is_empty(const char *s);
int num_abs(int n);
int num_sign(int n);
int arr_max(int *a, int n);
int arr_sum(int *a, int n);
int str_len(const char *s) {
int n = 0;
while (*s) { n++; s++; }
return n;
}
int str_is_empty(const char *s) {
return str_len(s) == 0;
}
int num_abs(int n) {
return n < 0 ? -n : n;
}
int num_sign(int n) {
if (n > 0) return 1;
if (n < 0) return -1;
return 0;
}
int main(void) {
printf("Modül hazır\n");
printf("%d\n", str_len("Merhaba"));
printf("%d\n", str_is_empty(""));
printf("%d\n", num_abs(-7));
printf("%d\n", num_sign(-5));
return 0;
}
Kendini test et
-
num_abs ternary'i tamamla
int num_abs(int n) {
return n < 0 ? ____ : n;
}
Cevabı göster
int num_abs(int n) {
return n < 0 ? -n : n;
}
-
Sayı yardımcılarını eşle
- num_abs(-7)
- 7 (negatif giriş)
- num_abs(7)
- 7 (pozitif giriş)
- num_sign(-5)
- -1 döndürür
- num_sign(0)
- 0 döndürür
-
num_sign(-5) ne döndürür?
Cevabı göster
-1 — num_sign negatif için -1 döndürür.
Sıradaki ders: Dizi yardımcıları