正文
c语言revert函数 c语言reverse函数使用
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
跪求c语言大神
#include stdio.h
#define ADD 1
#define MINUS -1
void revert(const char *in, char *out)
{
const char *p = in + strlen(in);
while (p != in)
{
*out++ = *--p;
}
*out = '\0';
}
int special_calc(const char *num_a, const char *num_b, int op)
{
int s = 0;
int n = 1;
char tmpa[20];
char tmpb[20];
revert(num_a, tmpa);
revert(num_b, tmpb);
const char *a = tmpa[0];
const char *b = tmpb[0];
while (*a || *b)
{
int num1 = *a ? (*a++) - '0' : 0;
int num2 = *b ? (*b++) - '0' : 0;
if (op == ADD)
{
s += (num1 + num2) % 10 * n;
}
else
{
s += ((num1 num2 ? num1 + 10 : num1) - num2) * n;
}
n *= 10;
}
return s;
}
char input(char *p)
{
int ch;
while ((ch = getchar()) != EOF)
{
if (ch == '+' || ch == '-' || ch == '\n')
{
return ch;
}
*p++ = ch;
}
}
int main(int argc, char *argv[])
{
char a[20] = {0};
char b[20] = {0};
int op = ADD;
if (input(a[0]) == '-')
{
op = MINUS;
}
input(b[0]);
//printf("special_calc(+)=%d\n", special_calc("12", "268", ADD));
//printf("special_calc(-)=%d\n", special_calc("12", "268", MINUS));
printf("%s%c%s=%d\n", a, (op == ADD ? '+' : '-'), b,
special_calc(a, b, op));
return 0;
}
另一种思路:
参考楼下用户,化简后的版本:
#include stdio.h
int main()
{
int a, b, s = 0, i = 1;
char c;
scanf("%d%c%d", a, c, b);
while (a || b)
{
if (c == '+')
s += i * ((a % 10 + b % 10) % 10);
else
s += i * (((a % 10 - b % 10) + 10) % 10);
a /= 10;
b /= 10;
i *= 10;
}
printf("%d\n", s);
return 0;
}
关于c语言,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
#includestdio.h
#includestring.h
int main()
{
void oppose(char string[]);//
//int i;
char str[20];//
printf("please enter a string:\n");
//for(i=0;i=19;i++)
gets(str);//
oppose(str);
//for(i=0;i=19;i++)
puts(str);//
return 0;
}
void oppose(char string[20])
{
char *p=string,*q=string+strlen(string)-1,t;
while(pq)
{
t=*p;
*p=*q;
*q=t;
p++;
q--;
}
}
用C语言实现字符串逆序存放,要求完成revert函数的定义
#includestdio.h
#includestring.h
void revert(char* s)
{
int len = strlen(s), i;
char t;
for(i=0;ilen/2;i++){
t = s[i];
s[i] = s[len-1-i];
s[len-1-i] = t;
}
}
C语言 回文数设计
c语言判断回文数方法:生成逆向数,判断与原数是否相同,相同则是,不同则不是。
参考代码:
#include stdio.h
void main()
{
int x=1, y,t;
printf("input n: "); scanf("%d", x ); //输入数据
y=0;
t=x; //保存下原数
do {
y=y*10+t%10;
t/=10;
} while(t); //原数逆序
if ( y==x )
printf("yes!\n");
else
printf("no!\n");
}
C语言程序设计求助
#include stdio.h
#include string.h
#include stdlib.h
long my_pow( int x, int n )
{
int y=1, i=0;
for( i=0; in; i++ )
{
y = y*x;
}
return y;
}
long func2( int **a, int m, int n )
{
long s = 0;
int i,j;
for( s=0,i=0; im; i++ )
{
for( j=0; jn; j++ )
{
int cur = *((int*)a + i*n + j );
if ( i==j )
s = s + cur;
}
}
return s;
}
int revert( char *a )
{
int len = strlen( a ), i=0;
for( i=0; ilen/2; i++ )
{
char t = a[i];
a[i] = a[len-i-1];
a[len-i-1] = t;
}
return 0;
}
char* strDel( char *str, int m, int n )
{
int len = strlen( str ), i=0, k=0;
if ( m+n len )
{
printf( "%d + %d len:%d\n", m, n, len );
return NULL;
}
char *del;
del = (char*)malloc(n);
memcpy( del, str+m, n );
del[n] = 0;
for( k=m,i=0; str[m+n+i]; i++ )
{
str[m+i] = str[m+n+i];
}
str[m+i] = 0;
return del;
}
int str2int( char *str )
{
int s=0, i=0, j=0;
for( s=0,i=0,j=0; str[i]; i++ )
{
if ( str[i]='0' str[i]='9' )
s = s*10 + str[i]-'0';
}
return s;
}
int sum( int n )
{
if ( n == 1 )
return 1;
return n + sum( n-1 );
}
void main()
{
printf( "1. 2^3 = %ld\n", my_pow(2, 3) );
int a[4][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}
};
printf( "2. %ld\n", func2( (int**)a, 4, 4) );
char s[12];
sprintf( s, "abcdefg" );
revert( s );
printf( "3. revert(abcdefg)=%s\n", s );
printf( "4. %s,", strDel( s, 2, 3 ) );
printf( "[%s]\n", s );
printf( "5. 123a4=%d\n", str2int("123a4") );
printf( "6. 1+2+3+4+..+100=%d\n", sum( 100 ) );
}
关于c语言revert函数和c语言reverse函数使用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。