以下のソースプログラムに関して質問したいと思っています。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
char bin[100];
char bin2[100];
char *p;
int pcnt;
int error;
int i;
/* 乱数を初期化する */
srand(time(0));
/* データを入力する */
printf("Error Rate (%%) ? "); scanf("%d", &pcnt);
while(1) {
printf("Binary Data ? "); scanf("%s", bin);
p = bin;
/* 入力情報をコピーする */
strcpy(bin2, bin);
/* 実行の打ち切り */
if( *p != '0' && *p != '1') break;
for(i = 1; i <= 100; i++){
/* 入力情報を戻す */
strcpy(bin, bin2);
/* 番地を戻す */
p = bin;
/* 確率pcnt%でのノイズ混入を実行する */
while( *p != '\0' ) {
error = (int)rand()%100 < pcnt;
if( error ) {
if( *p == '0') *p = '1';
else *p = '0';
}
p++;
}
printf("%s\n", bin);
}
}
return 0;
}
このプログラムを実行すると、
Error Rate? 0%(入力)
Binary Data? 00000(入力)
00000
00000
・・・
00000
と出力をするのですが・・・この出力を
0 0 0 0 0
0 0 0 0 0
・・・
0 0 0 0 0
としたいと思ってます。しかし先ほど質問した出力に間隔をあける方法が使えません。
この場合は何か間隔をあける方法はあるのでしょうか?
何かアドバイスを下さい。よろしくお願いします。