...已经定义了还会出现error C2065: 'k' : undeclared identifier...
发布网友
发布时间:2024-03-15 21:40
我来回答
共3个回答
热心网友
时间:2024-08-20 11:55
你的主函数最后少了一个括号。。。我晕。。。还有创建函数与定义的函数的类型不同 一个是VOID 一个是INT的。。。。这是优点错误的 ~~嘿嘿
#include <stdio.h>
int sort(int a[],int n);
int main(void)
{
int i, n;
int repeat, ri;
int a[10];
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
sort(a,n);
printf("After sorted: ");
for(i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
}
int sort(int a[],int n)
{int i,k=0;
for(i=0;i<n;i++){
if(a[i]>a[i+1]){
k=a[i];
a[i]=a[i+1];
a[i+1]=k;}}
return 0;}
热心网友
时间:2024-08-20 11:57
按照编译原理来说,C语言中定义的变量都会在对应的符号表中存储相应标记,如果有相同的变量定义,那么这个重复的变量就不能再申请符号表里的存储空间,此时编译器就会报错的。这也是考虑到程序的容易理解。个人的理解
热心网友
时间:2024-08-20 11:59
我这边调试的时候没有出现你说的K变量没有声明的错误。。
只是有一个问题就是。你在声明sort()函数的时候声明的返回值是void类型的。但是你后面实现或定义的时候是int返回值类型的。。这样就有问题的。。
还有就是主函数里面的for循环里面差一个右大括号的。