| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:求助:初次编写的程序看不出函数调用上出了什么问题
只看楼主 加入收藏
笨羊羊
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
求助:初次编写的程序看不出函数调用上出了什么问题
请大侠帮我看看下面的程序问题出在哪里~~~急用~~~
#include<stdio.h>
#include<conio.h>
int JDW[150][3],NTJ[150][4],N1,N2;
void main()
{
    int i,j,NA;
    void output();
    void nobeam();
    void nopier();

        printf("输入总的节点编号个数和从节点个数N1 N2\n");
        scanf("%d%d",&N1,&N2);
        for(i=0;i<N1;i++)
            for(j=0;j<3;j++)
                JDW[i][j]=0;
        printf("      以如下格式输入从节点信息:\n");
        printf("        n    *    *    *\n");
        printf("      (从节点号) (x,y,z的约束信息)\n");
        printf("      其中,x,y,z的约束信息规定如下:\n");
        printf("      (1)独立节点位移分量输0;\n");
        printf("      (2)支座约束输-1;\n");
        printf("      (3)位移与主节点相同输主节点号。\n");
        printf("      例如:\n");
        printf("          2 1 1 0\n");
        printf("          4 0 -1 0\n");
        printf("          6 5 5 0\n");
                                                                  
        for(i=0;i<N2;i++)                                   
            for(j=0;j<4;j++)
                scanf("%d",&NTJ[i][j]);

        for(i=0;i<N2;i++)                                         
        {
            int k,h;
            k=NTJ[i][0];
            for(j=0,h=0;h<3;h++)
                JDW[k-1][h]=NTJ[i][h+1];
        }

        printf("\n计梁柱轴向变形时,输入0\n");                     
        printf("\n不计梁轴向变形时,输入1\n");
        printf("\n不计柱轴向变形时,输入2\n");
        printf("\n不计梁柱轴向变形时,输入3\n");
        scanf("%d",&NA);

        if(NA==0)
        {
            void output();
        }


        else if(NA==1)
        {
            void nobeam();
            void output();
        }   
   
        else if(NA==2)
        {
            void nopier();
            void output();
        }


        else if(NA==3)
        {
            void nobeam();
            void nopier();
            void output();
        }
        getch();
}


void output()
{
    int k=1,i,j,t;
    for(i=0;i<N1;i++)
        for(j=0;j<3;j++)
        {
            if(JDW[i][j]<0)
                JDW[i][j]=0;
            else if(JDW[i][j]==0)
                JDW[i][j]=k++;
            else
            {
                t=JDW[i][j];
                JDW[i][j]=JDW[--t][j];
            }
            }
        printf("节点定位向量如下:\n");
        for(i=0;i<N1;i++)
            {
                for(j=0;j<3;j++)
                    printf(" %d ",JDW[i][j]);
                    printf("\n");
            }
        }


void nobeam()
{
    int a[150]={0},i,j,n;
    printf("输入水平梁段数目:\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        {
            printf("输入%d段水平梁段的最大节点编号:\n",i);
            scanf("%d",&a[i]);
            for(j=a[i-1]+1;j<a[i];j++)
                JDW[j][0]=a[i-1]+1;
        }
}


void nopier()
{
    int i;
    for(i=0;i<N1;i++)
        JDW[i][1]=-1;
}



搜索更多相关主题的帖子: 信息 include 
2011-10-17 23:43
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:7 
程序代码:
#include<stdio.h>
#include<conio.h>
int JDW[150][3],NTJ[150][4],N1,N2;
void main()
{
    int i,j,NA;
    void output();
    void nobeam();
    void nopier();

        printf("输入总的节点编号个数和从节点个数N1 N2\n");
        scanf("%d%d",&N1,&N2);
        for(i=0;i<N1;i++)
            for(j=0;j<3;j++)
                JDW[i][j]=0;
        printf("      以如下格式输入从节点信息:\n");
        printf("        n    *    *    *\n");
        printf("      (从节点号) (x,y,z的约束信息)\n");
        printf("      其中,x,y,z的约束信息规定如下:\n");
        printf("      (1)独立节点位移分量输0;\n");
        printf("      (2)支座约束输-1;\n");
        printf("      (3)位移与主节点相同输主节点号。\n");
        printf("      例如:\n");
        printf("          2 1 1 0\n");
        printf("          4 0 -1 0\n");
        printf("          6 5 5 0\n");
                                                                 
        for(i=0;i<N2;i++)                                  
            for(j=0;j<4;j++)
                scanf("%d",&NTJ[i][j]);

        for(i=0;i<N2;i++)                                        
        {
            int k,h;
            k=NTJ[i][0];
            for(j=0,h=0;h<3;h++)
                JDW[k-1][h]=NTJ[i][h+1];
        }

        printf("\n计梁柱轴向变形时,输入0\n");                     
        printf("\n不计梁轴向变形时,输入1\n");
        printf("\n不计柱轴向变形时,输入2\n");
        printf("\n不计梁柱轴向变形时,输入3\n");
        scanf("%d",&NA);

        if(NA==0)
        {
            output();//////////
        }


        else if(NA==1)
        {
            nobeam();//////////
            output();//////////
        }   
   
        else if(NA==2)
        {
            nopier();//////////
            output();//////////
        }


        else if(NA==3)
        {
            nobeam();//////////
            nopier();//////////
            output();//////////
        }
        getch();
}


void output()
{
    int k=1,i,j,t;
    for(i=0;i<N1;i++)
        for(j=0;j<3;j++)
        {
            if(JDW[i][j]<0)
                JDW[i][j]=0;
            else if(JDW[i][j]==0)
                JDW[i][j]=k++;
            else
            {
                t=JDW[i][j];
                JDW[i][j]=JDW[--t][j];
            }
            }
        printf("节点定位向量如下:\n");
        for(i=0;i<N1;i++)
            {
                for(j=0;j<3;j++)
                    printf(" %d ",JDW[i][j]);
                    printf("\n");
            }
        }


void nobeam()
{
    int a[150]={0},i,j,n;
    printf("输入水平梁段数目:\n");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        {
            printf("输入%d段水平梁段的最大节点编号:\n",i);
            scanf("%d",&a[i]);
            for(j=a[i-1]+1;j<a[i];j++)
                JDW[j][0]=a[i-1]+1;
        }
}


void nopier()
{
    int i;
    for(i=0;i<N1;i++)
        JDW[i][1]=-1;
}
调用函数时,不用写返回值类型。
2011-10-18 12:00
笨羊羊
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-17
收藏
得分:0 
回复 2楼 laznrbfe
感谢大侠帮忙解决问题!
由于本人还要继续学习c语言,所以,想请大侠解释下为什么调用时把void去掉。
2011-10-19 11:28
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
收藏
得分:7 
函数调用时不需要把函数返回类型写出来   
2011-10-19 12:40
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 3楼 笨羊羊
调用函数时,不用写返回值类型。
2011-10-19 12:52
welling01
Rank: 1
等 级:新手上路
帖 子:14
专家分:9
注 册:2011-9-15
收藏
得分:7 
不是很明白,他这段代码用VC6++编译是可以用的,但用论坛上下载的GCC编译就没法,原因是conio.h文件没声明。
2011-10-19 14:33
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:0 
回复 6楼 welling01
conio.h不是C标准库中的头文件。
2011-10-20 08:13
快速回复:求助:初次编写的程序看不出函数调用上出了什么问题
数据加载中...
 
   



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

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