Created
March 17, 2019 09:23
-
-
Save maehrm/2f92c1f6741abf2b39392c3be896b8ce to your computer and use it in GitHub Desktop.
平成28年度秋季試験_基本情報午後問8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#define ON (1) | |
#define OFF (0) | |
void edit(char [], char []); | |
void edit(char pattern[], char value[]) { | |
char fill; | |
int signif; | |
int p, v; | |
fill = pattern[0]; | |
signif = OFF; | |
v = 0; | |
for (p = 0; p < strlen(pattern); p++) { | |
if (pattern[p] == 'w' || pattern[p] == 'b') { /* 表2のケース1〜7の処理 */ | |
if (signif == OFF) { /* ケース1〜5 */ | |
if (pattern[p] == 'w' && value[v] == '0') { | |
/* 何もしない */ | |
} | |
else { | |
if (value[v + 1] != '+') { | |
signif = ON; | |
} | |
} | |
if (value[v] == '0') { | |
pattern[p] = fill; | |
} | |
else { | |
pattern[p] = value[v]; | |
} | |
} | |
else { /* ケース6,7 */ | |
if (value[v+1] == '+') { | |
signif = OFF; | |
} | |
pattern[p] = value[v]; | |
} | |
v++; | |
} | |
else { /* 表2のケース8,9の処理 */ | |
if (signif == OFF) { | |
pattern[p] = fill; | |
} | |
} | |
} | |
} | |
int main(void) { | |
char pattern[][9] = { | |
" ww,www", | |
"*ww,www#", | |
"*www.ww#", | |
"*wwb.ww#" | |
}; | |
char value[][7] = { | |
"01234+", | |
"00000+", | |
"00012-", | |
"00012+" | |
}; | |
int i, size = sizeof pattern / sizeof pattern[0]; | |
for (i = 0; i < size; i++) { | |
edit(pattern[i], value[i]); | |
printf("%s\n", pattern[i]); | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment