十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、庆元网络推广、微信小程序开发、庆元网络营销、庆元企业策划、庆元品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供庆元建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
从左到右,依次比较字母的ASCII码的大小,遇到不同字符或'\0'结束。
基本形式:strcmp(str1,str2)
str1=str2时,返回零;str1str2时,返回负数;str1str2时,返回正数。
比如Apple和Banana比较,先比较第一个字母A和B,A的ASCII码是65,B的是66,所以AppleBanana。
compare和computer比较,前4个字母相同,第五个字母a和u,a的ASCII码是97,u的是117,所以comparecomputer。
扩展资料:
特别注意:
strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
1、当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。
2、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
1、方法一:若时间为结构体变量,比较两个时间的大小,而且不能改变时间的值,可以是:
int timecmp(date_t* date1,date_t* date2)
{
if(date1- year==date1- year)
return memcmp(date1, date2,sizeof(date_t));
else
return date1- year-date2- year
}
2、方法二:
long getTimeInterval(const char *t1, const char *t2) {
struct tm tm1, tm2;
time_t start, end;
double diff;
memset(tm1, 0, sizeof(tm1));
memset(tm2, 0, sizeof(tm2));
strptime(t1, "%Y%m%d", tm1);
start = mktime(tm1);
strptime(t2, "%Y%m%d", tm2);
end = mktime(tm2);
diff = difftime(start, end);
return d2l(diff);
}
调用:
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20110326"));
printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20990326"));
第一行输出:[-8208000]
第二行输出:[1292860801]
3、补充:C语言时间函数:
(1)、获得日历时间函数:
可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年
1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
(2)、获得日期和时间函数:
这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将
日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数
在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。
问题一
你自己写错了。
int a,b,max;
scanf("%d%d",a,b);
if((a-b)0) max=a;
else max=b;
printf("最大值%d",max);
问题二。x y是函数形参。没有形参你如何把你main中的a ,b 的值传递进函数体?
问题三,void只是某些编译器可以支持的程序入口点函数,并不推荐。但是也没有错误。尽量用int main
附加体。多个数比较大小,可以先在函数中排序,也可以直接在函数中判断
贴一个刚回答的问题,你就知道了
templatetypename T
void func(T t[], int szlen, int _pmin, int _pmax)
{
if(NULL == t)
return; //NULL point of t
_pmin = _pmax = 1;
T _min;
memset(_min, 0, sizeof(T));
T _max;
memset(_max, 0, sizeof(T));
_min = t[0];
_max = t[0];
int i;
for(i = 1; i szlen; i++)
{
if(_min t[i])
{
_min = t[i];
_pmin = i + 1;
}
if(_max t[i])
{
_max = t[i];
_pmax = i + 1;
}
}
}*/
原型:extern int strcmp(const char *s1,const char * s2);
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1s2时,返回为负数
当s1=s2时,返回值= 0
当s1s2时,返回正数
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A""B" "a""A" "computer""compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。
int max_func(int a, int b, int c); 返回值为参数序号
例如,a最大,则返回0,b最大,则返回1,c最大,则返回2;通过返回值,可以确定三个数中哪个最大
int min_func(int a, int b, int c); 返回值为参数序号
这样通过上述两个函数,可以确定三个数中的最大和最小,这样就可以知道大小了。