mainと関数で分割したいのですが、出力部分を関数にする方法を思いつきませんでした。
申し訳ありませんがご教授お願いします。
入力
1 Homecoming King
2 We Don't Have to Dance
3 Ribcage
4 Stay Alive
5 Love was Made to Break
6 Beautiful Pain
7 Put the Gun Down
8 Drown Me Out
9 Paint it Black
10 Break Your Halo
11 Louder Than Your Love
12 Broken Pieces
13 The Void
期待する結果
1 Homecoming King
7 Put the Gun Down
2 We Don't Have to Dance
8 Drown Me Out
3 Ribcage
9 Paint it Black
4 Stay Alive
10 Break Your Halo
5 Love was Made to Break
11 Louder Than Your Love
6 Beautiful Pain
12 Broken Pieces
13 The Void
プログラム本体
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINELEN 128
char *Scan_line( char s[] );
int main(void)
{
int count=0, i=0, j=0;
char s[LINELEN+1];
char *P_line[LINELEN];
char *line[LINELEN];
char *scan_line = NULL;
char *tmp = NULL;
scan_line = malloc( sizeof(int)*LINELEN );
tmp = malloc( sizeof(int)*LINELEN );
while (fgets(s, LINELEN, stdin) != NULL) {
scan_line = Scan_line( s );
P_line[ count ] = scan_line;
line[ count ] = scan_line;
count++;
}
/* ここから */
for( i=0; i<count; i++ ){ line[i] = P_line[i]; }
for( i=0; i<count; i++ ){
if( (i+1) % 2 == 0 ){
line[i] = P_line[count/2 + j];
j++;
}
else{
line[i] = P_line[i/2];
}
}
for( i=0; i<count; i++){ printf( "%s", line[i]); }
/* ここまで */
free(scan_line);
return 0;
}
char *Scan_line( char s[] ){
int i;
char *line = NULL;
line = malloc( sizeof(char)*(strlen(s)+1) );
for( i = 0; s[i]!='\0'; i++ ){
line[i] = s[i];
}
line[i] = '\0';
return line;
}