[Error] 'sort' was not declared in this scope

【问题描述】

由于学习Java用的编译器为Eclipse和IDEA今天使用Dev C++练习算法设计编写一个函数然后去调用另外一个函数,习惯Java里面编写类然后调用这个类即可,但是C语言好久没用,写一个函数的时候发现我自己把一个函数放到main()函数下面,然后调用的时候出现上述所示。

【解决方法】

>原因一

我想程序在运行的时候估计先是执行了main()函数然后未执行这个sort()函数就显示我这个sort()未定义,

解决方法:把自己定义的方法放到main()函数上面即可,如下

#include<stdio.h> 
int sort(int a[],int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n-1;j++){
			if(a[j] > a[j+1]){
				int temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
	}
}
int main()  
{  
   int n,k;
   printf("请输入元素个数:");
   scanf("%d",&n);
   int a[n];
   printf("请依次输入元素:");
   for(int i=0;i<=n;i++){
   	scanf("%d",&a[i]);
   }
   sort(a,n);
   printf("请输入第n小元素:");
   scanf("%d",&k);
   for(int i=0;i<=n;i++){
   	if(i== k-1){
   		 printf("请输入第%d小元素为:%d",k,a[i]);
   		 break;
   	}
   	
   } 
 
}

>原因二

既然说我没用声明这个方法那么我就在main()函数上面去声明下sort()方法,如下所示

#include<stdio.h> 
int sort(int a[],int n);
int main()  
{  
   int n,k;
   printf("请输入元素个数:");
   scanf("%d",&n);
   int a[n];
   printf("请依次输入元素:");
   for(int i=0;i<=n;i++){
   	scanf("%d",&a[i]);
   }
   sort(a,n);
   printf("请输入第n小元素:");
   scanf("%d",&k);
   for(int i=0;i<=n;i++){
   	if(i== k-1){
   		 printf("请输入第%d小元素为:%d",k,a[i]);
   		 break;
   	}
   	
   } 
 
}

int sort(int a[],int n){
	for(int i=0;i<n;i++){
		for(int j=0;j<n-1;j++){
			if(a[j] > a[j+1]){
				int temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			}
		}
	}
}

 

【小结】

其实这是一个很低级的错误,只不过是自己学习C语言没怎么去专研,希望初学者在学习自定义函数的时候能注意下这个错误。

 

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值