标题:下面这个程序运行时提示错误,怎么修改呢?
只看楼主
AA2838468579
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-3-6
结帖率:0
已结贴  问题点数:20 回复次数:22 
下面这个程序运行时提示错误,怎么修改呢?
运行时提示错误:(1) 'fun' : cannot convert parameter 1 from 'int [19]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
 (2)'fun' : cannot convert parameter 1 from 'int [12]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
 (3)'fun' : cannot convert parameter 1 from 'int [2]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void fun(int,int,int);
int D[6];        
void main()
{   
    int i;   
    int A[19]={3,4,6,7,8,9,11,13,14,15,16,18,19,20,24,27,28,29,33};   
    int B[12]={1,2,10,12,17,21,22,25,26,30,31,32};   
    int C[2]={5,23};   
    fun(A,19,3);   
    fun(B,12,2);   
    fun(C,2,1);   
    for(i=0;i<6;i++)        
        printf("%d\t",D[i]);
}
void fun(int a[],int m,int n){      
    static int i=0;                  
    int j=0,k,t;   
    srand(time(NULL));   
    for(i;i<6;i++){        
        t=rand()%(m-j+1);        
        D[i]=a[t];        
        for(k=t;k<m-j-1;k++)                 
            a[k]=a[k+1];        
        if(++j==n){                        
            i++;            
            break;        
        }   
    }
}
搜索更多相关主题的帖子: conversion convert include cannot 
2014-03-06 09:38
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
声明和实现不一致

DO IT YOURSELF !
2014-03-06 09:43
AA2838468579
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-3-6
得分:0 
回复 2楼 wp231957
怎么修改呢?
2014-03-06 09:51
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
简单的改  你就把声明删除  把实现部分移到MaiN之前

正常的改  你就把声明和实现改为一样即可

DO IT YOURSELF !
2014-03-06 09:58
AA2838468579
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-3-6
得分:0 
你能不能把修改后完整的程序发给我呢?
2014-03-06 10:14
AA2838468579
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-3-6
得分:0 
回复 4楼 wp231957
你能不能把修改后完整的程序发给我呢?
2014-03-06 10:16
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
我现在没环境   难道我说的你不懂吗
还是说代码根本就不是你自己写的

DO IT YOURSELF !
2014-03-06 10:16
AA2838468579
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2014-3-6
得分:0 
回复 7楼 wp231957
是这样改吗?
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void fun(int a[],int m,int n);
int D[6];        
void main()
{   
    int i;   
    int A[19]={3,4,6,7,8,9,11,13,14,15,16,18,19,20,24,27,28,29,33};   
    int B[12]={1,2,10,12,17,21,22,25,26,30,31,32};   
    int C[2]={5,23};   
    fun(A,19,3);   
    fun(B,12,2);   
    fun(C,2,1);   
    for(i=0;i<6;i++)        
        printf("%d\t",D[i]);
}
void fun(int a[],int m,int n){      
    static int i=0;                  
    int j=0,k,t;   
    srand(time(NULL));   
    for(i;i<6;i++){        
        t=rand()%(m-j+1);        
        D[i]=a[t];        
        for(k=t;k<m-j-1;k++)                 
            a[k]=a[k+1];        
        if(++j==n){                        
            i++;            
            break;        
        }   
    }
}
2014-03-06 10:28
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
然后呢  编译结果呢?  执行情况呢?

DO IT YOURSELF !
2014-03-06 10:30
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
得分:10 
把第四行改成 void fun(int [] ,int,int);
你声明的函数的参数是接受三个整型数, 后面的调用和定义就变量了一个整型数组和两个整数了, 不一致.
2014-03-06 10:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-428086-1-1.html




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

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