关于c和c++的编译问题

perfectup 发布于 2013/07/20 15:23
阅读 284
收藏 0

这段代码在c++上怎样才能编译正确呢:使数组中的第n个数开始向前移动一位

1>  7_20_1.cpp
1>c:\users\administrator\documents\visual studio 2010\projects\7_20_1\7_20_1\7_20_1.cpp(12): 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>          c:\users\administrator\desktop\ruanjian\visual c++\vc\include\stdio.h(304) : 参见“scanf”的声明
1>7_20_1.obj : error LNK2019: 无法解析的外部符号 "int __cdecl range(int *,int)" (?range@@YAHPAHH@Z),该符号在函数 _main 中被引用
1>c:\users\administrator\documents\visual studio 2010\Projects\7_20_1\Debug\7_20_1.exe : fatal error LNK1120: 1 个无法解析的外部命令

#include<stdio.h>

#include<stdlib.h>
#define NUM 10
int range(int *s,int n);
int main()
{int i,j,m;
int a[NUM];
m=NUM;
for(i=0;i<10;i++)
{a[i]=rand()%40;printf("%4d",a[i]);}
printf("enter the number");
do{scanf("%d",&j);}while(j<0||j>9);
m=range(a,j);
for(i=0;i<m;i++)
    printf("%4d",a[i]);}
int range(int *s,int n,int m)
{int i;
for(i=n;i<9;i++)
s[i-1]=s[i];m--;return m;}

以下是问题补充:

@perfectup:是的,我糊涂了,如一楼所答! (2013/07/21 20:45)
加载中
0
Jooooooker
Jooooooker
test.c:17:5: error: conflicting types for 'range'
int range(int *s,int n,int m)
    ^
test.c:5:5: note: previous declaration is here
int range(int *s,int n);
    ^

1 error generated.

自己看吧

0
猫哥-u
猫哥-u
外部全局函数是不支持重载的,好比你学C语言的时候听说过函数重载吗,你想重载就包装成一个class
返回顶部
顶部