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