chapter 2 section 2.3 Controlling Companies

本文展示了一个使用C++编写的竞赛编程示例代码,该程序处理了一个涉及矩阵操作的问题,通过迭代更新矩阵中的值来模拟某种算法过程,并将结果输出到文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
ID: niepeng1
LANG: C++
TASK: concom
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <iostream>
using namespace std;
#define MAX2 102

int map[MAX2][MAX2],num,n;
int tem[MAX2];
bool cond;
FILE *in, *out;
void Process(int i)
{
 int j,j1;
 for(j=1;j<=num;j++)
  tem[j]=0;
 //if(i==21)
 // cout<<" ";
 for(j=1;j<=num;j++)
 {
  if(map[i][j] >= 50)
  {
   for(j1=1; j1<=num; j1++)
   {
   // if(j1 == 80)
   //  cout<<" ";
    if( j1 != i)
     tem[j1] += map[j][j1];
   }
  }
 }
 for(j=1; j<=num;j++)
  if(tem[j] >= 50 && map[i][j] < 50)
  {
   map[i][j] =50;
   cond=true;
  }

}
int main(void)
{
 int i,j,i1,j1;

 in = fopen("concom.in", "r");
 out = fopen("concom.out", "w");
 cond=true;
 for(i=0;i<MAX2;i++)
  for(j=0;j<MAX2;j++)
  {
   map[i][j]=0;
   if(i==j)
    map[i][j]=50;
  }
 fscanf(in,"%d",&n);
 for(i=1;i<=n;i++)
 {
  fscanf(in,"%d",&i1);
  if(num < i1)
   num=i1;
  fscanf(in,"%d",&j1);
  if(num<j1)
   num=j1;
  fscanf(in,"%d",&map[i1][j1]);
 }
 while(cond==true)
 {
  cond=false;
  for(i=1;i<=num;i++)
   Process(i);
 }
 for(i=1;i<=num;i++)
  for(j=1;j<=num;j++)
  {
   if(i !=j && map[i][j] >=50)
    fprintf(out,"%d %d/n",i,j);
    //cout<<i<<" "<<j<<endl;
  }
 fclose(in);fclose(out);
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值