不用数组,只用循环语句如何用C语言写输入1~5五个数字,输出最大值最小值的程序

作者&投稿:韩雅 (若有异议请与网页底部的电邮联系)
编写一个程序,利用for循环语句,不用数组,输入5个实数,把它们中的最大数和最小数找出来~

// 无需数组解决在n个数找最值,其算法思想无谓就是巧妙运用变量的交换思想。static void Main(string[] args) { double minNumber=0.0; // 保存最小值 double maxNumber=0.0; // 保存最大值 double tempNumber;// 临时保存输入的值 for (int i = 0; i = 2){ if (tempNumber > maxNumber) { // 如果当前的数大于上一次的数,则当前数为最大值,反之为最小值 maxNumber = tempNumber; // 当前的输入作为最大值 }else { minNumber = tempNumber; // 反之为最小值 } } else if(i==0){ minNumber = tempNumber; // 假设第一次输入的数就是最小值 }else if (i == 1) { maxNumber = tempNumber; // 假设第二次输入的数就是最大值 } } if (minNumber > maxNumber) { minNumber = maxNumber + minNumber; maxNumber = minNumber - maxNumber; minNumber = minNumber - maxNumber; } Console.WriteLine("最小值:{0}最大值:{1}",minNumber.ToString(),maxNumber.ToString()); Console.ReadKey(); } // 至于平均值,我想此时你也会编写了。

#include
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 :%dMIN 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跨切循环层的次数。

声明一个存放最大值的变量max,再声明一个存放最小值的变量min。输入第一个数字后,把它同时赋给max和min,以后每输入一个数字都和max、min分别比较,把比max大的赋给max,把比min小的赋给min,这样就保证max是所输入的数字中值最大的,而min是输入的数字中值最小的,最后输出max和min即可。代码如下:

