| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 923 人关注过本帖
标题:为什么把程序分成四个文件就运行不了?
只看楼主 加入收藏
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
结帖率:90.63%
收藏
已结贴  问题点数:20 回复次数:20 
为什么把程序分成四个文件就运行不了?
求解,什么回事?我把一个程序代码分成四个就运行不了,求解析!但原程序可以运行!
程序代码:
#include "stdio.h"
#define N  5
#define M  7
void main()
{
   
    float score[N][M];
   
    extern input_score(score) ;
    extern count_average(score);
    extern output_score(score);
    extern score_sort(score);
    extern output_score(score);
   
}#define N  5
#define M  7
extern void score_sort(float arr[][M], int n)
{   int j, k, m, p; float temp ;
    for (m=0; m<n-1; m++)
    {   k=m ;
        for (j=m+1; j<n; j++)
            if (arr[k][M-1]<arr[j][M-1])  k=j ;
        if (k!=m)
        { 
            for(p=0; p<M; p++)
            {   temp=arr[m][p] ; arr[m][p]=arr[k][p] ;
                arr[k][p]=temp ;
            }
        }
    }
}
#include "stdio.h"
#define N  5
#define M  7
extern void output_score(float arr[N][M])
{  int n, m;
   printf ("   学号  课程—1  课程—2  课程—3  课程—4  课程—5 平均成绩\n\n") ;
   for ( n=0; n<N; n++)
   {  printf (" %6d", (int)arr[n][0] );
      for(m=1; m<M; m++)
          printf (" %8.2f", arr[n][m]) ;
      printf("\n\n") ;
   }
}#define N  5
#define M  7
extern void  count_average(float arr[][M], int n)
{   float aver ;
    int k, m ;
    for ( k=0; k<n; k++)
    {  aver=0.0 ;
       for (m=1; m<M-1; m++)
           aver=aver + arr[k][m] ;
       arr[k][M-1]=aver/(M-2) ;  
    }
}#define N  5
#define M  7
#include "stdio.h"
void input_score(float arr[N][M])
{  int n, m;
   for ( n=0; n<N; n++)
   {  printf(" input NO please:") ;
      scanf("%f",&arr[n][0]) ;
      printf(" input %d score:\n",M-2) ;
      for(m=1; m<M-1; m++)
          scanf("%f",&arr[n][m]) ;
      printf (" \n\n") ;
   }
}
2012-12-12 16:41
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:10 
写的什么啊?

把问题表露清楚先
2012-12-12 16:46
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 2楼 daniel_
原程序是这样的
程序代码:
//  输入若干学生的若干门课程的成绩,通过函数调用求每个学生的平均成绩,并按平均成绩的高低从高到低排序输出。
//假设保存的有学号、5门课程,平均成绩


#include "stdio.h"
#define N  5
#define M  7

void input_score(float arr[N][M])
{  int n, m;
   for ( n=0; n<N; n++)
   {  printf(" input NO please:") ;
      scanf("%f",&arr[n][0]) ;
      printf(" input %d score:\n",M-2) ;
      for(m=1; m<M-1; m++)
          scanf("%f",&arr[n][m]) ;
      printf (" \n\n") ;
   }
}

void  count_average(float arr[][M], int n)
{   float aver ;
    int k, m ;
    for ( k=0; k<n; k++)
    {  aver=0.0 ;
       for (m=1; m<M-1; m++)
           aver=aver + arr[k][m] ;
       arr[k][M-1]=aver/(M-2) ; 
          //计算每个人的平均成绩
    }
}


void output_score(float arr[N][M])
{  int n, m;
   printf ("   学号  课程—1  课程—2  课程—3  课程—4  课程—5 平均成绩\n\n") ;
   for ( n=0; n<N; n++)
   {  printf (" %6d", (int)arr[n][0] );
      for(m=1; m<M; m++)
          printf (" %8.2f", arr[n][m]) ;
      printf("\n\n") ;
   }
}


