D
Daniel Rudy
What is wrong with this program? When I try to compile it, I get the
following error. Compiler is gcc on FreeBSD.
strata:/home/dcrudy/c 1055 $$$ ->cc -g -oe6-3 e6-3.c
e6-3.c: In function `main':
e6-3.c:32: syntax error before `||'
e6-3.c:33: syntax error before `printf'
e6-3.c:36: syntax error before `||'
e6-3.c:40: syntax error before `('
e6-3.c:40: syntax error before `strcpy'
e6-3.c:41: syntax error before `('
e6-3.c:41: syntax error before `strcpy'
e6-3.c:42: syntax error before `('
e6-3.c:42: syntax error before `strcpy'
e6-3.c:43: syntax error before `('
e6-3.c:43: syntax error before `strcpy'
e6-3.c:44: syntax error before `('
e6-3.c:44: syntax error before `strcpy'
e6-3.c:45: syntax error before `('
e6-3.c:45: syntax error before `strcpy'
e6-3.c:46: syntax error before `('
e6-3.c:46: syntax error before `strcpy'
e6-3.c:47: syntax error before `('
e6-3.c:47: syntax error before `strcpy'
e6-3.c:48: syntax error before `('
e6-3.c:48: syntax error before `strcpy'
e6-3.c:49: syntax error before `('
e6-3.c:49: syntax error before `strcpy'
e6-3.c:50: syntax error before `('
e6-3.c:50: syntax error before `strcpy'
e6-3.c:51: syntax error before `('
e6-3.c:51: syntax error before `strcpy'
strata:/home/dcrudy/c 1056 $$$ ->
/*
Programming Exercise 6-2: A professor generates letter
grades by the following values: 0-60 F, 61-70 D, 71-80 C,
81-90 B, 91-100 A. Given a numeric grade, print the
letter. Also print +, blank, or - using the following
values in the units place: 1-3 -, 4-7 blank, 8-0 +.
Page 93
*/
#include <stdio.h>
#include <string.h>
char line[100]; /* user data input line */
char cgrade[10]; /* character grade */
int ngrade; /* numeric grade */
int result; /* final results (computed) */
int main()
{
do
{
/* Get user input */
printf("Input numeric grade: ");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d", &ngrade);
/* Check to make sure that input is valid */
if (ngrade < 0) || (ngrade > 100)
printf("Invalid Input: You must input a number between 0 and
100.\n");
else break;
}
while (ngrade < 0) || (ngrade > 100);
/* Now figure out what the letter grade is */
if (ngrade <= 60) strcpy(cgrade, "F");
if (ngrade >= 61) && (ngrade <= 63) strcpy(cgrade, "D-");
if (ngrade >= 64) && (ngrade <= 67) strcpy(cgrade, "D");
if (ngrade >= 68) && (ngrade <= 70) strcpy(cgrade, "D+");
if (ngrade >= 71) && (ngrade <= 73) strcpy(cgrade, "C-");
if (ngrade >= 74) && (ngrade <= 77) strcpy(cgrade, "C");
if (ngrade >= 78) && (ngrade <= 80) strcpy(cgrade, "C+");
if (ngrade >= 81) && (ngrade <= 83) strcpy(cgrade, "B-");
if (ngrade >= 84) && (ngrade <= 87) strcpy(cgrade, "B");
if (ngrade >= 88) && (ngrade <= 90) strcpy(cgrade, "B+");
if (ngrade >= 91) && (ngrade <= 93) strcpy(cgrade, "A-");
if (ngrade >= 94) && (ngrade <= 97) strcpy(cgrade, "A");
if (ngrade >= 98) && (ngrade <= 100) strcpy(cgrade, "A+");
/* Print the results */
printf("Letter grade is %s.\n", cgrade);
return(0);
}
following error. Compiler is gcc on FreeBSD.
strata:/home/dcrudy/c 1055 $$$ ->cc -g -oe6-3 e6-3.c
e6-3.c: In function `main':
e6-3.c:32: syntax error before `||'
e6-3.c:33: syntax error before `printf'
e6-3.c:36: syntax error before `||'
e6-3.c:40: syntax error before `('
e6-3.c:40: syntax error before `strcpy'
e6-3.c:41: syntax error before `('
e6-3.c:41: syntax error before `strcpy'
e6-3.c:42: syntax error before `('
e6-3.c:42: syntax error before `strcpy'
e6-3.c:43: syntax error before `('
e6-3.c:43: syntax error before `strcpy'
e6-3.c:44: syntax error before `('
e6-3.c:44: syntax error before `strcpy'
e6-3.c:45: syntax error before `('
e6-3.c:45: syntax error before `strcpy'
e6-3.c:46: syntax error before `('
e6-3.c:46: syntax error before `strcpy'
e6-3.c:47: syntax error before `('
e6-3.c:47: syntax error before `strcpy'
e6-3.c:48: syntax error before `('
e6-3.c:48: syntax error before `strcpy'
e6-3.c:49: syntax error before `('
e6-3.c:49: syntax error before `strcpy'
e6-3.c:50: syntax error before `('
e6-3.c:50: syntax error before `strcpy'
e6-3.c:51: syntax error before `('
e6-3.c:51: syntax error before `strcpy'
strata:/home/dcrudy/c 1056 $$$ ->
/*
Programming Exercise 6-2: A professor generates letter
grades by the following values: 0-60 F, 61-70 D, 71-80 C,
81-90 B, 91-100 A. Given a numeric grade, print the
letter. Also print +, blank, or - using the following
values in the units place: 1-3 -, 4-7 blank, 8-0 +.
Page 93
*/
#include <stdio.h>
#include <string.h>
char line[100]; /* user data input line */
char cgrade[10]; /* character grade */
int ngrade; /* numeric grade */
int result; /* final results (computed) */
int main()
{
do
{
/* Get user input */
printf("Input numeric grade: ");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d", &ngrade);
/* Check to make sure that input is valid */
if (ngrade < 0) || (ngrade > 100)
printf("Invalid Input: You must input a number between 0 and
100.\n");
else break;
}
while (ngrade < 0) || (ngrade > 100);
/* Now figure out what the letter grade is */
if (ngrade <= 60) strcpy(cgrade, "F");
if (ngrade >= 61) && (ngrade <= 63) strcpy(cgrade, "D-");
if (ngrade >= 64) && (ngrade <= 67) strcpy(cgrade, "D");
if (ngrade >= 68) && (ngrade <= 70) strcpy(cgrade, "D+");
if (ngrade >= 71) && (ngrade <= 73) strcpy(cgrade, "C-");
if (ngrade >= 74) && (ngrade <= 77) strcpy(cgrade, "C");
if (ngrade >= 78) && (ngrade <= 80) strcpy(cgrade, "C+");
if (ngrade >= 81) && (ngrade <= 83) strcpy(cgrade, "B-");
if (ngrade >= 84) && (ngrade <= 87) strcpy(cgrade, "B");
if (ngrade >= 88) && (ngrade <= 90) strcpy(cgrade, "B+");
if (ngrade >= 91) && (ngrade <= 93) strcpy(cgrade, "A-");
if (ngrade >= 94) && (ngrade <= 97) strcpy(cgrade, "A");
if (ngrade >= 98) && (ngrade <= 100) strcpy(cgrade, "A+");
/* Print the results */
printf("Letter grade is %s.\n", cgrade);
return(0);
}