Kali ini kita akan membuat program untuk menampilkan segitiga yang di dalamnya terdapat segitiga yang lebih kecil.
Pertama kita akan membuat program yang menampilkan segitiga seperti dibawah ini.
#include <stdio.h>
#include <math.h>
int polasegitiga(int n){
for(int i=1;i<;=n;i++){
for(int j=n;j>1;j--){
if(j<;=i)printf("*");
else printf(" ");
}
printf("\n");
}
return 0;
}
int main(){
polasegitiga(5);
return 0;
}
* ** *** ****
Kemudian kita gabungkan “perulangan paling dalam” dari contoh kode pertama dengan "kebalikannya" sehingga menjadi seperti dibawah ini.
#include <stdio.h>
#include <math.h>
int polasegitiga(int n){
int i, j;
i=1;
while(i<=n){
j=n;
while(j>1){
if(j<=i)printf("*");
else printf(" ");
j--;
}
j=1;
while(j<=i){
printf("*");
j++;
}
printf("\n");
i++;
}
return 0;
}
int main(){
polasegitiga(10);
return 0;
}
* *** ***** ******* ********* *********** ************* *************** ***************** *******************
Mari kita “lubangi” segitiganya dan kita ubah parameter fungsi pola segitiga menjadi 11, sehingga tampak seperti di bawah ini.
#include <stdio.h>
#include <math.h>
int polasegitiga(int n){
int i, j, tengah;
i=1;
tengah=(n+1)/2;
while(i<=n){
j=n;
while(j>1){
if(j==i || i==n || (i==tengah && j<i))printf("*");
else printf(" ");
j--;
}
j=1;
while(j<=i){
if(j==i || i==n || (i==tengah && j<i))printf("*");
else printf(" ");
j++;
}
printf("\n");
i++;
}
return 0;
}
int main(){
polasegitiga(11);
return 0;
}
* * * * * * * * * *********** * * * * * * * * *********************
Mari kita bentuk segitiga agar sesuai keinginan kita, yaitu segitiga dalam segitiga. Supaya hasil sesuai keinginan parameter fungsi polasegitiga atau “nilai n” harus ganjil.
#include <stdio.h>
#include <math.h>
int polasegitiga(int n){
int i, j, tengah, silang;
i=1;
tengah=(n+1)/2;
while(i<=n){
silang=n+1-i;
j=n;
while(j>1){
if(j==i || i==n || (i==tengah && j<i))printf("*");
else if (j==silang&&(i>tengah)) printf("*");
else printf(" ");
j--;
}
j=1;
while(j<=i){
if(j==i || i==n || (i==tengah && j<i))printf("*");
else if (j==silang&&(i>tengah)) printf("*");
else printf(" ");
j++;
}
printf("\n");
i++;
}
return 0;
}
int main(){
polasegitiga(11);
return 0;
}
* * * * * * * * * *********** * * * * * * * * * * * * * * * * *********************
Selanjutnya, kalian bisa menambahkan scanf atau cin plus percabangan untuk mengubah nilai variabel n yang digunakan sebagai ukuran segitiga tersebut. Untuk yang itu, kalian seharusnya bisa mencobanya sendiri kalau kalian sudah bisa bahasa C atau C++. Ingat, nilai n-nya harus ganjil!