scanf • Reads in information from the keyboard • Examples • WARNINGS!

advertisement
scanf
• Reads in information from the keyboard
• Examples
– scanf(“%d”, &number);
– scanf(“%d%d”, &value1, &value2);
• WARNINGS!
– Don’t forget the & (address of) in front of each
variable!
– Use the correct percent code for the type of
the variable you are using!
/* Arup Guha
My Second C Program, edited
9/2/03
Computes the number of feet user ran. */
#include <stdio.h>
#define YARDS_IN_MILE 1760
#define FEET_IN_YARD
3
int main(void) {
int feet_in_mile, num_miles;
feet_in_mile = YARDS_IN_MILE*FEET_IN_YARD;
printf("How many miles did you run?\n");
scanf("%d", &num_miles);
printf("You ran %d feet.\n",
feet_in_mile*num_miles);
// system(“PAUSE”); Necessary to see screen in
DevC++
return 0;
}
Programming Style
•
•
•
•
•
•
•
Include ample white space
Indent code in between matching {}
Always write a header comment
Comment each major block of code
Use meaningful variable names
Define constants when appropriate
Be consistent with your style
Types of Errors
• Compiler Error
– Your program has incorrect syntax
– Compiler outputs some message pertaining to the
problem
• Run-Time Error
– Some statement in your program forces your
computer to crash on an individual execution
– Not all executions may create a run-time error
• Logic Error
– Program runs, but produces incorrect output
sometimes.
Common Errors
• Forgetting a matching double quote
• Forgetting a semicolon
• Using the incorrect character code in a
printf or scanf
• Forgetting & (address of) when reading
into a variable
• Not initializing variables
• Incorrect order of assignment statements
Rules for Variable Names
•
•
•
•
•
Comprised of letters, digits, underscores
Can NOT start with a digit
Usually, variable names are case sensitive
Can NOT be a keyword (such as double)
Although it’s not a rule, variable names
should reveal the purpose of the variable.
Why use constants?
• Symbolic name (eg. WATER_DENSITY) has
more meaning that the value (1).
• If you ever have to change its value, you can
change it in one place.
• The compiler does NOT allow you to change its
value DURING execution.
• Two Different Schools of Thought
– Some think constants should ONLY be used for things
that never change (PI, E, etc.)
– Others think constants can be used for values that
might change sometime, but WON’T change within
the execution of a program.
Increment/Decrement Operators
• variable++ or ++variable
– Equivalent to variable = variable+1;
– There’s a subtle difference between the two
forms. (We won’t go into it in this class.)
• variable-- or –variable
– Equivalent to variable = variable-1;
Other Shorthand Assignments
• General Form <var> <op> <expr>
– Short hand for <var> = <var> <op> <expr>
• Examples
– x += 10;
– money -= 20;
– value *= (rate+2);
– portion /= (students+staff);
Pesky Detail about =
• Can be used multiply
– x = y = z – 4; is valid
– Not good style.
– If z were 7 before this statement executed
• y would first get set to 3, and this operation would
return 3
• Then, x would ALSO get set to 3, the return value
of the original operation.
– Thus, the associativity is right to left.
/* Arup Guha 8/29/07
Circle Program – edited to read in the radius of a circle
and the cost for one square foot of it and print out the
total cost of the whole circle. */
#include <stdio.h>
#define PI
3.14159
int main(void) {
double radius, area;
double cost, totalcost;
printf(“Enter the radius&cost per sqft of your circle.”);
scanf(“%lf%lf”, &radius, &cost);
area = PI*radius*radius;
totalcost = cost*area;
printf(“The total cost of the circle is $.2lf\n”, totalcost);
// system(“PAUSE”); Necessary to see screen in DevC++
return 0;
}
Download