C语言输入三个数输出最大值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言输入三个数输出最大值相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
int main()
int a,b,c,max;
printf("Please input three numbers:\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b) max=a;
else max=b;
if(c>max) max=c;
printf("最大数为:%d\n",max);
return 0;
请教一下哪错了,最后输出的是a的值
改为scanf("%d%d%d",&a,&b,&c);
如果输入数字时用逗号隔开,如: 11,22,44
则为scanf("%d,%d,%d",&a,&b,&c);
所以你程序是对的,不知道是你输入错误还是其他什么原因。追问
是用逗号隔开的,但它只输出第一个输入的值(无论大小),大佬能解释下吗?
这和软件有关系吗?我用的VC2010
参考技术A 程序是对的啊!如果输入的a的值正是最大值,那么当然应该输出a的值啊!
总之,输入的3个数里,哪个最大,就输出哪个数呀!
如有帮助,烦请采纳,谢谢! 参考技术B scanf括号里面几个格式控制符,中间不要加符号。可以用空格。
为什么的话你可以查一下语法。
三个数输出最大值可以用条件运算符,一步搞定。
#include <stdio.h>
int main( void )
float a, b, c, max;
printf( "请输入三个数:\n" );
scanf( "%f %f %f", &a, &b, &c );
max= a>b ? a:b>c ? b:c;
printf( "最大数是:%f", max );
return(0);
参考技术C 4个变量是为了防止丢失变量里的数据,你用三个变量输出之后A的值就无法保留了,如果之后还有其他任务就无法进行,但用4个变量输出后A,B,C的值还都在,不会丢失A的值
不过只需输出最大值的话3个变量就够了 参考技术D 如果这只是一个小程序的话,是可以的。
但是编写一个大程序会有问题,
你定义的函数是要被调用的,而函数体内会丢失一个变量的值,会影响整体的效果
用c#比较三个数的大小,并输出最大数。
在Visual Studio 2008中添加两个文本框和一个命令按钮,在一个文本框中输入三个数,点击按钮时在另外一个文本框中输出最大数。
对于比较n个数思路有以下几种:
1 遍历比较。总共要比较n*(n-1)/2次。例如:对于数a,b,c 需要比较a,b a,c b,c 记录每次最大的值,最后输出这个值。这种方式是最常用的。
2 排序比较。先用某种算法,将n个数排序,然后直接给出最大的那个数(依据降序还是升序决定是给队首还是队尾)
3 筛选法。逐个淘汰,剩下一个的时候,就是结果,其他情况继续筛选。例如先比较10000,如果全部淘汰,下次所有的数比较1000,否则只有剩下的数参与比较。如此这般,从10000开始比较1000,100,10直到1 当任何时候只剩下1个数的时候比较完成。如果找不到,则表明存在多个数值一直,返回最后一次存在剩余结果的值即可
针对3示例如下(算法伪代码,假定是整数)
unsigned getMax(params unsigned[] datas)List<unsigned> lst;
unsigned max = 0;
for(unsigned i=0x80000000;i>0;i/=2)
if(lst.Count()==0)
for(unsigned data in datas)
if(i&data>0)
max = data;
lst.Add(data);
else
List<unsigned> tmp;
for(unsigned data in lst)
if(i&data>0)
max = data;
tmp.Add(data);
if(tmp.Count()>0)
lst = tmp;
if(lst.Count==1) break;
return max;
参考技术A 1、可以用控制台应用程序实现,也可以用windows应用程序实现。
2、用控制台应用程序实现如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
class Program
static void Main(string[] args)
int a = 6, b = 1, c = 7;
System.Console.WriteLine("0 1 2",
a.ToString(),b.ToString(),c.ToString());
if (a < b) a = b;
if (a < c) a = c;
System.Console.Write(a);
System.Console.ReadKey();
参考技术B 你确定下是不是三个Textbox 一个label 加一个按钮 点击按钮比较三个数大小 在label中显示最大数 要是的话 我觉得应该这么写...
int a=Convert.toint(Textbox1.text);
int b=Convert.toint(Textbox2.text);
int c=Convert.toint(Textbox3.text);
if(a>=b)
if(a>=c)
label.text=Convert.tostring(a);
else
label.text=Convert.tostring(c);
else
if(b>=c)
label.text=Covert.tostring(b);
else
label.text=Convert.tostring(c);
参考技术C int a = 1;
int b = 2;
int c = 3;
int d = a > b ? a : b;
int e=d>c?d:c;
输出e 就是最大的。 注意一个文本框中的值要用 变量.ToString().Split(‘’)分离出来 参考技术D Response.Write("数字以,隔开");
string [] num = new string[3];
num = this.TextBox1.Text.Trim().Split(',');
try
int num1 = int.Parse(num[0]);
int num2 = int.Parse(num[1]);
int num3 = int.Parse(num[2]);
int temp1 = num1 > num2 ? num1 : num2;
int temp2 = num2 > num3 ? num2 : num3;
int max = temp1 > temp2 ? temp1 : temp2;
this.TextBox2.Text = max.ToString();
catch
Response.Write("转换错误");
以上是关于C语言输入三个数输出最大值的主要内容,如果未能解决你的问题,请参考以下文章