C语言中主函数中相关问题???

pingheng74 2014-09-19 09:42:00
    #include <iostream>  
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <queue>
#include <map>
#include <algorithm>

using namespace std;
int mp[20][20], b[20], max1, n;
struct node
{
int a[15], top, ans, x;
};
void bfs()
{
int i, j, x;
queue<node>q;
node f1, f2;
f1.top=0;
f1.x=-1;
f1.ans=0;
q.push(f1);
while(!q.empty())
{
f1=q.front();
q.pop();
//printf("%d\n",f1.ans);
if(f1.x==n-1)
{
if(max1<f1.ans)
max1=f1.ans;
continue ;
}
for(i=0;i<f1.top;i++)
{
f2.a[i]=f1.a[i];
}
f2.ans=f1.ans;
f2.top=f1.top;
f2.x=f1.x+1;
q.push(f2);
f2.top=f1.top+1;
f2.a[f1.top]=f2.x;
f2.ans=f1.ans+b[f2.x];
for(i=0;i<f1.top;i++)
{
f2.ans=f2.ans+mp[f2.a[i]][f2.x];
}
q.push(f2);
}
}
int main()
{
int t, i, j;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&mp[i][j]);
}
}
max1=-1;
bfs();
if(max1<0)
printf("0\n");
else
printf("%d\n",max1);
}
return 0;
}



主函数中:分别输入的 scanf("%d",&b[i])与scanf("%d",&mp[i][j])在主函数中什么作用?在整个代码中又是什么作用呢?
请大侠帮小弟解释一下呗。谢谢了!!!
...全文
117 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2014-09-19
  • 打赏
  • 举报
回复
引用 楼主 pingheng74 的回复:
主函数中:分别输入的 scanf("%d",&b[i])与scanf("%d",&mp[i][j])在主函数中什么作用?在整个代码中又是什么作用呢? 请大侠帮小弟解释一下呗。谢谢了!!!
就是让你从键盘先输入n个整数,给b[0]到b[n-1]赋值;然后再输入n*n个整数,给mp[0][0]到mp[n-1][n-1]赋值。 楼主问的是这个吗?

69,369

社区成员

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

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