我正在编写一些功课(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 ] ); }