| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:[求助]困扰我几天了,请大家指点一下。
只看楼主 加入收藏
zidance
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-5-22
收藏
 问题点数:0 回复次数:3 
[求助]困扰我几天了,请大家指点一下。

要求是随机产生100个点(Xi,Yi),1<=i<=100,1<=Xi,Yi<=100,输出100个点。再输出100阶的行列式a(i)[j],其中a(i)[j]为(Xi,Yi)和(Xj,Yj)的距离。然后输出行列式中的最大元素和最小元素,并输出它们的行和列,即输出a(i)[j]形式,确定i和j的值。我试着编了一个程序,但是有两个问题,一是无法保证100个点都不相同,二是实在无法输出最值的行列。请大家指点一下。

程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int i,j,row,colum;
float max_value(float array[101][101])
{
float max=array[1][1];
for(i=1;i<101;i++)
for(j=1;j<101;j++)
if(array[i][j]>max)
max=array[i][j];
return(max);
}
float min_value(float array[101][101])
{
float min=array[1][1];
for(i=1;i<101;i++)
for(j=1;j<101;j++)
if(array[i][j]<min)
min=array[i][j];
return(min);
}
main()
{
int a[101],x[101],y[101];
float b[101][101],max,min;
time_t t;
srand((unsigned) time(&t));
for(i=1;i<101;i++)
{
x[i]=rand()%100+1;
y[i]=rand()%100+1;
}
for(i=1;i<101;i++)
printf("a[%d]=(%d,%d)\t",i,x[i],y[i]);
for(i=1;i<101;i++)
for(j=1;j<101;j++)
b[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
printf("array A:\n");
for(i=1;i<101;i++)
{

for(j=1;j<101;j++)
printf("%7.2f",b[i][j]);
printf("\n");
}
max=max_value(b);
printf("The max number is %5.2f\n",max);

min=min_value(b);
printf("The min number is %5.2f\n",min);
getch();
}

搜索更多相关主题的帖子: include 行列式 
2007-05-22 15:23
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
float max_value(float array[101][101],int* max_x,int* max_y);
通过指针返回最大元素的下标。在C++中可以使用引用方便多了
2007-05-22 19:23
tom8382
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-23
收藏
得分:0 
回复:(zidance)[求助]困扰我几天了,请大家指点一下...

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int i,j,row,colum;
static int rowmax,colmax,rowmin,colmin;
#define N 10
float max_value(float array[N][N])
{
float max=array[0][0];
rowmax=0;
colmax=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(array[i][j]>max)
{
max=array[i][j];
rowmax=i;
colmax=j;
}
return(max);
}
float min_value(float array[N][N])
{
float min=array[0][0];
rowmin=0;
colmin=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(array[i][j]<min)
{
min=array[i][j];
rowmin=i;
colmin=j;
}
return(min);
}
main()
{
int a[N],x[N],y[N];
float b[N][N],max,min;
time_t t;
srand((unsigned) time(NULL));
for(i=0;i<N;i++)
{
x[i]=rand()%N+1;
y[i]=rand()%N+1;
}
for(i=0;i<N;i++)
printf("a[%d]=(%d,%d)\t",i,x[i],y[i]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
b[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
printf("array A:\n");
for(i=0;i<N;i++)
{

for(j=0;j<N;j++)
printf("%7.2f",b[i][j]);
printf("\n");
}
max=max_value(b);
printf("The max number is %5.2f\n",max);
printf("max located at (%d,%d)",rowmax,colmax);
printf("\n");

min=min_value(b);
printf("The min number is %5.2f\n",min);
printf("min located at (%d,%d)",rowmin,colmin);
printf("\n");
//getchar();
}


这样就可以了吧,我是刚学的c语言,请大家指教

2007-05-22 19:42
zeseler
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-4-14
收藏
得分:0 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int i,j,row,colum;
float max_value(float array[101][101])
{
float max=array[1][1];
for(i=1;i<101;i++)
for(j=1;j<101;j++)
if(array[i][j]>max)
max=array[i][j];
return(max);
}
float min_value(float array[101][101])
{
float min=array[1][1];
for(i=1;i<101;i++)
for(j=1;j<101;j++)
if(array[i][j]<min)
min=array[i][j];
return(min);
}
main()
{
int a[101],x[101],y[101];
float b[101][101],max,min;
time_t t;
srand((unsigned) time(&t));
for(i=1;i<101;i++)
{
x[i]=rand()%100+1;
y[i]=rand()%100+1;
}
for(i=1;i<101;i++)
printf("a[%d]=(%d,%d)\t",i,x[i],y[i]);
for(i=1;i<101;i++)
for(j=1;j<101;j++)
b[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
printf("array A:\n");
for(i=1;i<101;i++)
{

for(j=1;j<101;j++)
printf("%7.2f",b[i][j]);
printf("\n");
}
max=max_value(b);
printf("The max number is %5.2f\n",max);

min=min_value(b);
printf("The min number is %5.2f\n",min);
getchar();
return 0;
}

the max number is 130.38
the min number is 0.00

2007-05-22 19:49
快速回复:[求助]困扰我几天了,请大家指点一下。
数据加载中...
 
   



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

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