Sizin algoritmanız daha uzun olsa da çalışır.
for(i=0;i<100;++i)

Siyah yeri i++ ile değiştirmeniz gerekiyor.
Başka bir önerim ise döngülerde gereksiz karakterleri kontrol etmemeniz.Kırmızı ile belirttiğim yere strlen(str) yazmanız yeterli olacaktır.

Kolay gelsin.

Sonuç;

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

    int main(){
        
    char str[100]; 
    int i;           
    gets(str); 
    for(i=0;i<strlen(str);i++)
	{
                     if(str[i]==' ')
                     printf("\n");
                     else
	                 printf("%c",str[i]);
    }
	return 0;
}