C homework – 编译代码时发现的木马

我正在编写一些功课(101级).当我尝试编译代码时,我得到了一些来自防御者的病毒警报:
#include <stdio.h>

int main ( void ) {
int numbers [10];
int i,temp;

for (i = 1; i <= 10; ++i)
    numbers[i] = 0;

printf("Enter up to 10 integers. input '-1' to finish \n");

for (i = 0; i < 10; i++) {
    scanf("%d",&temp);
    if (temp == -1) {
        break;
    } else {
        numbers [i] = temp - 1;
    }
}

for (i = 1; i <= 10; ++i)
    printf("the numbers are: %d\n",numbers[i]);

return 0;
}

我相信问题在于这段代码

for (i = 1; i <= 10; ++i)
        numbers[i] = 0;

为什么木马病毒警报?我做了什么?

解决方法

不要注意一些防病毒程序将已编译的项目识别为病毒,它与visual studio一样,只需在您的防病毒列表中添加例外.
但是你的代码确实存在一些问题.

> for(i = 1; i< = 10; i)是不正确的,因为C中的数组从0开始,第二个初始化变量你不需要为循环执行,你可以像任何其他变量一样为它们赋值.
> numbers [i] = temp – 1在数组中存储值的方式不太好,因为在执行-1时,您正在改变输入的值.

一个

/*For the array initialization.*/
int numbers[10] = { 0,0 };
/*For inputing the values.*/

for ( i = 0; i < 10; i++ ){
    scanf( "%d",&temp );
    if( temp == -1 ){
        numbers[ i ] = -1;
        break;
    else{
        numbers[ i ] = temp;
    }
}
/*For the printing. */

for( i = 0; i < 10 ; i++ ){
    if( numbers[ i ] == -1 ){
        break;
    }
    printf( "numbers[%d] is %d",i,numbers[ i ] );
}

相关文章

/** C+⬑ * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝...
#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运...
C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译...
//异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try...
#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问...
目录&lt;future&gt;future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程...