Nobody yet has explained why what you are doing is incorrect, apart from saying that it is "wrong".
A string in C is just a bunch of consecutive characters in memory, where the last character in the string has a value of zero. You can store a string in a char array, or you can point to somewhere in memory by using a char pointer (char*).
When you input a decimal number, you are reading individual characters that happen to be in the range '0' through to '9', maybe prefixed by an optional '-'. You read these as a string, and if you want to treat them as integers you need to convert them to an integer data type (instead of a series of char values).
That's where something like atoi helps, although it is no longer fashionable. You should use strtol. [There is a whole family of these functions for dealing with unsigned, long long, or combinations thereof, as well as double and float types].
That tackles roughly half of your question. Now, you are using strcmp and expecting it to work. There are a couple of things wrong with what you are doing. The major error is that you can't treat an integer as a string. If you really want to use string comparison, you have to convert the integer to a string. That means you do the reverse of what strtol does.
That's a bigger discussion, and in your case it is not the correct way so I won't go into it. But I'd like to point out that, all things being equal, you are sending the wrong types to strcmp. It expects two char* pointers (const char *, really). What you have done is dereferenced your input pointer to a char for the first element, and then pass an int for the second.
strcmp(*input,i[0])
A pointer is basically just a number. It gives the memory address of some data. In this case, the data is expected to be char type (single bytes). The strcmp function is expecting valid memory addresses (stuff that's actually in your stack or heap). But what you give it is *input (the value of the first character in your input string) and i[0] (the number 1).
Those compiler warnings were telling you something quite important, you know! =)
So, just for completeness (although others have answered this already), you should forget the string comparisons (and make a mental note to learn more about strings in C), and do this:
int value = strtol( input, NULL, 10 );
if( value == i[0] )
printf("1 chosen");
if( value == i[1] )
printf("2 chosen");
There are other ways to go about this. I could talk about how to convert single-digit numbers from a string, but I think I have already ranted for long enough. Hope this is of some help.