|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On January 26 2012 13:29 Kentor wrote:that's where you end your braces? my head hurts... and you need to initialize your loop counter variable. plus you are never changing the variable sum. look at your program. at what point do you assign the variable sum anything new? certainly not this line total=sum+number;
+ Show Spoiler + #include <stdlib.h> #include <stdio.h>
int main() {
int total; int sum=0; int number; int i=1; int other; //I'm confused big time...I enter a #, number... //Then i do an IF state ment to say if that number*number is greater than 500 //Then you should add the sum (initalized at zero) to the original number, which is number //After 41 attempts, it takes the numbers in the sum and multiplies itself. //How far am I off? //Right now, it just continuously will ask for numbers over and over, but if i enter a number //over 41, it will say "your answer is 0"
for(i; i!=6; i++){
printf("What is your number\n"); scanf("%d", &number);
other=number*number;
if(other>500){ total=sum+number;
total=total*total;}}
printf("The total is %d.\n",total);
system("pause"); return 0; }
This is what I've got all together now. The problem is this:
I feel like I'm reading this thing wrong. I set it to run 5 tests. It works, but it only stores the LAST value that is more than 500.
For instance, I can type in, 5, 30, 20, 30, 25 and it will output 625...It only stores the last value that is over the 500 when multiplied. Shouldn't it be storing and adding them? Should it go 30*30=900, so it stores 30 in the sum, then it sees 30 again, so it adds another 30 to the sum to equal 60, and then it sees 25 so it adds 25 to the sum, which will equal 85 and then multiples 85*85 to get 7225?
Does my sum have to be changed to sum=total or something? God I wish someone would just give me the answer so I can work it backward and see what's going on :/ I feel like an idiot when stuff doesn't click.
|
Kentor
United States5784 Posts
here's my answer
+ Show Spoiler +#include <stdio.h>
int main(void) { int sum = 0; int times = 5;
while (times--) { int num; printf("Enter number: "); scanf("%d", &num);
if (num*num > 500) { sum += num; } }
printf("Answer: %d\n", sum*sum); return 0; }
|
Thank you, I finally figured it out :/ I wish we could have used a while loop :/ He specifically wanted us to us FOR, which really annoys me. Anyway, I got it working.
I used sum+=number to store it ;X
thank you a lot
|
just beginning here. trying an exercise from my text. the exercise is to "make a carpool savings calculator" in C. any help on what i'm doing wrong would be much appreciated because i cannot figure it out.
running the program + Show Spoiler + How many miles do you drive per day? 30 30 What is the cost of one gallon of gas? 3.80 How many miles per gallon do you get? 24 What is the parking fee per day at your destination? 4 What is the cost of tolls per day? 2 The total miles driven per day: 30.000000 The cost per gallon of gasoline: $30.000000 The average miles per gallon: 3.800000 The parking fees per day: $0.000000 The tolls per day: $0.000000 Your daily cost of driving to work is $0.000000 Press any key to continue . . .
why does it not accept the first input when asking how many miles i drive per day and why are the calculations messed up?
the code + Show Spoiler + #include <stdio.h> #include <stdlib.h>
void main() { float MPD, MPG, parking, tolls, total, CPG;
//user input
printf("How many miles do you drive per day?\n"); scanf("%f\n", &MPD); printf("What is the cost of one gallon of gas?\n"); scanf("%f\n", &CPG); printf("How many miles per gallon do you get?\n"); scanf("%f\n", &MPG); printf("What is the parking fee per day at your destination?\n"); scanf("%f\n", &parking); printf("What is the cost of tolls per day?\n"); scanf("%f\n", &tolls);
//calculations
total = tolls + parking + (MPD/MPG) * CPG;
//output to user
printf("The total miles driven per day: %f\n",MPD); printf("The cost per gallon of gasoline: $%f\n", CPG); printf("The average miles per gallon: %f\n", MPG); printf("The parking fees per day: $%f\n", &parking); printf("The tolls per day: $%f\n", &tolls); printf("Your daily cost of driving to work is $%f\n", &total);
}
|
Kentor
United States5784 Posts
try taking out "\n" in scanf
|
Taking the \n out of scanf will eliminate your 'double entry' for the first scanf, but your real error here is that you are using & (ampersands) on the printf statements at the end. The ampersand refers to a pointer (you're passing in the memory location essentially), so printing the memory results in garbage. In all likelihood, it was just keeping/printing what was in the buffer already.
That should fix it.
|
thanks for the help guys. your advice really helped. i'm getting better at this one step at a time.
|
I don't have any question right now or anything, I just wanted to talk about how awesome sockets are.
I just started programming for my Networking class, and wow, sockets are pretty boss.
Who else loves sockets?
|
another question here:
+ Show Spoiler + int main ( void ){ FILE *file = fopen("num1.txt", "r"); char tmp[2], *nl; int a[100], i; for(i = 0; i < 100; i++){ fgets(tmp, 3, file); nl = strrchr(tmp, '\n'); if (nl) *nl = '\0'; printf("%s ", tmp); a[i] = atoi(tmp); }
return 0; }
I have that code, and what it is supposed to do is read in 100 int's from a text file. I read them into a temporary string, then convert that string to an integer and put the integer into an array. However, I'm encountering problems that have nothing to do with the integer array. When I run this code with a file that has a few 1 digit int's and mostly 2 digits ints, only around the first 50 are printed out by this: printf("%s ", tmp); There is also a little bit of funky spacing when this occurs. However, if I run it with a different file, consisting entirely of 1 digit integers, all are printed out successfully.
I used an online random number generator to generate the numbers in the first file, and the output it gave had some funky spacing. However, I went through and got rid of all the tabs etc. that I could see so that hopefully each line was in the form:
11\n
The other thing is, I didn't expect that to make a difference, because tmp is only 2 char's big! And I called fgets with 3 as the second argument.
Is there something wrong with my code? Or is there some kind of unseen character in the text file I am using that is somehow screwing something up.
This is the problematic text file: num.txt - 291 bytes
EDIT: After a bit more searching, I found my problem. The problem was not with the file, but just the fact that it was reading in 2 digit numbers. I feel a bit silly now, because fgets was only reading in "11" of "11\n" leaving the \n untouched. Then the next time fgets was called, it would grab the newline, and do the same thing with that, resulting in appx. half my input being deprecated.
|
hey guys
I'd like to contribute to some SC2 opensource project, but my google search didn't really give good results.
do you know about any where i could help?
|
On January 28 2012 00:51 scarymeerkat wrote:another question here: + Show Spoiler + int main ( void ){ FILE *file = fopen("num1.txt", "r"); char tmp[2], *nl; int a[100], i; for(i = 0; i < 100; i++){ fgets(tmp, 3, file); nl = strrchr(tmp, '\n'); if (nl) *nl = '\0'; printf("%s ", tmp); a[i] = atoi(tmp); }
return 0; }
I have that code, and what it is supposed to do is read in 100 int's from a text file. I read them into a temporary string, then convert that string to an integer and put the integer into an array. However, I'm encountering problems that have nothing to do with the integer array. When I run this code with a file that has a few 1 digit int's and mostly 2 digits ints, only around the first 50 are printed out by this: printf("%s ", tmp); There is also a little bit of funky spacing when this occurs. However, if I run it with a different file, consisting entirely of 1 digit integers, all are printed out successfully. I used an online random number generator to generate the numbers in the first file, and the output it gave had some funky spacing. However, I went through and got rid of all the tabs etc. that I could see so that hopefully each line was in the form: 11\n The other thing is, I didn't expect that to make a difference, because tmp is only 2 char's big! And I called fgets with 3 as the second argument. Is there something wrong with my code? Or is there some kind of unseen character in the text file I am using that is somehow screwing something up. This is the problematic text file: num.txt - 291 bytesEDIT: After a bit more searching, I found my problem. The problem was not with the file, but just the fact that it was reading in 2 digit numbers. I feel a bit silly now, because fgets was only reading in "11" of "11\n" leaving the \n untouched. Then the next time fgets was called, it would grab the newline, and do the same thing with that, resulting in appx. half my input being deprecated.
You probably figured this out, but you'll want to use one of the 'getline' functions to consume text until \n or EOF is reached. Also (and I'm no expert in c syntax) you'll want to phrase it something like this:
int index = 0; while(getline(stream, stringVariable) != null) { if(index > arrayLength - 1) { break; //printout - shouldn't happen if your array/file are same size }
stringArray[index++] = stringVariable; //or intArray[index++] = Convert.ToInteger(stringVariable);
}
fClose(stream);
This is generally considered safer/better, because it won't crash if you try to read past the end of the file. Also, you can change the amount of data you read in the file with only 1 variable.
|
On January 28 2012 04:38 robih wrote: hey guys
I'd like to contribute to some SC2 opensource project, but my google search didn't really give good results.
do you know about any where i could help? What did you have in mind? You'll probably have to start it yourself.
|
|
With little to no knowledge in programming and an AP Computer Science book, about how long do you guys think it would take to learn Java to a high enough level to get a 5 on the AP test? (in hours, probably.)
|
On January 29 2012 08:27 Jaso wrote: With little to no knowledge in programming and an AP Computer Science book, about how long do you guys think it would take to learn Java to a high enough level to get a 5 on the AP test? (in hours, probably.) Never took the AP comp sci, but at a glance it doesn't appear very relevant beyond basic OOP principles.
Read this to get started: http://docs.oracle.com/javase/tutorial/java/index.html
|
Recently tried some groovy. Mind blown!
Seriously awesome. Anyone else had the same experience?
|
On January 29 2012 08:42 Patriot.dlk wrote: Recently tried some groovy. Mind blown!
Seriously awesome. Anyone else had the same experience? Yeah, a friend and I used it for an nlp project. By the time we were done we barely understand what we had written inside all of the closures. What a bitch to debug.
|
On January 29 2012 08:54 mmp wrote:Show nested quote +On January 29 2012 08:42 Patriot.dlk wrote: Recently tried some groovy. Mind blown!
Seriously awesome. Anyone else had the same experience? Yeah, a friend and I used it for an nlp project. By the time we were done we barely understand what we had written inside all of the closures. What a bitch to debug. But it was groovy!
|
|
Alright, I've got a little question for you guys. I'm currently in third year university, major in computer science. Before University, I honestly didn't even know what programming was.
So anyways. As I've mentioned, I'm third year. All of my knowledge in computer programming comes from my classes. I'll admit I'm not the best student, but I do pay attention when I can and I'm not exactly failing my way through this. I don't ever program on my free time or read programming-related things that aren't school related.
So far, we've pretty much only learned Java when it comes to useful programmming languages. I did a bit in Scheme, a very small amount in Assembly (I forgot most of it, honestly. It was horrible), some HTML... and I'm currently learning C. Much harder than I expected. Pointers sorta confuse me sometimes.
The thing is, I feel like I don't know anything. I feel like pepole who have way less education than me are more capable than I am. I've never said "I've made a script to do...." I dont even know what that is.
What I hope is going on is that I'm being given the basic (and hopefully more advanced, too) programming skills and knowledge that can be applied to all computer science, and then the more specific things I'll be able to pick up without too much effort. I'm hoping that when I sit down and am told to do X at some random job, I'll be able to do it and be surprised with how much I know. I'm just not very sure.
So, to any of you who come from a similar background (learned everything at school), can you shed some light on your situation? Is this normal?
|
|
|
|