C语言编程中如果出现内存溢出,说明您的程序中出现了内存申请后但是没有释放的情况。内存溢出后会导致程序无法正常运行,从而导致崩溃。

此时要根据错误提示情况,仔细检查代码,特别是指针相关部分,看是哪个地方在申请内存,又是在哪个地方释放的。检查清楚后再修正。希望以上回答可以帮助到您。
这个问题有多种可能,不一而足。
算法有错误,最终计算结果是负数。输出自然会是负数。
超过变量类型的最大取值范围,发生溢出。
例如Turbo C里int是16位,取值范围-32768~32767。如果计算过程当中,数值超过32767,由于补码的关系。结果就有可能是负数。这种情况,就需要使用取值范围更大的数据类型。
出现负数,是因为奇数、偶数的和太大,超过了long(长整型)类型的最大值了。
个数是对的,0-151554545共有151554546个数,其中奇数偶数各有75777273个。
至于for不动了,是for循环进入死循环了,你的编译器中int是2bytes,最大值为32768,当i加到32769的时候,就越界了,成为负数,所以i永远不会大于你输入的151554545这个数值,所以死循环。