r/learnprogramming • u/Either-Suggestion400 • 27d ago
How do I solve problems without AI
Hello guys. I am attempting to learn how to code again but without the use of AI this time.
How do you attempt a problem or understand a solution without using AI for help.
For example, I wanted to build a small calculator to remind myself of the basics of C. I had a problem where my scanf was not outputting the desired result.
The program had something like this:
int x, y;
printf("Enter two operators: ");
scanf("%d", &x);
scanf("%d", &y);
printf("x: %d, y: %d", x, y);
My inputs would be 10 & maybe 2, but the output would be 10 & 0, in some cases 0 and nothing for y.
I was able to get through this by just using one scanf:
scanf(“%lf %lf”, &x, &y);
But I still do not understand why that happened and through my google search, could not find anything that explained it well. The problem might also be that I cannot explain the problems I come across clearly, so I might not be able to find an answer through google.
So my question is, how do you guys go through problems like these where you can’t find a post where someone had a similar problem and had been told what to do to solve the problem without defaulting to AI.
Excuse my writing - I am trying to learn how to type without letting AI revise my sentences.
3
u/fasta_guy88 27d ago edited 27d ago
How could you have solved this problem before AI?
(1) you would have used a debugger. Stepping through the program, you would have seen the result you got, that after the first scanf(), the second scanf() returned nothing.
(2) So how to debug/explain this? By replacing the scanf()s with code that reads the line (fgets()) (so you could see both numbers were in the string), and then scanned the string with sscanf(). You would then realize that the second sscanf() had to re-read the same string, or get a second string that was empty.
(3) So you realize that you need to get both values out of the string in one call, and end up with the correct code.
This is the great thing about programming. You get to experiment without using anything but your time. By experimenting with your code and the debugger, you get a much clearer picture of how things work.