| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1347 人关注过本帖
标题:如何计算两两相交之数的个数
只看楼主 加入收藏
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
结帖率:93.33%
收藏
已结贴  问题点数:10 回复次数:10 
如何计算两两相交之数的个数
我编写了如下一段代码:
#include <stdio.h>
int main()
{
  int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{5,5,5,5,5,5,5,5,5,5,5,5,5}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
  int i,j,k=1;
  for(i=0;i<7;i++)
      {
         for(j=0;j<13;j++)
            printf("%d ",a[i][j]);
         printf("\n");
        }  
   for(i=1;i<7;i++)
      {
        if(a[i][0]==5)
          {
             k=k+1;
             printf("a[%d][0] ",i);
          }
      }
    printf("k=%d\n",k-1);      
}
运行效果如图:
图片附件: 游客没有浏览图片的权限,请 登录注册

现在我想做一种计算:
元素“1”和2(指的是元素1下面第一行,因为2比1大1)相交的数是5.
元素“1”和3(指的是元素1下面第二行,因为3比1大2)相交的数是5.
元素“1”和4(指的是元素1下面第三行,因为4比1大3)相交的数是5.
元素“1”和6(指的是元素1下面第五行,因为6比1大5)相交的数是5.
和1相交其值为5的就2,3,4,6,
那么这四个数(2,3,4,6)之间是不是两两相交的数也是5呢?
计算方法照旧:
元素“2”和3(指的是元素2下面第一行,因为3比2大1)相交的数是5.
元素“2”和4(指的是元素2下面第二行,因为4比2大2)相交的数是5.
元素“2”和6(指的是元素2下面第四行,因为6比2大4)相交的数是8.
这里和2相交其值为5的就是3和4了,6就被排除了。
又来计算最后一步了,就剩下3和4了。
元素“3”和4(指的是元素3下面第一行,因为4比3大1)相交的数是5.
所以最后得出结论:两两相交的值为5的数和1有关的数共4个(1,2,3,4)。
最终的目的就是为了计算这两两相交之数的个数4。请问该怎么修改我上面的代码呢?
搜索更多相关主题的帖子: 计算 相交 个数 printf 元素 
2018-01-08 17:17
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
收藏
得分:0 
#include <stdio.h>
 int main()
 {
   int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{5,5,5,5,5,5,5,5,5,5,5,5,5}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
   int i,j,p,m=1,k=0;
   for(i=0;i<7;i++)
       {
          for(j=0;j<13;j++)
             printf("%d ",a[i][j]);
          printf("\n");
         }  
 for(;m<8;m++)
        {
        p=a[0][m]-1   ;

        if(a[p][0]==5)
        k++;
         }
   

     printf("k=%d\n",k);
          return 0;
 }

[此贴子已经被作者于2018-1-8 18:21编辑过]

2018-01-08 18:20
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
楼上的不符合题意,如果原数组是: int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
计算出来的K值应该是3,是1和2和3共计3个数两两相交的值都是5,但是按你的程序运行后,K值为2,而不是3了,所以不对。
2018-01-08 21:19
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
收藏
得分:0 
是你让根据你的代码改的  数组是你定的    你是想让哪几个数相交?


[此贴子已经被作者于2018-1-9 09:45编辑过]

2018-01-09 09:27
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
收藏
得分:0 
回复 3楼 自学的数学
2018-01-09 09:34
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
那这样吧,就以
 int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
  来计算,计算出来的K值应该是3,是和1两两相交的数,取值范围就是该数组的最大行(也就是数字7)来计算。
2018-01-09 11:29
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
收藏
得分:0 
回复 6楼 自学的数学
哪你先说出来K=3的三个数是啥
2018-01-09 15:52
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
就以该数组为例,计算出来的K值应该为3,它是1和2和3,共3个数。
2018-01-09 16:01
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
收藏
得分:0 
回复 8楼 自学的数学
现在我想做一种计算:
 元素“1”和2(指的是元素1下面第一行,因为2比1大1)相交的数是5.
元素“1”和3(指的是元素1下面第二行,因为3比1大2)相交的数是5.
元素“1”和4(指的是元素1下面第三行,因为4比1大3)相交的数是5.
元素“1”和6(指的是元素1下面第五行,因为6比1大5)相交的数是5.
和1相交其值为5的就2,3,4,6,

这是你说的话  为什么这四个数没有1   又为什么K=3的时候又有1
2018-01-09 16:31
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
回复楼上:
在第一次循环的时候,和1相交的数是2,3,4,6,加上1本身就应该共计5个数,在第二次循环的时候(也就是2,3,4,6之间循环):2,3,4它们3个数之间是两两相交的(也就是他们相交的值都为5),而6与它们之间相交的值不是5,而是8,所以最后6被排除了。通过两次循环,和1相交的数就只有2,3,4共计3个,加上1本身,最后就是4个了(1,2,3,4).
按int a[7][13]={{1,2,3,4,5,6,7,8,9,10,11,12,13},{5,5,5,5,5,5,5,5,5,5,5,5,5},{5,5,5,5,5,5,5,5,5,5,5,5,5},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8},{8,8,8,8,8,8,8,8,8,8,8,8,8}, {8,8,8,8,8,8,8,8,8,8,8,8,8}};
为例,计算出来的K值应该为3,它是1和2和3,共3个数(1,2,3)。
不论用哪个数组为例,计算出来的K值都是和1有关的。
2018-01-09 17:17
快速回复:如何计算两两相交之数的个数
数据加载中...
 
   



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

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