c语言输入三个数,显示最大值。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言输入三个数,显示最大值。相关的知识,希望对你有一定的参考价值。

为什么这样输出的一直是a的值,我用的是vs2013的编译器。
#include <stdio.h>

int main()

int a, b, c;
int max = 0;

printf("请输入3个整数,用空格分隔:");
scanf("%d %d %d", &a, &b, &c);

max = a;
if (max < b)
max = b;

if (max < c)
max = c;

printf("最大值是%d\n", max);

1、首先,打开vc。

2、点击文件、新建。

3、选择win32 console application 并在右侧选择工程的名字和地址,确定。

4、选择一个空的工程。

5、再次点击文件、新建。

6、选择c++ source file 并在右侧输入文件名字。

7、输入代码,这里以abc分别代表三个不同的数,其他需要比较的数只要把abc换成相应的数就可以了。注意代码的输入要在英文输入法的环境下进行。

8、点击右上角的编译运行按钮。

9、就可以得到了三个数中的最大值并且输出来了。

参考技术A

C语言输入三个数,显示最大值是一个比较简单的程序,但是和具体的数据类型有些关系。

 

下面是求三个整数最大值的相关代码与与注释:

#include  <stdio.h>
void main()

    int num1,num2,num3,maxNum;
    printf("请输入三个整数");
    scanf("%d%d%d",&num1,&num2,&num3);
    maxNum=num1;            //首先最大值等于第一个数
    if(maxNum<num2)        //如果小于第二个数就等于第二个数
        maxNum=num2;
    if(maxNum<num3)        //如果小于第三个数就等于第三个数
        maxNum=num3;
    printf("最大值等于%d\\n",maxNum); //输出最大值并换行

 

如果是求浮点数,程序中的变量需要修改类型,并且输入输出语句也要稍作修改,但是算法没有区别。

参考技术B #include <stdio.h>
#include <stdlib.h>
int main()

int a, b, c;
int max = 0;

printf("请输入3个整数,用空格分隔:");
scanf("%d %d %d", &a, &b, &c);

max = a;
if (max < b)
max = b;


if (max < c)
max = c;


printf("最大值是%d\n", max);
system("pause");

在vs2012上跑过了,没问题,估计你是不是数据类型选错了,是不是输入小数什么的了追问

没有啊,就是整数,我用的是vs2013。。在window8.1系统里运行的可能是编译器的问题吧。

参考技术C

追问

没有啊,就是整数,我用的是vs2013。。在window8.1系统里运行的可能是编译器的问题吧。。

追答

把printf改成printf_s,把scan改成scanf_s就可以了……

本回答被提问者采纳
参考技术D 程序没问题

c语言,输入三个数,输出其中的最大值

# include <stdio.h>
int main()
int a,b,c,max;
printf("please input a,b,c:\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b,a>c)max=a;
if(b>a,b>c)max=b;
if(c>a,c>b)max=c;
printf("The largest number is %d\n",max);
return 0;


当输入3,2,1 时,输出的最大值是2。
请问错在哪里呢?

# include <stdio.h>

int main()
 
    int a,b,c,max;

    printf("please input a,b,c:\\n");
    scanf("%d,%d,%d",&a,&b,&c);

    if((a>=b)&&(a>=c))   
        max=a;
    if((b>=a)&&(b>=c)) 
        max=b;
    if((c>=a)&&(c>=b)) 
        max=c;
    printf("The largest number is %d\\n",max);
    return 0;

你原来的代码

if(a>b,a>c)

这种是符号表达式,符号表达式只有最后那个语句是有效的,也就是说无论a>b与否,这个比较结果都会被忽略,起作用的只有a>c

参考技术A //******************************************************************************
// LZ注意一下scanf的格式就可以了,加油噢!!
// %d,%d,%d 中间放了什么,就需要用什么隔开。 (不放或者空格隔开时,输入时用空格隔开即可)
// 比如 %d@%d@%d 输入的三个数就需要用@来隔开
//******************************************************************************
#include<stdio.h>
int max(int a,int b,int c)

int max=a;
if (max<b)
max=b;
if (max<c)
max=c;
return max;

int main()

int a,b,c,x;
scanf("%d%d%d",&a,&b,&c); // %d,%d,%d 去掉中间的逗号。
x=max(a,b,c);
printf("max=%d\n",x);

//******************************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//******************************************************************************
参考技术B 逻辑表达式的与应该用关键字and或者&&符号
即if(a>b && a>c)max=a;

另外你的程序逻辑有误,如果有两数相等,这个程序将输出一个内存中的随机数。本回答被提问者和网友采纳
参考技术C # include <stdio.h>
int main()
int a,b,c,max;
printf("please input a,b,c:\\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a>=b&&a>=c)max=a;
if(b>=a&&b>=c)max=b;
if(c>=a&&c>=b)max=c;
printf("The largest number is %d\\n",max);
return 0;

参考技术D

逗号改为&&

if(a>=b&&a>=c)max=a;
if(b>=a&&b>=c)max=b;
if(c>=a&&c>=b)max=c;

以上是关于c语言输入三个数,显示最大值。的主要内容,如果未能解决你的问题,请参考以下文章

c语言,输入三个数,输出其中的最大值

C语言输入三个数输出最大值

C语言求输入三个数输出最大与最小值

c语言从键输入5个数求最大值和最小值 只用if(刚学,要最简单的)

C语言:输入五个数,求其最大值与最小值

c语言解答从键盘上输入三个数,按从大到小的顺序排列并输出最大值