harumakigohan686

CP1250 猜数魔术 CP1239 字符串反向

我的做法:

#include <stdio.h>
int Magic(int m);
int main()
{
    int m, ret;
    printf("Input a sum:");
    scanf("%d", &m);
    ret = Magic(m);
    if (ret != 1)
    {
        printf("The sum you calculated is wrong!\n");
    }
    return 0;
}
int Magic(int m)
{
    int a, b, c, n;
    for (a = 1; a < 9; a++)
    {
        for (b = 1; b < 9; b++)
        {
            for (c = 1; c < 9; c++)
            {
                n = 122 * a + 212 * b + 221 * c;//本质上是五种组合加在一起
                if (m == n)
                {
                    printf("The number is %d\n", 100 * a + 10 * b + c);
                    return 1;
                }
            }
        }
    }
    return 0;
}
俺的做法;
#include <stdio.h>
#include <string.h>

char *change(char *p);
int main(int argc, const char *argv[])
{
	printf("Enter string:");
	char a[100];
	scanf("%s",a);
	char *p=a;
	change(p);
	printf("a=%s\n",a);
	return 0;
}
char *change(char *p)
{
    char n;
    char *p1;
    char *p2;
    int k;
    k=strlen(p);
    p1=p;
    p2=p+k-1;
    while(p1<p2)
    {
        n=*p1;
        *p1=*p2;
        *p2=n;
        p2--;
        p1++;
    }
}
本质上还是有所收获,比如可以通过字符串长度的加减来判断前后,以及指针与地址的区别。就算是首地址也可以获取字符串的长度。
 

posted on 2023-01-04 01:36  harumakigohan  阅读(32)  评论(0)    收藏  举报