#include "stdio.h"
#include "stdlib.h"
int main(int argc,char *argv[]){
int i,n,max,min;//用max记录输入数字中的最大值,min记录最小值
printf("Please input some Numbers(Other end,)...
");
printf("(Input more than 5, only for the previous 5)
");
for(i=0;i<5;i++){
if(scanf("%d",&n)!=1)//输入非数字则结束
break;
if(i>0 && i<5){
if(max<n)//保证max是所输入的数字中最大的
max=n;
if(min>n)//保证min是所输入的数字中最小的
min=n;
printf(" %d",n);
}
else
printf("Your input is:   %d",max=min=n);//第一个数字同时赋给max和min
}
if(i)
printf("
The MAX is %d
The MIN is %d
",max,min);
else
printf("
No input digital...
");
return 0;
}

运行样例如下:



#include <stdio.h>
#include <stdlib.h>

int main()
{
    int num=0,i,max,min;
    //min=max=num;
    for(i=1; i<6; i++)
    {
        scanf("%d",&num);
        if(i==1) {min=max=num;}
        if(num>max)
        {
            max=num;
        }
        if(num<min)
        {
            min=num;
        }
    }
    printf("max=%d min=%d",max,min);
    return 0;
}


#include "stdio.h"
void main()
{
int a,b,c,d,e;
int max,min;
printf("请输入第一个数:");
scanf("%d",&a);
printf("请输入第二个数:");
scanf("%d",&b);
printf("请输入第三个数:");
scanf("%d",&c);
printf("请输入第四个数:");
scanf("%d",&d);
printf("请输入第五个数:");
scanf("%d",&e);
max=a>b?a:b; //判断a,b谁大,a大max=a,否则max=b;下面依次类推
max=max>c?max:c;
max=max>d?max:d;
max=max>e?max:e;
min=a<b?a:b;
min=min<c?min:c;
min=min<d?min:d;
min=min<e?min:e;
printf("max=%d\nmin=%d\n",max,min);
}

第5行min=max=num;错误
你参数都没有赋初值怎么就好做这赋值运算,你要么就直接给min=0,max=0;


编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出...
import java.util.Scanner;public class Test {public static void main(String[] args) {\/\/定义数组int[] nums = new int[10]; Scanner input = new Scanner(System.in);for (int i = 0; i < nums.length; i++) {System.out.print("请输入第"+(i+1)+"个数:");nums[i] = inp...

c++中用二维数组,循环语句求最大值
using namespace std;const int ROW = 2; \/\/ 行数 const int COL = 3; \/\/ 列数 int main() { int arr[ROW][COL] = {{5, 8, 6}, {9, 2, 4}}; \/\/ 定义二维数组并初始化 int max_value = arr[0][0]; \/\/ 初始化最大值为数组第一个元素 for (int i = 0; i < ROW...

怎么利用c语言的循环语句遍历一个二维数组?
是指上这个问题可以用一个while循环完成,这个在游戏编程渲染顶点时也经常使用。方法如下:\\x0d\\x0adefine M 10;\\x0d\\x0adefine N 2;\\x0d\\x0a\\x0d\\x0aint i = 0;\\x0d\\x0aint a[M][N];\\x0d\\x0awhile(i < M*N)\\x0d\\x0a{\\x0d\\x0a a[i\/N][i%N] = 0;...

创建10个包含整数的数组,使用循环语句为数组赋值,输出其中最大值及...
iMax=i; } } printf("最大值为:a[%d]=%d\\n",iMax,*nSave); return 0;}

)定义一个1维数组,存放8种水果的名称,使用while和for语句循环输出水果名...
创建一个1维数组,存放8种水果的名称 fruits = ['苹果', '香蕉', '橙子', '葡萄', '菠萝', '草莓', '樱桃', '芒果']使用while语句循环输出水果名 i = 0 while i < len(fruits):print(fruits[i])i += 1 使用for语句循环输出水果名 for fruit in fruits:print(fruit)在这个例子中,...

用C语言编写三个程序,分别输出图中三个数组(用循环语句)
数组1:include <stdio.h>int main(int argc,char *argv[]){ int i,j,k,a[4][4]; for(k=1,i=0;i<4;i++){ for(j=0;j<4;printf("%4d",(a[i][j++] = j<=i ? k++ : 100))); printf("\\n"); } return 0;}数组2:include <stdio.h>int main(...

Java语言中,如何用数组输出26个英文字母?(用循环语句)
定义一个数组,参数是26个英文字母。用for循环 for(i=0;i<数组.length;i++)循环输出打印26个英文字母就好了

...定义一个数组,数组里面存放五个元素,使用循环语句将数组内容输出_百 ...
class Test { static void Main(string[] args){ int[] array = new int[5]{5, 4, 3, 2, 1};froeach(int a in array){ Console.WriteLine(a);} } }

c语言利用循环给字符数组赋值怎么做?
int main(){ int array[10];for(int i=0;i<10;i++) \/\/I 不能超过数组的最大长度 { a[i]=i;} return 0;} C语言循环语句:同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:(...

用循环语句编程将二维数组a[3][4]的第一列和第三列对调,并输出数组
第一列:a【i】【1】第三列:a【i】【3】

隰县19389463595: 杨辉三角用C程序怎么编写(不用数组,只用for循环) -
斐季赛莫: #include <stdio.h> int Yh(int x,int y) //取在x行y列的 { int z; if((y==1)||(y==x+1)) return 1; z=Yh(x-1,y-1)+Yh(x-1,y); return z; } main(){ int i,j; for(i=0;i<=4;i++) { for(j=1;j<i+2;j++) printf("%d",Yh(i,j)); //输出第i行j列的值 printf("\n"); } return 0; }

隰县19389463595: c语言...判断完数,只用循环语句,判断语句.不用数组的方法...
斐季赛莫:#include <stdio.h> int main(){ int n; scanf("%d",&n); int s = 0; for(int i = 1; i <= n/2; i++) { if(n % i == 0) s += i; } if(s == n) {printf("Yes,its factors are "); for(int i = 1; i <= n/2; i++) { if(n % i == 0) printf("%d ",i); } printf("\n"); } else { printf("No\n"); }}

隰县19389463595: c语言中如何编程输出welcome不用数组就用for循环
斐季赛莫: 我在vc6.0上运行了一下,可以,希望是你想要的 #include &lt;stdio.h&gt; void main() { for (int i=1;i&lt;=1;i++) printf("welcome\n"); }

隰县19389463595: C++能不用数组 只用循环语句 使用户任意输入n个数 完成使它们从大到小依次打印 代码? -
斐季赛莫: 只用循环语句就是不保存数据了,不保存数据你如何排序呢?所以,即使不用数组也必须用其它方式保存数据,然后才能输出结果.

隰县19389463595: C语言 - 杨辉三角不用数组 - 只用For循环.... -
斐季赛莫: #include<stdio.h>#define N 10 //行数 void main() { unsigned int i,j,k; unsigned int b,c; for(i=0;i<N;i++) { for(j=N;j>i;j--) printf(" "); //前置空格 for(j=0;j<=i;j++) { b=c=1; if(j>=1) { for(k=i-j+1;k<=i;k++) b*=k; for(k=1;k<=j;k++) c*=k; } printf("%4d",b/c); } printf("\n"); } }

隰县19389463595: C#编写一个程序,利用for循环语句,不用数组,输入5个实数,把它们中的最大数和最小数找出来 -
斐季赛莫: pascal参考程序.var max,min,i,x:longint; begin max:=-99999; min:=99999; for i:=1 to 5 do begin read(x); if x>max then max:=x; if x<mint then min:=x; end; writeln(max); writeln(min); end.打字不易,如满意,望采纳.

隰县19389463595: 输入个人单科成绩,求最大值,最小值和平均值.用C语言编程 只用循环语句,不用数组!怎么编? -
斐季赛莫: #include<stdio.h> int main() { int max=-1; int min=101; double sum=0; int grade; printf("请输入10个成绩(0-100):\n"); for(int i=1;i<=10;i++) { scanf("%d",&grade); sum=sum+grade; if(grade>max) { max=grade; } if(grade<min) { min=grade; } } printf("最高分:%d\n最低分:%d\n平均分;%f\n",max,min,sum/10); return 0; }

隰县19389463595: 杨辉三角c语言实现,不用数组 -
斐季赛莫: 不用数组,直接用循环语句即可实现杨辉三角: #include<stdio.h>#define N 10//行数void main(){unsigned int i,j,k;unsigned int b,c;for(i=0;i<N;i++){for(j=N;j>i;j--)printf(" ");//前置空格for(j=0;j<=i;j++){b=c=1;if(j>=1){for(k=i-j+1;k<=i;k++)b*=k;for(k=1;k<=j;k++)c*=k;}printf("%4d",b/c);}printf("\n");}}

隰县19389463595: c语言输入十个数 然后逆序输出 不用数组 用while循环可以吗 -
斐季赛莫: 不用数组的话,可以使用十个不同的变量,或是使用递归函数实现.用while循环没想到.

隰县19389463595: 求1500内的最大五个素数之和.用c语言循环 尽量不用数组 -
斐季赛莫: #include int IsPrime(int x) { if(x==2 || x==3) return 1; if( (x-1)%6==0 || (x+1)%6==0 ) // 与6的倍数相邻才可能是素数(2、3除外){ for(int i = 6; iif( x%(i-1)==0 || x%(i+1)==0) return 0; return 1;} return 0 ; } int main() { int i, count = 0, sum = 0; for(i = ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网