Smallest, Largest, Average- C language

Write a program that asks the user how many numbers she would like to compare; Then accepts her inputs. The program should output the largest, the smallest and the average of all entered numbers. The results should be presented in a tabular form.



How can I change this code so that it asks the user how many numbers they would like to compare?

How to make it so that it doesn't include the 0 ?

have the outputs entered into the tabular form ?






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>


main(void){
//n = amount of numbers input
//x = number given by user
//s = smallest number
//l = largest number

    int x = 1, n = -1, s = 999, l = -1;
    float sum = -1;




    while(x != 0){

        printf("Enter a number:  (0 to quit)\n");
        scanf("%d", &x);
            sum += x;
            n = n + 1;


    }

printf("%s%13s%17s\n", "Smallest", "Largest", "Average");

    if(x < s){
        s = x;
    printf("Smallest number: %i \n", s);
    }


    if(x > l){
        l = x;
    printf("Largest number: %i \n", l);
    }


    printf("Average: %.2f \n", sum/n);



}

Last edited on
Sorry, the code does not compile.
main(void){

Should be :
int main(void){
closed account (48T7M4Gy)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>

int main(){
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int x = 1, n = 0, s = 999, l = 0;
    float sum = 0;
    
    while(x != 0){
        
        printf("Enter a number:  (0 to quit)\n");
        scanf("%d", &x);
        
        if (x != 0)
        {
            sum += x;
            n = n + 1;
            
            if(x < s)
                s = x;
            
            if(x > l)
                l = x;
        }
    }
    
    printf("Smallest number: %i \n", s);
    printf("Largest number: %i \n", l);
    printf("Average: %.2f \n", sum/n );
    
    return 0;
}
closed account (48T7M4Gy)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>

int main(){
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int x = 1, n = 0, s = 999, l = 0;
    float sum = 0;
    
    while(x != 0)
    {
        printf("Enter a number:  (0 to quit)\n");
        scanf("%d", &x);
        
        if (x != 0)
        {
            sum += x;
            n = n + 1;
            
            if(x < s)
                s = x;
            
            if(x > l)
                l = x;
            
            printf("Smallest number: %i \n", s);
            printf("Largest number: %i \n", l);
            printf("Average: %.2f \n", sum/n );
        }
    }
    
    return 0;
}
What is the difference between your two versions kemort?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>

using namespace std;

int main()
{
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int x = 1, n = 0, s = 999, l = 0;
    float sum = 0;
    
    while(x != 0){
        
        cout << "Enter a number (0 to quit) : ";
        cin >> x;
        
        if (x != 0)
        {
            sum += x;
            n = n + 1;
            
            if(x < s)
                s = x;
            
            if(x > l)
                l = x;
        }
    }
    
    cout << "Smallest number : " << s << endl;
    cout << "Largest number : " << l << endl;
    cout << "Average : " << sum / n << endl;
    
    return 0;
}


Enter a number (0 to quit) : 10
Enter a number (0 to quit) : 26
Enter a number (0 to quit) : 50
Enter a number (0 to quit) : 37
Enter a number (0 to quit) : 46
Enter a number (0 to quit) : 94
Enter a number (0 to quit) : 11
Enter a number (0 to quit) : 48
Enter a number (0 to quit) : 33
Enter a number (0 to quit) : 79
Enter a number (0 to quit) : 114
Enter a number (0 to quit) : 33
Enter a number (0 to quit) : 97
Enter a number (0 to quit) : 0
Smallest number : 10
Largest number : 114
Average : 52.1538

http://cpp.sh/9kwkv
Last edited on
closed account (48T7M4Gy)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>

int main(){
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int x = 0, n = 0, s = 999, l = 0;
    float sum = 0;
    
    printf("How many numbers do you want to compare? ");
    scanf("%d", &n);
    
    for (int limit = 0; limit < n; limit++)
    {
        printf("Enter a number: ");
        scanf("%d", &x);
        
        sum += x;
        
        if(x < s)
            s = x;
        
        if(x > l)
            l = x;
        
        printf("Smallest number: %i \n", s);
        printf("Largest number: %i \n", l);
        printf("Average: %.2f \n", sum/n );
    }
    
    return 0;
}
closed account (48T7M4Gy)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>

int main(){
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int n = 0, s = 999, l = 0;
    float sum = 0;
    
    printf("How many numbers do you want to compare? ");
    scanf("%d", &n);
    
    int* x = new int[n];
    
    for (int index = 0; index < n; index++)
    {
        printf("Enter a number: ");
        scanf("%d", &x[index]);
        
        sum += x[index];
        
        if(x[index] < s)
            s = x[index];
        
        if(x[index] > l)
            l = x[index];
    }
    
    printf("N\t L\t S\t A\n");
    for(int i = 0; i < n; i++)
    {
        printf("%i \t %i \t %i \t %.2f \n", x[i], s, l, sum/n);
    }
    
    delete [] x;
    
    return 0;
}
@kemort
1
2
3
4
5
   printf("N\t L\t S\t A\n");
    for(int i = 0; i < n; i++)
    {
        printf("%i \t %i \t %i \t %.2f \n", x[i], s, l, sum/n);
    }

You are repeatedly printing out the largest, the smallest and the average for each single array element. They should be printed once.

Something like this :
1
2
3
4
5
6
   printf("N\t L\t S\t A\n");
    for(int i = 0; i < n; i++)
    {
        printf("%i\n", x[i]);
    }
    printf("\%i \t %i \t %.2f \n", s, l, sum/n);

Last edited on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>

int main(){
    //n = amount of numbers input
    //x = number given by user
    //s = smallest number
    //l = largest number
    
    int n = 0, s = 999, l = 0;
    float sum = 0;
    
    printf("How many numbers do you want to compare? ");
    scanf("%d", &n);
    
    int* x = new int[n];
    
    for (int index = 0; index < n; index++)
    {
        printf("Enter a number: ");
        scanf("%d", &x[index]);
        
        sum += x[index];
        
        if(x[index] < s)
            s = x[index];
        
        if(x[index] > l)
            l = x[index];
    }
    
    printf("N\t L\t S\t A\n");
    for(int i = 0; i < n; i++)
    {
        if(i == (n - 1))
        printf("%i \t %i \t %i \t %.2f \n", x[i], s, l, sum / n);
        else 
        printf("%i\n", x[i]);
    }
    
    delete [] x;
    
    return 0;
}
Topic archived. No new replies allowed.