哪位c编程高手给我编译一个程序,急求呀!
我想让26个小写字母返回成数字,是这样的:a到i返回1到9,j到r返回0到9,s返回0,t到z返回2到8,也就是a到z返回成数字,如果是两位数字就返回个位和十位相加和的个位。如:bku就返回233。以下是我编写的,感觉对着呢就是得不到结果,请高手不吝赐教。
main()
{ char *p,a[20]= "abcdefghij ";
p=a;
for(;*p!= '\0 ';p++)
{ if( 'j '> *p> = 'a ') *p=*p-48;
else if( 's '> *q> = 'j ') *p=*p-57;
else if( 'z '> =*q> 's ') *p=*p-66;
*p=*p-67;
}
puts(a);
}
[解决办法]
#include <stdio.h>
int main()
{
char *p,a[20]= "abcdefghij ";
p=a;
for(;*p!= '\0 ';p++)
{
//if( 'j '> *p> = 'a ')
if( *p> = 'a ' && *p < 'j ')
*p=*p-48;
//else if( 's '> *q> = 'j ')
else if( *p> = 'j ' && *p < 's ')
*p=*p-57;
//else if( 'z '> =*q> 's ')
else if( *p> 's ' && *p <= 'z ')
*p=*p-66;
else
*p=*p-67;
}
puts(a);
return 0;
}
[解决办法]
#include <iostream>
void main()
{
char *p,a[20]= "abcdefghij ";
p=a;
for(;*p!= '\0 ';p++)
{
if( 'j '> *p&&*p> = 'a ') *p=*p-48;
else if( 's '> *p&&*p> = 'j ') *p=*p-57;
else if( 'z '> =*p&&*p> 's ') *p=*p-66;
else *p=*p-67;
}
puts(a);
system( "pause ");
}
[解决办法]
楼上的没看出来吗?
C语言里面比较大小的条件没有你那样的表达式..
新的C/C++ 标准都分别规定了 main 的接口只有两种:
int main ( void );
int main ( int argc, char * argv[] );
返回 0 表示运行成功,返回非 0 表示失败。
[解决办法]
if( 'j '> *p> = 'a ')
呵呵不是这样比较法的.
是这样if(*p < 'j ' && *p > = 'a ').
看到楼主这句"上个厕所就解出来了"就想笑,哈哈