首页上一页 1 下一页尾页 2 条记录 1/1页
《C语言程序开发范例宝典》P311实例223快速分类
发表在C语言图书答疑
2011-04-22
是否精华
是
否
版块置顶:
是
否
源程序如下:
#include <ctype.h>
#include <stdio.h>
void main()
{
int i,comp1(),comp2();
clrscr();
printf("the original array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
qsort(num,10,sizeof(int),comp1);
printf("\n the accending sorted array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
printf("\n the decending aorted array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
getch();
}
int comp1(int *i,int *j)
{
return *i-*j;
}
int comp2(int *i,int *j)
{
return *j-*i;
}
测试过程描述:
我在初次编译运行程序时发现可以正常运行,且结果和书上的一致。但是我发现num未定义且qsort函数是在头文件:stdlib.h中定义的,于是我稍作改动将ctype.h修改为stdlib.h,再次运行,TC即提示num未定义错误。我很纳闷,打开ctype.h头文件看后没有发现有num的定义,于是又将stdlib.h修改为ctype.h,结果不能通过编译,提示错误也是num未定义。
问题:请问为什么第一次能够通过编译?如果第一次的程序时正确的,那么为什么第二次不能够通过编译呢?期待您的回答,谢谢。
#include <ctype.h>
#include <stdio.h>
void main()
{
int i,comp1(),comp2();
clrscr();
printf("the original array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
qsort(num,10,sizeof(int),comp1);
printf("\n the accending sorted array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
printf("\n the decending aorted array is:\n");
for(i=0;i<10;i++)
printf("%10d",num[i]);
getch();
}
int comp1(int *i,int *j)
{
return *i-*j;
}
int comp2(int *i,int *j)
{
return *j-*i;
}
测试过程描述:
我在初次编译运行程序时发现可以正常运行,且结果和书上的一致。但是我发现num未定义且qsort函数是在头文件:stdlib.h中定义的,于是我稍作改动将ctype.h修改为stdlib.h,再次运行,TC即提示num未定义错误。我很纳闷,打开ctype.h头文件看后没有发现有num的定义,于是又将stdlib.h修改为ctype.h,结果不能通过编译,提示错误也是num未定义。
问题:请问为什么第一次能够通过编译?如果第一次的程序时正确的,那么为什么第二次不能够通过编译呢?期待您的回答,谢谢。