TypeCodes

小心visual studio的“BUG”:变量的声明和使用

昨天一Q友找我帮忙写个C程序:其中函数fun要实现:求出2000到2500之内能被7或者17或者27整除,但是不能同时被7和17整除,也不能同时被17和27整除的整数。题目倒是不难,遂打开visual studio,默默地写出下面的程序。

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 void fun(int *a, int *n) { int i = 2000, sum = 0; for(;i<2501;i++) { if( (i%7==0 || i%17==0 || i%27==0) && (!(i%7==0 && i%17==0)) && (!(i%17==0 && i%27==0)) ) { *a++ = i; sum++; } } /* 返回符合要求元素的个数 */ *n = sum; } int main() { int a[120]; int k; fun(a,&k); /* 使指针pt指向数组a的起始地址 */ int *pt = a; for(;pt<a+120;pt++) { printf("%d\n",*pt); } printf("%d\n",k); return 0; }

然后ctrl+F5执行,结果很意外的报错了:

- 阅读剩余部分 -