void score_sort(float arr[][M], int n)
{   int j, k, m, p; float temp ;
    for (m=0; m<n-1; m++)
    {   k=m ;
        for (j=m+1; j<n; j++)
            if (arr[k][M-1]<arr[j][M-1])  k=j ; // 按平均成绩排序
        if (k!=m)
        { 
            for(p=0; p<M; p++)
            {   temp=arr[m][p] ; arr[m][p]=arr[k][p] ;
                arr[k][p]=temp ;
            } // 学号、各门课程成绩、平均成绩同时交换
        }
    }
}


void main()
{   float score[N][M] ;
    input_score(score) ;   //调用函数实现成绩数据输入
    count_average(score, N);   //调用函数计算平均成绩
    output_score(score) ;     //调用函数输出未排序的成绩
    score_sort(score, N);  //调用函数按平均成绩排序
    output_score(score) ;     //调用函数输出已排序的成绩
}


我学了模块化,想尝试把程序分成模块,结果没成功!

新手发言,请多指教!
2012-12-12 16:51
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 3楼 chen1204019
稍等一下 我给你调试一下先
2012-12-12 16:52
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 2楼 daniel_
不好意思,我是新人,还不是很会发帖,请多包涵!请多多指教!

新手发言,请多指教!
2012-12-12 16:53
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include <stdio.h>//只是把这个给改了一下

其他的能运行啊
2012-12-12 16:59
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
#include <stdio.h>

#define N  5
#define M  7

void input_score(float arr[N][M])
{  int n, m;//我建议你定义变量前,接着赋初值 比如 int n = 0;
   for ( n=0; n<N; n++)
   {  printf("input NO.%d please:\n",n+1) ;//这个地方你最好改的人性化点
      scanf("%f",&arr[n][0]) ;
      printf("input NO.%d  five score:\n",n+1) ;//here ,too
      for(m=1; m<M-1; m++)
          scanf("%f",&arr[n][m]) ;
      printf (" \n") ;
   }
}

void  count_average(float arr[][M], int n)
{   float aver ;
    int k, m ;
    for ( k=0; k<n; k++)
    {  aver=0.0 ;
       for (m=1; m<M-1; m++)
           aver=aver + arr[k][m] ;
       arr[k][M-1]=aver/(M-2) ;
          //计算每个人的平均成绩
    }
}


void output_score(float arr[N][M])
{  int n, m;
   printf("************************ *************************\n");
   printf ("   学号  课程—1  课程—2  课程—3  课程—4  课程—5 平均成绩\n\n") ;
   for ( n=0; n<N; n++)
   {  printf (" %6d", (int)arr[n][0] );
      for(m=1; m<M; m++)
          printf (" %8.2f", arr[n][m]) ;
      printf("\n\n") ;
   }
}


void score_sort(float arr[][M], int n)
{   int j, k, m, p; float temp ;
    for (m=0; m<n-1; m++)
    {   k=m ;
        for (j=m+1; j<n; j++)
            if (arr[k][M-1]<arr[j][M-1])  k=j ; // 按平均成绩排序
        if (k!=m)
        {
            for(p=0; p<M; p++)
            {   temp=arr[m][p] ; arr[m][p]=arr[k][p] ;
                arr[k][p]=temp ;
            } // 学号、各门课程成绩、平均成绩同时交换
        }
    }
}


void main()
{   float score[N][M] ;
    input_score(score) ;   //调用函数实现成绩数据输入
    count_average(score, N);   //调用函数计算平均成绩
    output_score(score) ;     //调用函数输出未排序的成绩
    score_sort(score, N);  //调用函数按平均成绩排序
    output_score(score) ;     //调用函数输出已排序的成绩
}

2012-12-12 17:08
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 6楼 daniel_
但我运行的结果是这样
图片附件: 游客没有浏览图片的权限,请 登录注册
,即是不能运行!

新手发言,请多指教!
2012-12-12 17:12
chen1204019
Rank: 1
来 自:广东
等 级:新手上路
帖 子:93
专家分:0
注 册:2012-12-3
收藏
得分:0 
回复 7楼 daniel_
能不能分成几个文件?

新手发言,请多指教!
2012-12-12 17:13
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 8楼 chen1204019
你这程序。。。

你的函数申明哪去了???
2012-12-12 17:14
快速回复:为什么把程序分成四个文件就运行不了?
数据加载中...
 
   



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

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