IMHO by to mělo ten sin ukončit nulou (a velikost by měla sedět (100+'\0'=101)
• An optional decimal integer which specifies the maximum field width. Reading of characters stops either when this maximum is reached or when a nonmatching character is found, whichever happens first. Most conversions discard initial white space charac‐
ters (the exceptions are noted below), and these discarded characters don't count toward the maximum field width. String input conversions store a terminating null byte ('\0') to mark the end of the input; the maximum field width does not include this
terminator.
Ale netestuješ tam návratovou hodnotu toho scanf (měla by být 1 protože hledáš právě 1 výraz).
Zkoušel jsem to, ale nějak se mi nepodařilo tu chybu navodit, nebo jsem něco přehlédnul...