
哪位高手帮忙解下一道c++编程题
编写函数strcompare(s1,s2),按照字典顺序比较两个字符串s1和s2,若两串相等返回0;若串s1>s2,则返回+1;若串s1<s2,则返回-1。编程找出100...
编写函数strcompare(s1,s2),按照字典顺序比较两个字符串s1和s2,若两串相等返回0;若串s1>s2,则返回+1;若串s1<s2,则返回-1。编程找出1000以内的满足勾股定理的整数组(a,b,c)。
展开
1个回答
展开全部
第一题:
int strcompare(s1, s2)
{
int i = 0;
while(s1[i]!='\0' && s2[i] != '\0')
{
if(s1[i] == s2[i]) i ++;
else
if(s1[i] < s2[i]) return -1;
else return 1;
}
if(s1[i] == '\0' && s2[i] == '\0') return 0;
else if(s1[i] == '\0') return -1;
else return 1;
}
第二题:
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
for(a = 1; a <= 1000; a ++)
for(b = 1; b <= 1000; b ++)
for(c = 1; c <= 1000; c ++)
if(a * a + b * b == c * c)
cout << a << b << c << endl;//这里可以优化 可以剪枝
return 0;
}
int strcompare(s1, s2)
{
int i = 0;
while(s1[i]!='\0' && s2[i] != '\0')
{
if(s1[i] == s2[i]) i ++;
else
if(s1[i] < s2[i]) return -1;
else return 1;
}
if(s1[i] == '\0' && s2[i] == '\0') return 0;
else if(s1[i] == '\0') return -1;
else return 1;
}
第二题:
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
for(a = 1; a <= 1000; a ++)
for(b = 1; b <= 1000; b ++)
for(c = 1; c <= 1000; c ++)
if(a * a + b * b == c * c)
cout << a << b << c << endl;//这里可以优化 可以剪枝
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询