zoukankan      html  css  js  c++  java
  • 数组的一些经典案例(循环)(max=score[0])(冒泡)(flag标志)(杨辉三角)

    1.根据用户输入的10人成绩并将其保存到数组中,求最高成绩,最低成绩和平均成绩

    #include <stdio.h>
    
    void main(){
        int score[10];
        int i,sum=0,avg,max,min;
        for(i=0;i<10;i++){
            printf("请输入第%d个成绩:
    ",i+1);
            scanf("%d",&score[i]);
            sum+=score[i];
            avg=sum/10;
            
        }
        
        min=max=score[0];   //假设第一个人的成绩最高/最低 !!!!
        for(i=1;i<10;i++){
            if(score[i]>max){
                max=score[i];
                
            }
            if(score[i]<min){
                min=score[i];
                
            }
        }
        
        printf("平均成绩是%d,最高成绩是%d,最低成绩是%d",avg,max,min);
    }

    2.根据用户输入的5个数字并将其保存到数组中,对其进行从高到低排序

    思路:用冒泡排序法实现

    int nums[5];
        int i,j,temp;
        for(i=0;i<5;i++){
            printf("请输入第%d个数字",i+1);
            scanf("%d",&nums[i]);
        } 
        for(i=0;i<4;i++){
            for(j=0;j<4-i;j++){
                if(nums[j]<nums[j+1]){
                    temp=nums[j];
                    nums[j]=nums[j+1];
                    nums[j+1]=temp;
                }
            }
        }
        printf("从高到低排序为:");
        for(i=0;i<5;i++){
            printf("%d	",nums[i]);
        }

    3.根据用户输入的10个数字并将其保存到数组中,用户输入要查找的数字,如果查找到该数字打印其在数组中的位置,否则打印该数组中没有你要查找的元素。

    1,2,3,4,5,6,7,8,9,10

    5=→5在数组中的第5个位置

    15=→对不起,该数字15没有在数组中。

    思路:输入10个数字并将其保存到数组中,输入要查找的数字,对数组进行循环遍历将数组中的值与用户输入的值比较,此处用了flag标志来解决循环打印

    "对不起,该数字%d没有在数组中”的问题。
    int nums[10];
        int num,i,flag=0;
        for(i=0;i<10;i++){
            printf("请输入第%d个数字:",i+1);
            scanf("%d",&nums[i]);
        }
        
        printf("请输入要查找的数字:");
        scanf("%d",&num);
        
        for(i=0;i<10;i++){
            if(num==nums[i]){
                flag=1;
                break;//找到与用户输入数字相同的数字即跳出循环,这时i就是跳出循环时i的值。如果把break去掉,则会循环遍历数组中的10个数字,这时如果数组中有该数字,会打印输出在第11位 
            }
        }
        
        if(flag==1){
            printf("%d在数组中第%d位
    ",num,i+1);
        }
        if(flag==0){
            printf("该数组中没有你要查找的元素!
    ");
        }
    int nums[10];
        int i,num,flag=0;
    
        //根据用户输入的10个数字并将其保存到数组中
        for(i=0;i<10;i++){
            printf("请输入第%d个数字:",i+1);
            scanf("%d",&nums[i]);
        }
    
        // 用户输入要查找的数字
        printf("请输入要查找的数字:");
        scanf("%d",&num);
    
        for(i=0;i<10;i++){
            
            if(num==nums[i]){
                printf("%d在数组中的第%d个位置
    ",num,i+1);
                flag=1;
                //break;//找到要查找的数字即跳出循环,如果数组中有两个与要查找数字相同的数字,则只会输出第一个数字的相应位置,这时braek最好不要 
            }
            
        }
        
        if(flag==0){
                printf("对不起,该数字%d没有在数组中
    ",num);
            }

    4.打印杨辉三角(二维数组)

    1

    1    1

    1    2    1

    1    3    3    1

    1    4    6    4    1

    …..

    思路:把杨辉三角当做二维数组。找规律:第一列是1,即num[i][1]=1,对角线上是1,即i与j相等的时候是1→num[i][i]=1,其他位置上的值等于它上面的值加上上面的左边的值,即num[i][j]=num[i-1][j-1]+num[i-1][j];最后通过循环嵌套来输出。

    int i,j;
        int num[6][6];
        for(i=0;i<6;i++){
            num[i][0]=1;
            num[i][i]=1;
        }
        for(i=1;i<6;i++){
            for(j=1;j<i;j++){
                num[i][j]=num[i-1][j-1]+num[i-1][j];
            }
        }
        for(i=0;i<6;i++){
          for(j=0;j<=i;j++){
              printf("%d	",num[i][j]);
              
          }
          printf("
    ");
       }
  • 相关阅读:
    android点滴 之 进度条
    android点滴(26)之让线程拥有自己的消息循环
    Python property
    MD5加密
    哈希表加载xml文件
    .NET自定义控件制作
    如何用Treeview树加载xml
    xml的属性
    FFT实现——有趣的移位寄存流水线形式
    频率选择滤波器 线性时不变系统
  • 原文地址:https://www.cnblogs.com/xiaomeng7/p/6613084.html
Copyright © 2011-2022 走看看