求C/C++高手 帮忙看一下这个函数哪里错了

此昵称已隐藏 2012-03-26 10:40:09
int q=0;char z[1000][4]={NULL};//全局变量
void arr(char* a)//函数定义
{//函数体,从主函数调用一个长度为4的字符数组,以ASCII值从大到小排续,消除重复
int i,j,t;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for (i=0;i<1000;i++)//屏蔽重复的数组
if (!strcmp(z[i],a))
break;
if (i==1000)
{
strcpy(z[q++],a);
getto();//输出函数
}
}
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
此昵称已隐藏 2012-03-26
  • 打赏
  • 举报
回复
题:
方程式:a^3 + b^3 = c^3 + d^3
其中:“^”表示乘方。a、b、c、d是互不相同的小于30的正整数。
这个方程有很多解。比如:a = 1,b=12,c=9,d=10 就是一个解。因为:
1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。
当然,a=12,b=1,c=9,d=10 显然也是解。
你的任务是:找到所有小于30的不同的正整数解。把a bc d按从小到大排列,用逗号分隔,每个解占用1行。
重复方案最多出现两次,可以完全不重复
我写的代码:
#include"stdio.h"
#include "string.h"
int q=0;char z[1000][4]={NULL};
void geto()//输出函数
{
int i,j;
for (i=0;i<q;i++)
{
for(j=0;j<4;j++)
printf("%d ",z[i][j]);
printf("\n");
}
}
void arr(char* a)//函数定义
{//函数体,从主函数调用一个长度为4的字符数组,以ASCII值从大到小排续,消除重复
int i,j,t;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for (i=0;i<1000;i++)//屏蔽重复的数组
if (!strcmp(z[i],a))
break;
if (i==1000)
{
strcpy(z[q++],a);
getto();//输出函数
}
}
void main()
{
int a,b,c,d;
char x[4];
for(a=0;a<30;a++)
for(b=0;b<30;b++)
for(c=0;c<30;c++)
for(d=0;d<30;d++)//4个for控制a,b,c,d;取出所有组合
{
if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)//a,b,c,d两两不相等
if (a*a*a+b*b*b==c*c*c+d*d*d)//a的立方+b的立方==c立方+d立方
{
x[0]=a;
x[1]=b;
x[2]=c;
x[3]=d;
arr(x);
}
}
}
lisial 2012-03-26
  • 打赏
  • 举报
回复
z没给值
yacobimax 2012-03-26
  • 打赏
  • 举报
回复
怎么个错法?
你的函数想做什么?
hen_hao_ji 2012-03-26
  • 打赏
  • 举报
回复
还是没具体理解你函数想做什么。为什么 要 i == 1000 才strcpy?
hen_hao_ji 2012-03-26
  • 打赏
  • 举报
回复

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

楼主这里是在给 a数组排序吧,即就是在给 a b c d 排序吧。楼主可能理解错题目的意思了,题目只是让你给得到的不同解 按照 a b c d 的排序, 而不是要给 得到的一个结果 a b c d排序吧。

比如 说: 3 9 4 5 和 2 9 6 4这种情况可行应该结果是这样: 2 9 6 4 和 3 9 4 5 而不是 2 4 6 9 和 3 4 5 9 吧?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