永发信息网

C语言编程求西西弗斯串

答案:2  悬赏:0  手机版
解决时间 2021-03-03 21:26
C语言编程求西西弗斯串
最佳答案
我花了好久,你一分不给,让我情何以堪啊


#include
#include

#define ARRAY_LEN 100
char *iToStr(char *s, int value, int *num)
{
int i = 0;
int modtmp = 0;
int tmp = value;
int j = 0;
char ctmp = '0';

*num = 0;
while (0 != tmp)
{
modtmp = tmp % 10;
s[i++] = modtmp + '0';
tmp = tmp / 10;
}

s[i] = '\0';
for (j = 0; j < i/2; j++)
{
ctmp = s[j];
s[j] = s[i-j-1];
s[i-j-1] = ctmp;
}

*num = i;
return s;}
char* fun(char a[]){
char *pTmp = a;

int oddNum = 0; //奇数个数 int evenNum = 0; //偶数个数
int totalNum = 0;

int i = 0;
char cstr[20] = {0}; char *pcstr = cstr;
int cnum = 0;

int tmp = 0;
for (; *pTmp != '\0'; ++pTmp)
{
tmp = *pTmp - '0';
if (0 <= tmp && tmp <= 9)
{
if(tmp % 2 == 0)
{
evenNum++;
}
else
{
oddNum++;
}
totalNum++;
}
else
{
break;//遇到不是数字的字符了
}
}

iToStr(pcstr, evenNum, &cnum);
pcstr = pcstr+cnum;
iToStr(pcstr, oddNum, &cnum);
pcstr = pcstr+cnum;
iToStr(pcstr, totalNum, &cnum);

printf("%s \n", cstr);
if (0 == strcmp(a, cstr)) {

memcpy(a, cstr, strlen(cstr));
a[strlen(cstr)] = '\0';
return a;
}
else
{
return fun(cstr);
}
}

void main(){
char a[ARRAY_LEN];
printf("请输入一个数字串: ");
int b = 0;
fgets(a, ARRAY_LEN, stdin); //这样不会照成溢出

printf("神秘的数是:%s\n",fun(a));}
全部回答
神秘数 不就是123吗  gets函数好像取得是字符串吧 而你要操作的数据是整数 类型不同
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
那就是他上新闻的原因用英语怎么说
南京国联电力工程设计有限公司怎么样?应届生
静安青年创业实践孵化园地址有知道的么?有点
如何才能把青瓜变成黄瓜呢?
请问,如果去k房唱k,人算比较多20以前,玩什
用微信购买京东的商品怎么退货?
鑫达五金建材怎么去啊,有知道地址的么
40男人一朵花,是啥意思?
化简比:5厘米:80米 3厘米:120000米 5毫米
上海国旅火车票代售处地址有知道的么?有点事
as long as its free翻译成中文是什么?在线等
1979年农历七月二十三寅时与1987年农历四月十
鹿鼎记OL 80级以后干嘛??
庄子关于原子的主要观点
土耳其烤肉地址有知道的么?有点事想过去
推荐资讯
下列说法不正确的是BA. 0既不是正数,也不是
太原大溪地水景在哪个花鸟鱼虫市场
《地表水环境质量标准》中Ⅰ、Ⅱ类水域和Ⅲ类
下列选项中,表述错误的一项是:A.王安石被称
怎么我的手机充电 充了一会 就自动不充了 就
沈阳牙齿矫正上哪好?
曹子里供电营业厅地址有知道的么?有点事想过
谛听为什么不敢方面揭穿假悟空?
全国哪个旅游城市小偷最猖狂?
有一首歌是草原上的歌,一开始就是马儿跑的声
直流电动机的工作原理是通电线圈在________受
下图中A、B是呼吸道管壁上分布最多的两种细胞
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?