Hi,
I wrote the following code, which basically tries to enlist all primes within a certain range.
[c]
#include <string.h>
#include <math.h>
int p[35000];
int li[5000];
int c;
void precalc()
{
int i, j;
memset(&p, 0, sizeof(p));
memset(&li, 0, sizeof(li));
c = 0;
p[1] = 1; p[2] = 0;
for (i = 2; i < 35000; i++)
{
if (!p)
{
for(j = i + i; j <= 35000; j += i) p[j] = 1;
li[c++] = i;
}
if (i < 10) printf("%d\n", li[0]);
}
}
int main()
{
int i, j, k, l, pr, t, fr, to;
precalc();
scanf("%d", &t);
for (i = 0; i < t; i++)
{
if (i) printf("\n");
scanf("%d %d", &fr, &to);
if (fr <= 1) fr++;
for (j = fr; j <= to; j++)
{
k = (int) (sqrt(j));
pr = 1;
for (l = 0; l < c && li[l] <= k; l++)
if (j % li[l] == 0) { pr = 0; break; }
if (pr) printf("%d\n", j);
}
}
return 0;
}
[/c]
When I tried to run it after compiling it using GCC 3.3, the value of li[0] changed from 2 to 1 after it finishes the precalc() function. It's rather bizzare because I don't see why the value of li[0] can change like that.
Can anyone help me? Thx in advance.
Strange behaviour under GCC 3.3
Write here if you have problems with your C source code
Moderator: Board moderators
-
- New poster
- Posts: 31
- Joined: Sat Nov 17, 2001 2:00 am
- Contact:
Jump to
- Real Time Contests and Last Minute Information
- ↳ General
- ↳ Real Time Clarification
- ↳ Fixing Mistakes
- ↳ HOWTOs
- ↳ Bugs and suggestions
- New system
- ↳ FAQ
- ↳ Bugs and suggestions
- Let's make some programs!
- ↳ Other words
- ↳ Algorithms
- ↳ New features
- Help on the Problemset
- ↳ Volume 1 (100-199)
- ↳ Volume 2 (200-299)
- ↳ Volume 3 (300-399)
- ↳ Volume 4 (400-499)
- ↳ Volume 5 (500-599)
- ↳ Volume 6 (600-699)
- ↳ Volume 7 (700-799)
- ↳ Volume 8 (800-899)
- ↳ Volume 9 (900-999)
- ↳ Volume 10 (1000-1099)
- ↳ Volume 11 (1100-1199)
- ↳ Volume 12 (1200-1299)
- ↳ Volume 13 (1300-1399)
- ↳ Volume 14 (1400-1499)
- ↳ Volume 15 (1500-1599)
- ↳ Volume 16 (1600-1699)
- ↳ Volume 17 (1700-1799)
- ↳ Volume 100 (10000-10099)
- ↳ Volume 101 (10100-10199)
- ↳ Volume 102 (10200-10299)
- ↳ Volume 103 (10300-10399)
- ↳ Volume 104 (10400-10499)
- ↳ Volume 105 (10500-10599)
- ↳ Volume 106 (10600-10699)
- ↳ Volume 107 (10700-10799)
- ↳ Volume 108 (10800-10899)
- ↳ Volume 109 (10900-10999)
- ↳ Volume 110 (11000-11099)
- ↳ Volume 111 (11100-11199)
- ↳ Volume 112 (11200-11299)
- ↳ Volume 113 (11300-11399)
- ↳ Volume 114 (11400-11499)
- ↳ Volume 115 (11500-11599)
- ↳ Volume 116 (11600-11699)
- ↳ Volume 117 (11700-11799)
- ↳ Volume 118 (11800-11899)
- ↳ Volume 119 (11900-11999)
- ↳ Volume 120 (12000-12099)
- ↳ Volume 121 (12100-12199)
- ↳ Volume 122 (12200-12299)
- ↳ Volume 123 (12300-12399)
- ↳ Volume 124 (12400-12499)
- ↳ Volume 125 (12500-12599)
- ↳ Volume 126 (12600-12699)
- ↳ Volume 127 (12700-12799)
- ↳ Volume 128 (12800-12899)
- ↳ Volume 129 (12900-12999)
- ↳ Volume 130 (13000-13099)
- ↳ Volume 131 (13100-13199)
- Help on languages
- ↳ C
- ↳ C++
- ↳ Pascal
- ↳ Java
- Off Topic
- ↳ Off topic (General chit-chat)
- Category
- ↳ ACM ICPC Archive Board