代码参考如下:
#include<iostream>
using namespace std;
int trans(char *s)
{
int sum = 0;
while (*s++ != '\0')
{
if (*s >= '0' && *s <= '9')
sum = sum * 10 + (*s - '0');
}
cout << sum << endl;
return sum * sum;
}
int main()
{
char s[100];
cin >> s;
cout << trans(s);
return 0;
}
你的程序死循环了,因为s指针没有移动,在while循环内最后将指针向后移动即可。
方法是有返回值的,应该是将结果值返回在main中输出吧。
#include<iostream>
using namespace std;
int trans(char *s)
{
int sum = 0;
while (*s!= '\0')
{
if (*s >= '0' && *s <= '9')
sum = sum * 10 + *s - '0';
s++;
}
//cout << sum*sum << endl;
return sum;
}
int main()
{
char s[100];
cin >> s;
int sum=trans(s);
cout << sum*sum << endl;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!