Sum and multiplication


$ls
first-example  first-example.c  new-sum.c  sum  sum.c
$cat new-sum.c 
#define _XOPEN_SOURCE 500
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void printhelp(char progname[]);

int main(int argc, char *argv[])
{
    int i, opt, sum;

    /* Simple sanity check */
    if (argc == 1)
    {
        printhelp(argv[0]);
        return 1;
    }

    /* Parse command-line options */
    while ((opt = getopt(argc, argv, "smh")) != -1)
    {
        switch (opt)
        {
            case 's': /* sum the integers */
                sum = 0;
                for (i=2; i<argc; i++)
                    sum = sum + atoi(argv[i]);
                break;
            case 'm': /* multiply the integers */
                sum = 1;
                for (i=2; i<argc; i++)
                    sum = sum * atoi(argv[i]);
                break;
            case 'h': /* -h for help */
                printhelp(argv[0]);
                return 0;
            default: /* in case of invalid options*/
                printhelp(argv[0]);
                return 1;
        }
    }
    printf("Total: %i\n", sum);
    return 0;
}

void printhelp(char progname[])
{
    printf("%s [-s] [-m] integer ...\n", progname);
    printf("-s sums all the integers\n"
        "-m multiplies all the integers\n"
        "This program takes any number of integer "
        "values and either add or multiply them.\n"
        "For example: %s -m 5 5 5\n", progname);
}
$ls
first-example  first-example.c  new-sum.c  sum  sum.c
$gcc new-sum.c 
$rm a.out 
$gcc new-sum.c -o new-sum
$./new-sum
./new-sum [-s] [-m] integer ...
-s sums all the integers
-m multiplies all the integers
This program takes any number of integer values and either add or multiply them.
For example: ./new-sum -m 5 5 5
$./new-sum -m 3 3
Total: 9
$./new-sum -s 3 3
Total: 6
$

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: