C语言 while循环练习求代码有解释最好啦

题目要求在命令行输入输入一个数字,然后以另一种方式打印出来 

1,2,3,four,four-1,four-2,four-3,four-four,four-four-1,four-four-2,four-four-3,four-four-four,…以此类推来表达数字(每逢4就换成four)

比如输入8 给出的是four-four 输入13 给出four-four-four-1 

之前试过for循环嵌套 但是总是"-"这里出问题,希望有大神可以指点一下

 

#include<stdio.h>

int main() {
	int n;
	
	scanf("%d",&n);
	
	while(n<4) {
	    printf("%d",n);
	    return 0;
	}
	
	while(n>=4){
	    int a = n/4;
			for(int c =a; c>0; c--) {
					printf("four");
			    	if(a>0) {
				  printf("-");
			    } 
			    
			}
			   
		
	int b = n%4;
		if(b==0){
		    return 1;
		    }else if (b>0){
		    printf("%d",b);
		    return 1;
		}   
		
	} 
}

 

#include<stdio.h>
void main() {
	int n;
	int j;
	int k,m;
	scanf("%d",&n);
	while(1) {
		if(n == 1 || n==2 || n==3) {
			printf("%d",n);
			break;
		} else if( n==4) {
			printf("%s","four");
			break;
		} 
		else {
		    k = n / 4;
			n = n % 4;
			for(j=1; j<=k; j++) {
				if(j==k && n == 0) {
					printf("four");
				} else {
				  printf("four-");
				}
			}
		}
	}
}

 

请说一下你的初始思路