A different approach...
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int relay = 0;
int i;
for ( i = 0; argv[1][i]; ++i )
{
int x = 1 << (argv[1][i] - '1 ');
printf("x = %d\n", x);
relay += x;
}
printf("relay = %d\n", relay);
return 0;
}
/* my output
C:\Test>test 46
x = 8
x = 32
relay = 40
C:\Test>test 137
x = 1
x = 4
x = 64
relay = 69
*/
Reputation Points: 2780
Solved Threads: 312
long time no c
Offline 4,790 posts
since Apr 2004