Öyleyse, çıktının, yıldızların bir pırlantası gibi görünmesini sağladım, her sıra ortadaki 9 yıldıza kadar 2 yıldız kadar artar ... ve sonra satırlar azalır. fonksiyon ana olmak zorunda: Ödevlerimin karşı-kontrollü tekrar ve argümanlarla ilgili olarak biraz yardım alabilir miyim?
int main (void){
int i;
i = 0;
while (i < 5){
printline (4-i, i*2+1);
i = i + 1;
}
i = 3;
while (i >= 0) {
printline (4-i, i*2+1);
i = i - 1;
}
return 0;
}
Şimdi şekil denir, her zaman tek bir satır yazdırmak için fonksiyon Printline tanımlamak gerekiyor. 2 argüman, boşluk sayısı ve satırda basılması gereken yıldız sayısı alır. Uygun sayıda alan basmak ve uygun sayıda yıldız yazdırabilmek için sayaç kontrollü tekrarlamayı kullanın.
char print_line (int spaces, int stars){
for (int i = 4; i>=spaces; i--){
printf(" ");
}
for (int i = 1; i<=stars; i+=2){
printf("*");
}
printf("\n");
}
Woohoo! İşim bitmek üzere! Çıktılar kinda sağda, bir yıldız ile 4 boşluklu bir çizgi yerine, 3 yıldız ile 3 boşluklu bir çizgi, ve hiçbir yere ve 9 yıldıza kadar, (ve sonra tersine dönüyor) ... Bir hat alıyorum bir yıldız, bir alan ve 2 yıldızlı bir çizgi, iki boşluklu bir çizgi üç yıldız, vs, en fazla 4 boşluk beş yıldız (ve sonra tersine çevirir) ...
Baskı hattının farklı olmasının nedeni, yazım sorunlarım var çünkü bunu yazmak için çalıştı zaman bu bazen ben ... italik alma konusunda
Derleyici neden baskı hattını işlemek için çok fazla argüman olduğunu söylüyor? – Kaity
Eğer "printline" denilen fonksiyona çok fazla parametre aktarıyorsanız bunu söyleyecektir. Örneğin, yukarıda verdiğiniz örnekte, yazdırma hattının iki resmi parametresi vardır. Eğer bunu "printline (1, 2, 3)" olarak adlandırdıysanız, çok fazla parametre ile çağırıyor olsaydınız –
Geçtiğiniz parametrelerin sayısı, resmi parametrelerin sayısına eşittir –