| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1061 人关注过本帖
标题:我自己写的信号放大器的程序,可总是出错,大家帮忙看下哪里错了,怎么修改
只看楼主 加入收藏
张673490879
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-1-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
我自己写的信号放大器的程序,可总是出错,大家帮忙看下哪里错了,怎么修改
#include<cstdio>
#include<cstring>
#include<stdio.h>

#define NUM 100
int main()
{
    int n,flag[NUM],G[NUM][NUM],lchild[NUM],rchild[NUM],tolerance,magnifier[NUM],D[NUM];
    int i,j,a,b,c,d,temp[NUM],end;
    printf("请输入一共有几层节点:");
    scanf("%d",&n);
    printf("请按以下格式输入边:0 1 3 表示从0号节点到1号节点有一条边,权值为3\n,根节点为0号节点\n节点标号请小于100\n 每个节点的出度最多是2\n");
    memset(flag,0,sizeof(flag));
    memset(G,0,sizeof(G));
    memset(magnifier,0,sizeof(magnifier));
    flag[0]=1;
    for(i=0;i<n-1;i++)
    {
        printf("第%d层有几条边:",i+1);
        scanf("%d",&i);
        end=0;
        for (int j = 0; j <d;j++)
        {
            printf("输入错误!\n程序正在退出......\n");
            return 0;
        }
        if (lchild[a])rchild[a]=b;
        else lchild[a]=b;
        G[a][b]=c;
        temp[end++]=b;
    }
    for (j=0;j<end;j++)flag[temp[j]]=1;

void set_magnifier(int magnifier[],int G[][NUM],int lchild[],int rchild[],int tolerance,int D[],int num);
printf("请输入容差:");
scanf("%d",&tolerance);
if (!tolerance)
{
    printf("输入错误!\n程序正在退出......\n");
    return 0;

}
if (n==1)
{
    printf("不需要放置放大器\n");
}
memset(D,0,sizeof(D));
set_magnifier(magnifier,G,lchild,rchild,tolerance,D,0);{
int output=0;
for (i=0;i<NUM;i++)
    if (magnifier[i])
    {
        printf("%d",i);
        output=1;
    }
    if (!output) printf("不需要放置放大器\n");
    else printf("\n");
    return 0;
}
    void set_magnifier(int magnifier[],int G[][NUM],int lchild[],int rchild[],int tolerance,int D[],int num);
            if (!lchild[num]&&!rchild[num])
            return;
        if (lchild[num])
        {
            set_magnifier(magnifier,G,lchild,rchild,tolerance,D,lchild[num]);
            if (D[lchild[num]]+G[num][lchild[num]]>tolerance)
            {
                magnifier[lchild[num]]=1;
                D[num]>=D[lchild[num]];
            }
            else D[num]>=D[rchild[num]]+G[num][rchild[num]];
        }
                                                      
        if(rchild[num])
        {
            set_magnifier(magnifier,G,lchild,rchild,tolerance,D,rchild[num]);
            if (D[rchild[num]]+G[num][rchild[num]]>tolerance)
            {
                magnifier[rchild[num]]=1;
                D[num]>=D[rchild[num]];
            }
            else D[num]>=D[rchild[num]]+G[num][rchild[num]];
        }
}

检测说if (!lchild[num]&&!rchild[num])这句以及后面的num 均没有标识符  且main没有返回值
求解。。。。
搜索更多相关主题的帖子: 信号放大器 include 
2015-01-20 11:05
张673490879
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-1-20
收藏
得分:0 
还有>=运算符不起作用,让我输入带有副作用的运算符
2015-01-20 11:18
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:20 
你这到底是c代码 还是c++代码

DO IT YOURSELF !
2015-01-20 11:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
错误信息要贴出来 而不是转述

DO IT YOURSELF !
2015-01-20 11:21
张673490879
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-1-20
收藏
得分:0 
回复 4楼 wp231957
是C++代码
>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(70): warning C4552: “>=”: 运算符不起任何作用;应输入带副作用的运算符
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(11): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(290) : 参见“scanf”的声明

2015-01-20 11:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你在条件分支语句使用
else D[num]>=D[rchild[num]]+G[num][rchild[num]];
还是你自己解释一下啥意思吧  

一般都是if ??> ?? 然后。。。。  你这好像弄反了吧

第2个警告信息可以忽略不计

DO IT YOURSELF !
2015-01-20 11:26
张673490879
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-1-20
收藏
得分:0 
回复 4楼 wp231957
这是完整的QAQ   
1>------ 已启动全部重新生成: 项目: 信号放大器, 配置: Debug Win32 ------
1>  源.cpp
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(11): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(290) : 参见“scanf”的声明
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(20): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(290) : 参见“scanf”的声明
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(36): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\vs2012\vc\include\stdio.h(290) : 参见“scanf”的声明
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(63): error C2561: “main”: 函数必须返回值
1>          d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(6) : 参见“main”的声明
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(70): warning C4552: “>=”: 运算符不起任何作用;应输入带副作用的运算符
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(72): warning C4552: “>=”: 运算符不起任何作用;应输入带副作用的运算符
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(81): warning C4552: “>=”: 运算符不起任何作用;应输入带副作用的运算符
1>d:\用户目录\我的文档\visual studio 2012\projects\信号放大器\信号放大器\源.cpp(83): warning C4552: “>=”: 运算符不起任何作用;应输入带副作用的运算符
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
2015-01-20 11:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
c++代码 你使用stdio.h 干嘛 你使用printf 干嘛

DO IT YOURSELF !
2015-01-20 11:27
张673490879
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-1-20
收藏
得分:0 
回复 6楼 wp231957
嗯,我试一下
2015-01-20 11:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
main必须有返回值,这个还不好修改吗  int main{}  必然  得用return 0 来结束主函数

DO IT YOURSELF !
2015-01-20 11:28
快速回复:我自己写的信号放大器的程序,可总是出错,大家帮忙看下哪里错了,怎么 ...
数据加载中...
 
   



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

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