# Simple program to fill an array

#include <stdio.h>
int main()
{
double sum, theta[100];
int i;
sum = 0.0;
i = 0;
while (i < 100)
{
sum = sum + theta;
i = i + 1;
}
printf("The sum of the array is %lf\n", sum);

}

when i run it i get a wrong answer....i dont know how to initialize the array

Related Programming and Computer Science News on Phys.org
#include <stdio.h>
int main()
{
double sum, theta[100];
int i;
sum = 0.0;
i = 0;
while (i < 100)
{
sum = sum + theta;
i = i + 1;
}
printf("The sum of the array is %lf\n", sum);

}

when i run it i get a wrong answer....i dont know how to initialize the array

What do you want to initialize it with?
Your array is filled with random values and you are adding up those random values into the variable sum. It would help if you say what you are trying to do?

jhae2.718
Gold Member
I've taken the liberty to put your code in [code ] tags and format it:
Code:
#include <stdio.h>

int main()
{
double sum, theta[100];
int i;
sum = 0.0;
i = 0;
while (i < 100)
{
sum = sum + theta[i];
i = i + 1;
}
printf("The sum of the array is %lf\n", sum);
}
theta[100] is an uninitialized array. You need to initialize it, as phiby said. You should also consider using a for loop instead of a while loop.

Last edited:
theta[100] is an array of 0.0 one hundred times.

No - it's not. I don't see any code which puts 0.0 into the array.

If you want it to be array containing all 0's, this is the simplest way to do it

Code:
double theta[100] = { 0 };

I like Serena
Homework Helper
i dont know how to initialize the array
Here are the 3 ways to initialize an array:

double theta[3] = { 1.0, 2.0, 3.0 };

theta[0] = 1.0;
theta[1] = 2.0;
theta[2] = 3.0;

read from file (or standard input)

jhae2.718
Gold Member
No - it's not. I don't see any code which puts 0.0 into the array.
You are of course correct. I was thinking of filling remaining elements of an array when not fully initialized.

i dont know how to initialize the array
If there is a relationship between the elements you could also loop through. E.g. the following will produce an array of the first 10 squares:
Code:
[COLOR="SeaGreen"][B]int[/B][/COLOR] array[[COLOR="Magenta"]10[/COLOR]];
[COLOR="SeaGreen"][B]int[/B][/COLOR] i;
[COLOR="DarkRed"][B]for[/B][/COLOR] (i = [COLOR="Magenta"]0[/COLOR]; i < [COLOR="Magenta"]10[/COLOR]; i++) {
array[i] = (i + [COLOR="Magenta"]1[/COLOR]) * (i + [COLOR="Magenta"]1[/COLOR]);
}
I would recommend The C Programming Language (Amazon link b/c of Wiki blackout) by K&R as an introduction to C.

Last edited:
Borek
Mentor
No - it's not. I don't see any code which puts 0.0 into the array.
While you are right there is no code initializing the array, values it contains don't have to be random. For example if you are using Microsoft C++ compiler (VisualStudio) in _DEBUG mode memory can be (or always is?) prefilled with things like 0xBAADF00D, 0xCDCDCDCD or 0xFDFDFDFD (plus some more) to make debugging easier.

What do you want to initialize it with?
Your array is filled with random values and you are adding up those random values into the variable sum. It would help if you say what you are trying to do?
I'm trying to compute the sum of the array

jhae2.718
Gold Member
I'm trying to compute the sum of the array
Do you just need an arbitrary array then?

when i run it, i get -1.#QNA

I know that double theta[100] = {0}; will fill each element with 0.

when i run it, i get -1.#QNA

I know that double theta[100] = {0}; will fill each element with 0.

Is it QNA or QNAN?
QNAN is a quiet NAN. NAN is "Not a Number".

Anyway, could you post the full program with which you are getting this error?

Also why are you trying to find the sum of an array which is filled with 0s?

Well this is the question that uses the code

The previous program for computing the sum of an array may not produce a correct
result since the elements of the array have not been properly initialized. Modify the program so that the array elements have values 1, 2, . . . , 100.

Mark44
Mentor
Well this is the question that uses the code

The previous program for computing the sum of an array may not produce a correct
result since the elements of the array have not been properly initialized. Modify the program so that the array elements have values 1, 2, . . . , 100.
Declare the array, and then use a for loop to put values 1, 2, ..., 100 into it.

Mark44
Mentor
Anyway, could you post the full program with which you are getting this error?

Also why are you trying to find the sum of an array which is filled with 0s?
Well this is the question that uses the code

The previous program for computing the sum of an array may not produce a correct
result since the elements of the array have not been properly initialized. Modify the program so that the array elements have values 1, 2, . . . , 100.
Your answer was not what phiby asked. To be successful in programming, you have to pay attention to details.