C语言哪出错了?

这是我买的一本书中写的,但是没有办法运行。估计书是盗版的。请看看哪出错了。在一步一步的说明哪一行什么意思,谢谢了。书上,运行结果如下:
Please enter five name:
china
hongkong
russia
germany
france
The min is:china
the length of china is 5

代码:
#include <stdio.h>
#include <string.h>
#define ARRA_SIZE 80
void main()
{
int n,m;
char str[ARRA_SIZE],min[ARRA_SIZE];
printf("Please enter five names:\n");
gets(str);
strcpy(min,str);
for(n=1;n<5;n++)
{
get(str);
if (strcmp(str,min)<0)
strcpy(min,str);
}
printf("The min is:");
puts(min);
printf("the length of %s is %2d",min,strlen(min));
}

#include <stdio.h>
#include <string.h>
#define ARRA_SIZE 80
void main()
{
int n,m; //定义一些计数的变量

char str[ARRA_SIZE],min[ARRA_SIZE];//定义两个长度为80的字符类型数组,最多存放79个字符长度的字符串,因为最后一个字节要填充结束符:\0
//如果不已字符串形式存在,也可以存放80个字符。

printf("Please enter five names:\n");//输出提示信息。
gets(str);//从标准输入设备:键盘,获取一个字符串,以回车结束。
strcpy(min,str);//将str接收到的字符串拷贝到min数组内。
for(n=1;n<5;n++)//再接收4个字符串
{
get(str);//改为:gets(str); 功能同上。

if (strcmp(str,min)<0)//比较新接受到的字符串str,与之前的字符串min比较
//strcmp功能:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

strcpy(min,str);//如果字符串str小于min的字符串,只要第一个字符的ASCII比它小,或以此类推的第二个,第三个字符的ASCII比它小。则将str拷贝到min中。
}//否则继续接收下一个字符串,并比较。
printf("The min is:");//输出提示信息。
puts(min);//输出最小字符串。
printf("the length of %s is %2d",min,strlen(min));//输出最小字符串的长度。
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-29
???
第2个回答  2012-08-29
C语言没错,错在你写代码太少,代码写的多了,C语言就不错了,呵呵
第3个回答  2012-08-29
这道题错在,提问者没有给出问题追问

您看看代码哪出错了。

第4个回答  2012-08-30
代码呢?追问

看看代码哪出错了。

第5个回答  2012-08-30
代码没有看到逻辑和语法的错误
可能是编译器不兼容的问题

你是否是用vc编译器啊,那么最后一句加上return 0吧追问

是的,你运行下,看看有没有问题。能给我解释一下每句话什么意思吗。新手,谢谢了。

追答

get(str); 没注意,少了一个s gets

if (strcmp(str,min)<0)
strcpy(min,str);

就是几个字符串函数的应用而已,没什么难度
逻辑上你应该能懂,就是循环5次,输入str字符串,和min比较,小的赋值到min中

gets是输入字符串的函数
strcpy是吧后面的字符串拷贝到前面的那个字符串中
strcmp是比较函数,
这几个函数你可以百度一下,百度百科中有很详细的介绍

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

一段C语言代码不知道错哪儿了,请高手指教
程序中的错误,按照其产生的原因和引起的后果,通常可以分为三种类型:即语法错误、编译运行错误和逻辑错误。一、语法错误 所谓“语法错误”是指由于违反了语言有关语句形式或使用规则而产生的错误。比如错误地使用了关键字、遗漏了某些必需的标点符号、分支语句或循环语句不完整或不匹配等都会导致语法错误。

c语言哪里出错了
语法错误在在程序编译时编译器会报错,编译不能通过,此类错误如:变量使用时尚未定义,符号错误等等。可以根据编译器的提示查看错误。而逻辑错误主要是程序在逻辑上出现问题,此类错误编译能通过,但是程序运行起来未必会得到所期望得到的结果。如:计算1到100所有数字的和,在写for循环时错写成for(i=1;i...

c语言:如图,请问一下哪里出错了?
首先解答一下这个C语言代码出错的原因:第一个gets未定义:出现这个错误一般是没有包含相应的头文件,或者库里没有这个函数。这里应该是没有这个函数。gets(char *dest)是一个老的库函数,采用这个函数存在越界的安全隐患。它只有一个参数,如果输入的字符个数超过dest内存空间,程序可能失败,也可能被黑客...

这个c语言代码错哪里了?
C编译的程序对语法检查并不像其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,通过对C的学习,积累了一些C编程时常犯的错误,以供参考...

为什么c语言程序在运行时出现错误?
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

求C语言高手解决,程序有一处错误始终找不出来。下面是程序代码。回答好...
错误原因主要有:1、C语言是大小写敏感的,注意一些函数和关键字的大小写,如:If和if的区别2、变量的名称错误3、调用的库函数没有头文件,如:inportb\/outportb等。下面的程序可以编译,但是连接时出现库函数没有说明的问题,请添加inportb\/outportb对应的头文件!include <stdio.h> include <conio.h>...

c语言代码出错在哪里,怎么改
代码115行,break使用错误,要在循环内使用break才有效 代码120行,你写得main函数返回类型为int型,所以函数里面需要返回一个int值,可在最后写return 0;或者将main函数的返回类型改为void,这样就不用写return语句了

C语言error\/ warning\/ warning\/ warning\/ warning怎么解决
1、error,表示这是一条出错信息。 C语言信息一般有error(出错)和warning(警告)两种。 error是编译器遇到了致命错误,无法继续进行编译,必须修改。 warning是C语言编译器找到了一个可能非法的位置,但不影响编译,程序还能运行,有可能运行出错,也可能不影响。error必须修改,而部分warning可以不做修改。2...

C语言计算结果出错的原因?
检查程序时有时即使调试通过了,在接收大量样例测试时也会出现一些错误,以下是这些错误的其中很小一部分总结。1、数组越界 调用数组元素时使用的索引号超过数组所能提供的索引号的范围。2、未考虑到运算中被除数为0的情况 目前未遇到。3、堆栈溢出(stark overflow)触发原因:(1)变量申请大空间内存(...

相似回答