[SOLVED] I am learning c and facing an error with vs code in the printf function. I didn’t find where I have mistaken. Please help me to resolve it

Issue

This Content is from Stack Overflow. Question asked by Jashan K


int main (){ 
    int a, b, sum;
    printf("Enter a : ");
    scanf("%d", &a);
    printf("Enter b : ");
    scanf ("%d", &b );

    sum= a+b;

    printf( "Sum of %d and %d = %d",sum );
    return 0 ;

}

This is the output I got but it is not correct. Please tell me where I am wrong ?

Enter a: 4
Enter b: 5
Sum of 9 and 6422356 = 4200939

I want to get ‘b’ (which is the second number) to be printed in the formatted print.
but it is not scanning ‘b’ correctly. Why it is scanning ‘8’ at the place of ‘4’ and ‘6422356’ at the place of ‘5’? The output should be Sum of 4 and 5 = 9. Tell me what I should do.

When I use printf( "Sum of a and b = %d",sum ); instead of printf( "Sum of %d and %d = %d",sum ); the output is correct

Enter a : 4
Enter b : 5
Sum of a and b = 9

What is the mistake in the previous code? Have I mistaken in the syntax or what? Why %d is not executing properly?



Solution

The quantity of variables passed to printf() does not match the quantity of variables in the format specifier

Three versions to remedy your problem:

    // print the NAMES of the variables just entered
    printf( "Sum of a and b = %d",sum );

    // print the VALUES of the variables just entered
    printf( "Sum of %d and %d = %d", a, b, sum );

    // or print the NAMES and VALUES of the variables just entered
    printf( "Sum of a(%d) and b(%d) = %d", a, b, sum );

You must provide a variable (of the right type) for every "%d" (or other formatting specifier) for printf() to match-them-up


This Question was asked in StackOverflow by Jashan K and Answered by Fe2O3 It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?