| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1407 人关注过本帖
标题:数组作为函数参数问题
只看楼主 加入收藏
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
结帖率:100%
收藏
 问题点数:0 回复次数:7 
数组作为函数参数问题
#include"stdio.h"
#define size 100



void accept_array(int a[],int size)
{
    int i;
    printf("请输入%d个人的成绩:\n",size);
    for(i=0;i<size;i++)
        scanf("%d",&a[i]);
}

void sort(int a[],int size)
{
    int min,i,j,temp;
    for(i=0;i<size;i++)
    {
        i=min;
        for(j=i;j>size;j++)
            if(a[min]>a[j])
                min=j;
            temp=a[min];
            a[min]=a[j];
            a[j]=temp;
    }

}


void show_array(int a[],int size)
{
    int i;
    for(i=0;i<size;i++)
        printf("%2d ",&a[i]);
    printf("\n");
}


void main()
{
    int score[size];
    accept_array(score,size);
    printf("before sorted: ");
    show_array(score,size);
    sort(score,size);
    printf("after sorted: ");
    show_array(score,size);

}

D:\Microsoft Visual Studio\MyProjects\学生成绩排序\函数学生成绩排序问题.cpp(6) : error C2143: syntax error : missing ')' before 'constant'
D:\Microsoft Visual Studio\MyProjects\学生成绩排序\函数学生成绩排序问题.cpp(6) : error C2143: syntax error : missing ';' before 'constant'
D:\Microsoft Visual Studio\MyProjects\学生成绩排序\函数学生成绩排序问题.cpp(6) : fatal error C1004: unexpected end of file found
很简单的一个程序,有三个问题,我实在是没发现在哪里,谢谢大侠帮我看看,感激不尽











搜索更多相关主题的帖子: include 
2011-09-13 19:32
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
#define size 100
这里定义的size和下面函数的形参重名了

2011-09-13 19:42
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
数组作为参数也会退化为指针  因为不是整个数组进入堆栈

而是数组的首元素地址进入堆栈

                                         
===========深入<----------------->浅出============
2011-09-13 19:53
arhathao
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-9-12
收藏
得分:0 
#define size 100

与void accept_array(int a[],int size)冲突了,你已经定义了size为常量了,不需要传递
2011-09-13 20:04
meidireshuiq
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-9-9
收藏
得分:0 
这个也是数组作为函数形参的问题
编了个用选择法给数组排序的程序 但是调试的时候老显示出错,哪错了?
程序如下:
#include<stdio.h>
void main()
{
    void sort(float array[],int n);
    int i;
    float a[10];
    printf("please input the array:\n");
    for(i=0;i<10;i++)
        scanf("%f",&a[i]);
    for(i=0;i<9;i++)
        sort(a+i,10-i);
    printf("the sorted array is:\n");
    for(i=0;i<10;i++)
        printf("%5.3f",a[i]);
}
void sort(float array[],int n)
{
    int j,min=0;
    float t;
    for(j=1;j<n;j++)
        if(array[j]<array[min])
            min=j;
    t=array[0];
    array[0]=array[min];
    array[min]=t;
}
2011-09-13 20:14
arhathao
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-9-12
收藏
得分:0 
回复 楼主 万仁全
下面程序已在visual studio 2010 运行成功
程序代码:
#include "stdafx.h"
#include <time.h>
#define size 5

void accept_array(int score[])
{
    int i=0;
    printf("请输入%d个人的成绩:\n",size);
    for(i=0;i<size;i++)
        scanf("%d",&score[i]);
}

void sort(int score[])
{
    int i=0,j=0,temp;
    for(i=0;i<size;i++)//这个地方改动的多一点
    {
        //i=min;
        for(j=i;j<size;j++)
            if(score[j]>score[i])
                {temp=score[i];score[i]=score[j];score[j]=temp;}
    }

}


void show_array(int score[])
{
    int i;
    for(i=0;i<size;i++)
        printf("%2d ",score[i]);//这个地方的&去掉了,因为printf不是取地址
    printf("\n");
}

    
int _tmain(int argc, _TCHAR* argv[])
{
    
    time_t start_time;
    time(&start_time);
    //**********************************************************
    int score[size];

    accept_array(score);
    printf("before sorted: ");
    show_array(score);
    sort(score);
    printf("after sorted: ");
    show_array(score);


    //**********************************************************
    printf("\nRunning time :%g sec.\n",difftime(time(NULL),start_time));
    return 0;
}



[ 本帖最后由 arhathao 于 2011-9-13 20:35 编辑 ]
2011-09-13 20:33
arhathao
Rank: 2
等 级:论坛游民
帖 子:9
专家分:20
注 册:2011-9-12
收藏
得分:0 
回复 5楼 meidireshuiq
实在是没看懂你的程序,你可以参考一下,我刚才回复楼主的那个程序
2011-09-13 20:40
万仁全
Rank: 1
等 级:新手上路
帖 子:23
专家分:1
注 册:2011-8-31
收藏
得分:0 
很谢谢各位了!!万分感激
2011-09-14 18:46
快速回复:数组作为函数参数问题
数据加载中...
 
   



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

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