fgets(), sscanf(); でコンパイルできないのでしょうか?
学校の計算機でも、家のコンパイルでもこの方法でコンパイルはできますし・・・

私が言うのもなんですが、fgets(); sscanf(); にこだわってる方の考え方はおかしくないですか?
「;」の記号は宣言を終わらせる時に付けるものなんですよね?

>>115において「;」を極力用いずに表現すれば、

#include <stdio.h>
int main(void){
int i, j, n;
char buf[80];
fgets(buf, 80, stdin), sscanf(buf, "%x %x", &i, &j), n = i * j, printf("%x\n", n);
}

これでいいんですよ。一体何にこだわってるのか教えていただきたいのですが・・・
一からやり直したほうがいいんじゃないですか?