Ⅰ c语言为什么我写程序求最大值,结果求出最小值
以上程序运行时,你的输入有问题,应该输入的是以英文逗号隔开两个数值,你输成了中文逗号。
Ⅱ c语言任意输入10个数,计算并输出最大值和最小值
程序源码如下:
#include "pch.h"
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int loop = 10;//定义循环次数
int min, max, value;//定义最大值、最小值、输入值
printf("输入整数:");//文字提示
do//循环输入并进行判断最大最小
{
scanf("%d", &value);//输入
if (loop == 10) //第一次输入
{
max = min = value; loop--; continue;//先将max、min放入一个数用于比较
}
else
{
if (value > max) max = value;//找最大值
if (value < min) min = value;//找最小值
loop--;//循环变量递减
}
} while (loop != 0);
printf("输入的10个数中,最大数:%d 最小数:%d
", max, min);//输出最值
return 0;
}
程序运行结果如下:
(2)c语言最大值却输出最小值扩展阅读:
其他实现方式:
#include<stdio.h>voidmain(){
floatnum[10];
inti;
floatmax,min;
for(i=0;i<10;i++)
{
scanf("%f",&num[i]);
if(i==0)
{
max=min=num[i];
}
else
{
if(max<num[i])
{
max=num[i];
}
if(min>num[i])
{
min=num[i];
}
}
}
printf("max=%.2f ",max);
printf("min=%.2f ",min);
}Ⅲ C语言编程序想输出最大值为什么输出最小值!!
#include <stdio.h>
int main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("%d\n",c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)
{
z=x;
}
else
{
z=y;
}
return (z);
}
试试看
你输入的时候要这样 1,5 中间要有逗号的
Ⅳ C语言输入N个数输出最大值和最小值
#include<stdio.h>
void main(){
int i,j,temp,count;
printf("请输入你需要输入的个数:");
scanf("%d",&count);
while(count<=0||count>10000){
printf("个数必须在1到10000之间!\n\n");
printf("请输入你需要输入的个数:");
scanf("%d",&count);
}
int num[count];
for(i=0;i<count;i++){
printf("请输入第%d个数:",(i+1));
scanf("%d",&num[i]);
}
for(i=0;i<count;i++){
for(j=0;j<count-i-1;j++){
if(num[j]<num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
printf("max=%d,min=%d\n",num[0],num[count-1]);
}
Ⅳ c语言输出最大最小值
C语言中求最大值和最小值,一般都是使用假设法,即先假设某个数是最大值和最小值,然后遍历比较即可。下面实例,求一个数组中的最大值和最小值,先假设a[0]是最大值,同时也是最小值,然后遍历数组进行比较,得出结果。
#include<stdio.h>
intmain()
{
inta[]={1,2,3,4,5,6,7,8,9,10};
intmax,min;
max=min=a[0];//假设第1个元素即是最大值也是最小值。
int*p=a;
//遍历数组,找出数组a中的最大数和最小数
for(intinx=0;inx!=sizeof(a)/sizeof(int);++inx){
if(*(p+inx)>max)max=*(p+inx);
elseif(*(p+inx)<min)min=*(p+inx);
}
printf("最大数:%d 最小数:%d ",max,min);
return0;
}
Ⅵ C语言 三个任意数求输出最大值最小值
你的错误原因在于scanf("%d%d%d"&a,&b,&c);少了一个逗号,应该是scanf("%d%d%d",&a,&b,&c);
以下是三个任意数求输出最大值最小值正确的代码:
(6)c语言最大值却输出最小值扩展阅读:
用另外一种方法求三个任意数求输出最大值最小值
#include <iostream>
using namespace std;
int main()
{
int num1,num2,num3,max,min;
cout<<"任意输入三个整数:";
cin>>num1>>num2>>num3;
if(num1>num2)
{
max=num1;
min=num2;
}
else
{
max=num2;
min=num1;
}
if(max>num3)
{
max=max;
}
else
{
max=num3;
}
if(min>num3)
{
min=num3;
}
else
{
min=min;
}
cout<<"max="<<max<<endl;
cout<<"min="<<min<<endl;
return 0;
}
Ⅶ C语言问题关于求出最大值和最小值
第一个问题:
为什么在求最大最小值钱,要把a[0][0]赋值给max,min
答:
因为max,min在最开始没有初始化,不能直接比较,而因为是比较数组里的值,又不能随便初始化。所以我们选择默认第一个数最大(或最小)。
第二个问题:
if语句
有很多个条件符合这个条件啊,怎么只输出那个最大的
而其他也符合这个条件的?
答:
我们先默认了最大(或最小值)是第一个数组元素,我们把他依次和后面元素比较,当碰到比它大(或小)的值,我们就把它保存到max(min),并在h,l中保存元素所在数组的位置,所以每次比较完,max(min)里保存的始终是最大(或最小)值。
Ⅷ 编写一个c语言程序,输入5个数,求它们中最大值和最小值并输出
#include <stdio.h>
void main( )
{
int i = 0 , num[5], max = 0 , min = 0 ; /* max:用于存放最大值;min:用于存放最小值 */
for( i = 0 ; i < 5 ; i ++ )
scanf("%d", &num[i]) ; /* 循环地将输入的五个数存入 num[5] 数组中 */
for( i = 0 ; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 max 还大,则将相应的数存入 max 变量中 */
if( num[i] >= max )
max = num[i] ;
for( i = 0; i < 5 ; i ++ ) /* 循环地判断数组中的数要是比 min 还小,则将相应的数存入 min 变量中 */
if( num[i] <= min )
min = num[i] ;
printf("MAX num is :%d MIN num is :%d ", max, min) ;
}
c语言编程技巧
1、while(--n>=0)与while(n-->0)
在大多数C语言实现中,--n >=0 至少与等效的n-- >0 一样快,大多数情况下前者更快。
主要因为第一个表达式首先从n中减去1然后将结果与0比较;而第二个表达式首先保存n,从n中减去1之后比较保存值与0的大小,这中间多了一个保存的时间,从而前一个表达式更快。
注意:这样的循环中,尽量不使用unsigned类型,否则前者会出现无限循环情况。
2、多重循环处理
对于多重循环,如果可能,应将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
Ⅸ C语言数值超出了最大值会输出最小值-1的值
对于有符号数的最大整数值,如果再+1的话,输出的结果是-1。
以一个字节的为例子说明这个问题。
char型的最大整数值是127,对应的二进制是: 0111 1111,最高位0表示符号位(0为正,1为负),然后加1的话,就变成了1000 0000,这个你应该知道吧。而这个1000 0000恰好是-1的补码,因为负数在内存中是以其补码的形式存放的,所以输出的结果是-1。
Ⅹ c语言函数找最大值最小值输出来,求大神解答
#include<stdio.h>
int Max(int a[],int n)
{
int s,max=0;
for(s=1;s<=9;s++)//逐个循环进行比较大小找出最大值
{
if(a[max]<a[s])
max=s;
}
return max;
}
int Min(int a[],int c)
{
int d,min=0;
for(d=1;d<=9;d++)
{
if(a[min]>a[d])
min=d;
}
return min;
}
main()
{
int a[10],i,n;
printf("请任意输入10个数字\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
int larger;
larger=Max(a,10);//调用Max函数找出最大值并赋值
printf("最大数为%d\n",a[larger]);
int smaller;
smaller=Min(a,10);
printf("最小数为%d\n",a[smaller]);
n=a[larger];
a[larger]=a[smaller];
a[smaller]=n;
for(i=0;i<10;i++)
printf("%2d",a[i]);
}