#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(){
//  Deklarasi Variabel
	int n;
	int i;
//  Masukkan untuk indeks pemesanan memory pada saat malloc nanti
	printf("Masukkan Jumlah Mahasiswa: ");
	scanf("%d",&n);
	
//  Melakukan Malloc
//  variabel nama di pesan sebanyak n. AKan tetapi setiap block memory itu 
//  memiliki 100 jumlah data bertipe char "(*nama)[100]"

//  Begitu juga variabel dari nim, yang mempunyai tipedata sebanyak 20 dan 
//  memesan memory sebanyak n.
	char (*nama)[100] =malloc(sizeof(char[100])*n);
	int (*nim) = malloc(sizeof(int[20])*n);
	
//  looping untuk memasukkan data (Dynamic) sebanyak n
	for(i = 0; i < n; i++){
		printf("Masukkan Nama Mahasiswa ke-%d: ",i+1);
		// %[^\n]%*c adalah regex, agar bisa memanipulasi masukan spasi
		scanf(" %[^\n]%*c",&nama[i]);
		printf("Masukkan Nim Mahasiswa ke-%d: ", i+1);
		scanf("%d",&nim[i]);
	}
//  Looping untuk mengeluarkan output dari pada array
	for( i = 0; i < n; i++ ){
		printf("Data Mahasiswa ke-%d\n",i+1);
		
		printf("Nama : %s\n",nama[i]);
		printf("NIM : %d\n",nim[i]);
		printf("\n");
	}
	return 0;
}