PoustouFlan's blog

By PoustouFlan, history, 2 years ago, In English

Hello, codeforces!

As I am currently learning C in my computer science classes, I was thinking about trying to solve fundamental 800-1000 problems in C in codeforces.

But... I have no idea why this is happening :

#include <stdio.h>

int main()
{
    size_t n;
    scanf("%zu", &n);
    printf("%zu", n);
}

As a custom invocation, if you give 1 as input, it gives you 2 as output. It gave me random values in other contexts. It seems to behave fine when I use "%ld" instead of "%zu".

Any idea why this happens?

  • Vote: I like it
  • +21
  • Vote: I do not like it

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by PoustouFlan (previous revision, new revision, compare).

»
2 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Quick search shows that Windows might be the problem. At least, it explains why you experience this problem in CF.

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by PoustouFlan (previous revision, new revision, compare).

»
2 years ago, # |
  Vote: I like it +5 Vote: I do not like it

Looking at the scanf documentation, it seems like the %z specifier was introduced by C99, and I think codeforces use C11.

C11 is for the most part a superset of C99.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Oh wow I thought it was the opposite, I just realized it refered to the year two lasts digits ~

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by PoustouFlan (previous revision, new revision, compare).