If you double-click the program, it will run but the window will close before you get a chance to see the results. The pause lets you view the results before closing the window. The PAUSE isn't really needed. It simply prints a message and waits for a response so the command prompt does not close.

And, I didn't look close enough at the original program. The memory for str should be allocated before it is used.

~Rick

 At 1/16/2007 09:46 PM, you wrote:
Hi Rick,

Nice snippet !!! But, what is the use of system("PAUSE"); in your program ?

Cheers,
Murali


----- Original Message ----
From: Rick <[EMAIL PROTECTED]>
To: [email protected]
Sent: Wednesday, 17 January, 2007 4:16:47 AM
Subject: Re: [c-prog] can u solve this problem?

At 1/16/2007 04:01 PM, you wrote:
Hi

I want to write a program that reads a string s then sums the number assciated to each string in teh alphabet like the following schema:
a=1,b=2,c=3, d=4,e=5,f= 6,g=7,h=8, i=9,j=10, k=20,l=30, m=40,n=50, o=60,p=70,
q=80,r=90,s= 100,t=200, u=300,v=400, w=500,x=600, y=700,z=800.

I wrote the following program for the first 10 characters of the schema. But it didn't work properly.

can u fix it?

Here is the program:
============ ====


int main(int argc, char *argv[])
{
  char *s;
  int *t,n,a=0,i;

  cout << "Enter a string";
  cin >> s ;
  n=strlen(s);
  for (i=0;i<n;i++)
  {
    switch(s[i])
    {
        case 'a':
              {a=a+1;
              t[1]=a;}

        case 'b':
               {a=a+1;
              t[2]=a;}

        case 'c':
               {a=a+1;
              t[3]=a;}
        case 'd':
               {a=a+1;
              t[4]=a;}
        case 'e':
               {a=a+1;
              t[5]=a;}
        case 'f':
               {a=a+1;
              t[6]=a;}
        case 'g':
               {a=a+1;
              t[7]=a;}
        case 'h':
               {a=a+1;
              t[8]=a;}
        case 'i':
               {a=a+1;
              t[9]=a;}
        case 'j':
               {a=a+1;
              t[10]=a;}


    }
       a=a+t[i];

  }
  cout << "the length is " << a;
  system("PAUSE");
  return 0;
}


Mohammed

I'm not the best programmer around, but I would not use a switch statement. I would do something like this:

#include <cstdlib>
#include <iostream>

using namespace std;

// Add each letter in the supplied string using the following values:

// a=1,b=2,c=3, d=4,e=5,f= 6,g=7,h=8, i=9,j=10, k=20,l=30, m=40,n=50, o=60,p=70,
// q=80,r=90,s= 100,t=200, u=300,v=400, w=500,x=600, y=700,z=800.

int main(int argc, char *argv[])
{

  char *str;
  int val;
  int idx;
  int num;
  int tmp;
int values[26] = {1,2,3,4,5,6, 7,8,9,10, 20,30,40, 50,60,70, 80,90,100, 200,300,400, 500,600,700, 800};

  cout << "Enter a string: ";
  cin >> str;
  num=strlen(str) ;
  for (val=idx=0;idx<num;idx++)
  {
      tmp = str[idx]-'a' ;
      val += values[tmp];
  }
  cout << "The sum is " << val << endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}

~Rick


No need to miss a message. <http://us.rd.yahoo.com/evt=43910/*http://mobile.yahoo.com/mail>Get email on-the-go with Yahoo! Mail for Mobile. <http://us.rd.yahoo.com/evt=43910/*http://mobile.yahoo.com/mail>Get started.




Here's a new way to find what you're looking for - <http://us.rd.yahoo.com/mail/in/yanswers/*http://in.answers.yahoo.com/>Yahoo! Answers

Reply via email to