我正在编写一些功课(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;
}
Run Code Online (Sandbox Code Playgroud)

我相信问题在于这段代码:
for (i = 1; i <= 10; ++i)
numbers[i] = 0;
Run Code Online (Sandbox Code Playgroud)
为什么木马病毒警报?我做了什么?
不要注意一些防病毒程序将已编译的项目识别为病毒,它与visual studio一样,只需在您的防病毒列表中添加例外.但是你的代码确实存在一些问题.
for (i = 1; i <= 10; ++i) 是不正确的,因为C中的数组从0开始,第二次初始化您不需要为循环执行的变量,您可以像任何其他变量一样为它们赋值.numbers [i] = temp - 1 将值存储在数组中的方式并不是很好,因为当您执行-1时,您正在更改输入的值.一个
/*For the array initialization.*/
int numbers[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
Run Code Online (Sandbox Code Playgroud)
/*For inputing the values.*/
for ( i = 0; i < 10; i++ ){
scanf( "%d", &temp );
if( temp == -1 ){
numbers[ i ] = -1;
break;
else{
numbers[ i ] = temp;
}
}
Run Code Online (Sandbox Code Playgroud)
/*For the printing. */
for( i = 0; i < 10 ; i++ ){
if( numbers[ i ] == -1 ){
break;
}
printf( "numbers[%d] is %d", i, numbers[ i ] );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |