| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 531 人关注过本帖
标题:请问我的程序出了什么问题?勾股数
只看楼主 加入收藏
Incle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-1-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
请问我的程序出了什么问题?勾股数
【程序功能】   输入两个自然数P和Q(P),找出满足下列条件的整数组(K,M,N)。(1)    P≤K≤Q(2)    K*K+M*M=N*N【编程要求】1.编写函数int chlm(int p,int q,int a[ ][3])实现以下功能:查找K,M在[p,q]范围内取值且满足以上条件的所有整数组(K,M,N)。若找到则将这些整数组保存到a指向的数组中,函数返回找到的整数组的组数。若找不到则函数返回0。2.编写函数main实现以下功能:声明二维数组a和变量p、q,输入两个自然数并保存到p和q中(p),调用chlm函数在[p,q]范围内查找满足以上条件的整数组。若找不到则在屏幕上输出“out found”,否则将查找结果保存到a数组中,输出a数组数据到屏幕及文件myf2.out中。


以下是本菜鸟编的程序(用的是Tubo C):
#include
int i=0;
int chlm(int p,int q,int a[][3])
{int k,m,n;
 for(k=p;k<=q-1;k++)
    for(m=k+1;m<=q;q++)
       for(n=m;n<=k+m;n++)
      if(k*k+m*m==n*n)    /*陷入死循环?系统标识这里*、
        {a[i][0]=k;
         a[i][1]=m;
         a[i][2]=n;
        }
 if(i==0)return 0;
 else return 1;
}

main()
{int j,a[100][3],p,q;
 FILE *fp;
 fp=fopen("myf2.out","w+");
 scanf("%d%d",&p,&q);
 if(chlm(p,q,a))
   for(j=0;j
搜索更多相关主题的帖子: 自然数 
2015-01-09 13:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
楼主不能与时俱进啊   现在还用tc呢  不容易,这东东找到它估计都很难

DO IT YOURSELF !
2015-01-09 13:44
Incle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-1-9
收藏
得分:0 
回复 2楼 wp231957
学校要求,没办法。。。
2015-01-09 13:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
态度有问题,不多说。我Google了一下

【程序功能】
输入两个自然数P和Q(P<Q),找出满足下列条件的整数组(K,M,N)。
(1)  P ≤ K < M ≤ Q
(2)  K*K+M*M=N*N

【编程要求】
1. 编写函数int chlm(int p,int q,int a[][3])实现以下功能:
     查找K、M在[p,q]范围内取值且满足以上条件的所有整数组(K,M,N)。
     若找到则将这些整数组保存到a指向的数组中,函数返回找到的整数组的组数。若找不到则函数返回0。
2. 编写函数main实现以下功能:
     声明二维数组a和变量p、q,输入两个自然数并保存到p和q中(p<q),调用chlm函数在[p,q]范围内查找满足以上条件的整数组。
     若找不到则在屏幕上输出“not found”,否则将查找结果保存到a数组中,输出a数组数据到屏幕及文件myf2.out中。

【测试数据与运行结果】
输入:
       p=12   q=38
输出:
       12  16  20
       12  35  37
       15  20  25
       15  36  39
       16  30  34
       18  24  30
       20  21  29
       21  28  35
       24  32  40
       27  36  45
2015-01-09 13:56
Incle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-1-9
收藏
得分:0 
回复 4楼 rjsp
态度??有问题??我想了半天了。。。
2015-01-09 14:00
Incle
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-1-9
收藏
得分:0 
额。。。小弟问题已基本解决,各位大神看看还有没有问题?

#include<stdio.h>
#include<math.h>
int i=0;
int chlm(int p,int q,int a[][3])
{int k,m,x,y;
 for(k=p;k<q;k++)
    for(m=k+1;m<=q;m++)
      {x=k*k+m*m;
       y=sqrt(x);
       if(x==y*y)
         {a[i][0]=k;
          a[i][1]=m;
          a[i][2]=sqrt(x);
          i++;}
      }
 return (i);
}

main()
{int j,a[100][3],p,q;
 FILE *fp;
 fp=fopen("myf2.out","w+");
 printf("Input p,q:");
 scanf("%d%d",&p,&q);
 if(chlm(p,q,a))
   for(j=0;j<i;j++){printf("%3d%3d%3d\n",a[j][0],a[j][1],a[j][2]);
            fprintf(fp,"%3d%3d%3d\n",a[j][0],a[j][1],a[j][2]);
           }
 else printf("out found\n");
 fclose(fp);
}
2015-01-09 15:02
快速回复:请问我的程序出了什么问题?勾股数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028469 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved