关于limit头文件相关问题。

z245821190 2017-03-31 09:11:52
#include<stdio.h>
#include<limit.h>
#define min(x,y) ((x)<(y)?(x):(y))
int mindistance(int a[],int b[],int m,int n)
{
int minimum=INT_MAX;
int x=0,y=0;
while(x<m&&y<n){
if(a[x]>=b[y]){
minimum=min(minimum,a[x]-b[y]);
y++;}
else{
minimum=min(minimum,b[y]-a[x]);
x++;}
}
return minimum;
}
void main(){
int a[6]={8,18,28,38,48,49};
int b[6]={7,15,16,17,18,56};
int m=n=6;
printf("%d",mindistance(a,b,m,n));
}
这段代码为什么报错,还有limit头文件中的极限值,什么时候用,这里设个变量赋个初值不可以吗?
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-03-31
  • 打赏
  • 举报
回复
引用 2 楼 z245821190 的回复:
那你能说说什么时候才用limits头文件里的值吗
使用grep(linux)或findstr(windows)命令搜索crt\src\目录下的所有文件,看哪些包含字符串"limits.h"
z245821190 2017-03-31
  • 打赏
  • 举报
回复
那你能说说什么时候才用limits头文件里的值吗
自信男孩 2017-03-31
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <limits.h>

#define min(x,y) ((x)<(y)?(x):(y))

int mindistance(int a[], int b[],int m,int n)
{
    int minimum = INT_MAX;
    int x = 0, y = 0;
    while (x < m && y < n) {
        if (a[x] >= b[y]) {
            minimum=min(minimum, a[x]-b[y]);
            y++;
        } else {
            minimum=min(minimum,b[y]-a[x]);
            x++;
        }
    }
    return minimum;
}
int main()
{
    int a[6] = {8,18,28,38,48,49};
    int b[6] = {7,15,16,17,18,56};
    int m, n;

    m = n =6;
    printf("%d\n", mindistance(a, b, m, n));
    return 0;
}
头文件名写错了,include应该是limits.h;
int m = n =6;
这样定义,n是未定义的,改一下;如上的代码,注意下代码风格~
赵4老师 2017-03-31
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
[quote=引用 2 楼 z245821190 的回复:] 那你能说说什么时候才用limits头文件里的值吗
使用grep(linux)或findstr(windows)命令搜索crt\src\目录下的所有文件,看哪些包含字符串"limits.h"[/quote] C:\Program Files\Microsoft Visual Studio 8\VC\crt\src>grep -0is limits.h *.c *.cpp File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\assert.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\dbgheap.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\dbghook.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\dospawn.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\fread.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\gets.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\initctyp.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\initmon.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\lcnvinit.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\lconv.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\localtim.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\loctim64.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\makepath.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\mbrtowc.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\mbsnbcol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\mbsncoll.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\mbsnicol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\mlock.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\output.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\putch.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\putwch.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rotl.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\rotr.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\sbheap.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\setenv.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\setvbuf.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\sprintf.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\stdargv.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strlwr.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strncoll.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strnicol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strtol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strtoq.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strupr.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\strxfrm.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\swprintf.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\vsprintf.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\vswprint.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcrtomb.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcsncoll.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcsnicol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcstol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcstombs.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcstoq.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wcsxfrm.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wctomb.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wild.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\wperror.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xmbtowc.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xstol.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xstoll.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xstoul.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xstoull.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xstrxfrm.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xtoa.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xwcsxfrm.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\xwctomb.c File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\swprintn.cpp File: C:\Program Files\Microsoft Visual Studio 8\VC\crt\src\vswprinn.cpp
z245821190 2017-03-31
  • 打赏
  • 举报
