Lecture 2 - Input and Output

CT1111: PROGRAMMING IN C

Week 1 - Lecture 2

Worked Through Example

  • Problem Description:   - Objective: Write a program that reads in an exam mark.   - Output:     - "Passed" if the mark is 60 or more.     - "Failed" if the mark is less than 60.

Pseudocode

  • Outline of the logic to implement:   - Get exam grade.   - If grade is greater than or equal to 60:     - Print "Passed".   - Else:     - Print "Failed".

Flowchart

  1. Start
  2. Get Grade
  3. Check if Grade >= 60:    - If True: Print "Passed"    - If False: Print "Failed"
  4. End

Example Code Snippet

void main() {
    int grade = 0;
    printf ("Enter grade: ");
    scanf("%d", &grade);
    if (grade >= 60) {
        printf ("Passed \n");
    } else {
        printf ("Failed \n");
    }
}

Another Example

  • New Task:   - Write a program to take in three subject grades for a student.   - Calculate the average of the three grades:     - If average > 60: Print "Passed" and the average grade.     - Otherwise: Print "Failed" and the average grade.

Pseudocode for Average Calculation

  • Get exam grade1 for subject 1.
  • Get exam grade2 for subject 2.
  • Get exam grade3 for subject 3.
  • Calculate average of grade1, grade2, and grade3.
  • If average >= 60:   - Print "Passed with average of [average]".
  • Else:   - Print "Failed with average of [average]".

Flowchart for Average Calculation

  1. Start
  2. Get Grade1, Grade2, Grade3
  3. Calculate Average
  4. Check if Average >= 60:    - If True: Print "Passed with average of [average]"    - If False: Print "Failed with average of [average]"
  5. End

Example Code Snippet for Average Calculation

#include <stdio.h>
void main() {
    int grade1 = 0;
    int grade2 = 0;
    int grade3 = 0;
    float average = 0;
    printf ("Enter grade1: ");
    scanf("%d", &grade1);
    printf ("Enter grade2: ");
    scanf("%d", &grade2);
    printf ("Enter grade3: ");
    scanf("%d", &grade3);
    average = (grade1 + grade2 + grade3) / 3;
    if (average >= 60) {
        printf ("Passed, with average = : %f \n", average);
    } else {
        printf ("Failed, with average = : %f \n", average);
    }
}

Output from Previous Example

Example Inputs
  • Enter grade1: 45
  • Enter grade2: 56
  • Enter grade3: 78
Output
  • "Failed, with average: 59.000000"

Floating Point Version

#include <stdio.h>
void main() {
    float grade1 = 45.0, grade2 = 56.0, grade3 = 78.0;
    float avg;
    avg = (grade1 + grade2 + grade3) / 3.0;
    if (avg >= 40.0) {
        printf ("Passed with average of: %f\n", avg);
    } else {
        printf ("Failed with average of: %f\n", avg);
    }
}

Output - Notice the Difference from Previous Example

Output
  • "Passed with average of: 59.666668"

Change Output Formatting

#include <stdio.h>
void main() {
    float grade1 = 45.0, grade2 = 56.0, grade3 = 78.0;
    float avg;
    avg = (grade1 + grade2 + grade3) / 3.0;
    if (avg >= 40.0) {
        printf ("Passed with average of: %.2f\n", avg);
    } else {
        printf ("Failed with average of: %.2f\n", avg);
    }
}
Output
  • "Passed with average of: 59.67"

Flowchart for Grade Input and Check

  1. Start
  2. Get Grade
  3. Check if Grade >= 60:    - If True: Print "Passed"    - If False: Print "Failed"
  4. End

C Program for Single Grade Check

void main() {
    int grade;
    printf ("Enter Grade: ");
    scanf ("%d", &grade);
    if (grade >= 60) {
        printf ("Passed\n");
    } else {
        printf ("Failed\n");
    }
}

Using scanf Function

  • scanf ("%d", &grade);   - Function name example.   - Always end line with ;.   - Use parentheses () to enclose parameters:     - Expecting text containing an integer.     - Variable name preceded by &.

Output from Grade Input Example

Sample Input
  • Enter Grade: 67
Sample Output
  • "Passed"

Same Example but with Floats

void main() {
    float grade;
    printf ("Enter Grade: ");
    scanf ("%f", &grade);
    if (grade >= 40) {
        printf ("Passed\n");
    } else {
        printf ("Failed\n");
    }
}

Using scanf for Floats

  • Explanation for usage:   - scanf ("%f", &grade);     - Function name example.     - Always end line with ;.     - Expecting text containing a float.

Using printf for Output

  • Example: \nprintf ("%f", grade);   - Function name example.   - Always end line with ;.   - Use parentheses () to enclose parameters:     - Expecting text containing a float.     - Variable name to display.

Flowchart for Average Calculation with Three Subjects

  1. Start
  2. Get Grade1, Grade2, Grade3
  3. Calculate Average
  4. Check if Average >= 40:    - If True: Print "Passed with average of [Average]"    - If False: Print "Failed with average of [Average]"
  5. End

Complete Program for Average Calculation

void main() {
    float grade1, grade2, grade3;
    float avg;
    printf ("Enter Grade for First Subject: ");
    scanf ("%f", &grade1);
    printf ("Enter Grade for Second Subject: ");
    scanf ("%f", &grade2);
    printf ("Enter Grade for Third Subject: ");
    scanf ("%f", &grade3);

Continuing the Program Logic

    avg = (grade1 + grade2 + grade3) / 3.0;
    if (avg >= 40.0) {
        printf ("Passed with average of: %.2f \n", avg);
    } else {
        printf ("Failed with average of: %.2f \n", avg);
    }
}

Final Output Example

Sample Input
  • Enter Grade for First Subject: 34
  • Enter Grade for Second Subject: 35
  • Enter Grade for Third Subject: 88
Sample Output
  • "Passed with average of: 52.33"