回复
[quote=引用 1 楼 cfjtaishan 的回复:] [我把头文件改了,不报错,但是输出结果也不对呀~结果应该是1,现在是0,还有哪里有问题吗?
ck2333 2017-03-31
  • 打赏
  • 举报
回复
引用 2 楼 z245821190 的回复:
那你能说说什么时候才用limits头文件里的值吗
这个问题问的很没意义,当然是你需要用的时候用啊 http://www.yiibai.com/c_standard_library/limits_h.html
自信男孩 2017-03-31
  • 打赏
  • 举报
回复
引用 2 楼 z245821190 的回复:
那你能说说什么时候才用limits头文件里的值吗
一般是用到某个类型的最大值或者最小值时会用到吧,尤其是在嵌入式平台,由于其会设计不同的硬件平台,不同的编译器会对不同类型的数据大小做一些限制; 建议看一下limits.h里的内容,根据内容来区分在什么场合下使用。
BNUEP Offline Judge 北京师范大学珠海分校离线评测系统是在具备题目测试数据的情况下,能无联网自动评测ACM/ICPC模式的源代码评测系统(即本地测试工具、评测机)。它主要有以下功能(所有的功能都无需联网,在本机即可实现): *评测核心功能: 基本具备Online Judge的判题核心功能,如编译代码、内存限定,时间限定,获取代码长度等; *支持多种语言: 1.0 Beta2版本支持C/C++、Pascal、C#、JAVA; *出题模式 可以在有标准输入数据和标准程序的情况下,由系统产生标准输出数据,并可批量保存,同时自动命名标准输出数据的后缀; *文本高亮对比 在判题后,可以直接在本系统中将自己的程序输出和标准输出进行高亮的文本差异对比,操作类似于一些文本对比软件,在一定程度上可以较方便地发现WA代码的出错细节; *支持不限时执行代码 这个功能可以在一定程度上检测TLE代码的算法是否正确的,当然,不能是跑一天都没跑出来的程序; *打包与加密测试数据 使用加密后的数据可以正常判题,但不显示标准输出。这个功能是为了弥补放出去给别人评测的测试数据是明文的缺陷。加密之后评测方就看不到测试数据。这样就既可以实现离线评测,又可以实现Online Judge上的对测试数据屏蔽; ACM-ICPC简介: ACM国际大学生程序设计竞赛(简称ACM-ICPC)是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办,是世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。 ACM-ICPC的每一道题,都具备题目、需求描述、输入格式描述、输出格式描述、样例输入和样例输出共六大信息,有些题目还有一定的提示。此外,裁判还额外存储了关于该题的一组或多组对选手屏蔽的标准输入和标准输出数据,这些测试数据已经经过验证符合题意要求。当用户提交一道题目的源码之后,裁判会将该源码放入评测系统中编译运行,并使用标准输入作为用户程序的输入,然后获取用户程序的输出,接着,将用户程序输出和标准输出比较,最后返回给用户一个评判结果。评判结果包括:Accepted(测试通过)、Compile Error(编译失败)、Memory Limit Exceed(内存超出限制)、Presentation Error(格式错误)、Runtime Error(运行时错误,可能是数组越界,改写只读的内存,除零,栈或堆溢出等错误)、Time Limit Exceed(时间超出限制)、Wrong Answer(答案错误)等。
一个测试套件实现了对linux系统资源使用率的设定,目前版本包含: 1. cpu_limit实现了linux操作系统内在指定的cpu各核心上分别占用指定的cpu利用率; 2. memory_limit实现了linux操作系统内占用一定的内存使得空闲空间到达某个设定值。 文件列表 ******************************************************************************* 文件名称    cpu_limit 1、简述                  程序的作用是将指定的cpu各核心上分别占用指定的cpu利用率。 2、基本用法              cpu_limit [[int cpu_number] float cpu_utilization_percentage]             主要有2种使用方法:             a. cpu_limit             说明:             单独执行不带参数列表的cpu_limit时,可以在系统支持范围内任意选择2个或者两个以上cpu,并且支持分别对每个cpu的使用率进行设定。Cpu范围可以是连续的,但要保证范围内的cpu都是存在的,例如0-2表示cpu0、cpu1、cpu2;也可以是离散的,例如0.2.4表示cpu0、cpu2、cpu4。             b. cpu_limit [cpu_number] cpu_utilization_percentage             说明:             cpu_number 指定了cpu的编号,如果省略则表示当前系统全部的核。             cpu_utilization_percentage 指定了统一的cpu利用率。 3、Example:             cpu_limit 0 0.5          cpu0的资源利用率增加50%。             cpu_limit 0.25           全部CPU的资源利用率增加25%。 4、注意:             a. 不要尝试输入非法的参数。             b. 不要输入不存在的cpu_number。             c. 不要输入float(0,1]范围以外的cpu_utilization_percentage。             d. 不要后台运行此程序。             f. 当前total定义为10000微秒,在测试中较稳定。但如果同时运行多个cpu_limit时,效果不好时,适当的调整total值即可。 ******************************************************************************* 文件名称    cpu_limit.c 1、简述                  cpu_limit程序源码。 2、基本用法             gcc cpu_limit.c -o cpu_limit -lpthread 3、注意:             a. 由于需要引用libpthread.so,所以编译时要附加-lpthread参数。 ******************************************************************************* 文件名称    cpu_limit.h 1、简述                  cpu_limit程序头文件。 ******************************************************************************* 文件名称    memory_limit 1、简述                  程序的作用是占用一定的内存使得空闲内存空间达到某个制定值。 2、基本用法              memory_limit free_mem    说明:             free_mem的格式为xxxxxxxxU,其中xxxxxxxx代表数值部分,U代表单位部分。             数值必须是正整数,单位部分可以是以下几种之一:             G(g)            GiB             M(m)            MiB             K(k)            KiB             [B]             Byte 3、Example:

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