zoukankan      html  css  js  c++  java
  • 8.17 课堂练习代码,循环与数组

    /*
    打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
    例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
    */
    #include <stdio.h>
    
    void main()
    {
        int num,ge,shi,bai;
        for(num = 100; num < 1000; num++)
        {
            ge = num % 10;
            shi = num / 10 % 10;
            bai = num / 100;
            
            if(ge*ge*ge + shi*shi*shi + bai*bai*bai == num)
            {
                printf("%d是水仙花数
    ",num);    
            }
                    
        }
        
        
    }
    
    
    
    /*
    给一个不多于5位的正整数,要求:求它是几位数并且逆序打印出各位数字。
    */
    #include <stdio.h>
    void main()
    {
        int input,i = 0;
        
        printf("请输入一个不大多于5位的正整数:");
        scanf("%d",&input);
        
        while(input != 0)
        {
            printf("%d
    ",input % 10);
            i += 1;
            input /= 10;    
        }
        printf("这是一个%d位正整数。
    ",i);
    }
    
    
    
    /*
    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
    */
    
    #include <stdio.h>
    
    void main()
    {
        double sum = 0, zi = 2, mu = 1;
        int i = 0;
        
        for(; i < 20; i++)
        {
            sum += zi / mu; 
            zi = zi + mu;
            mu = zi - mu;    
        }
        
        printf("前20项之和是%lf
    ",sum);
        
    }
    
    
    
    /*
    任意输入一个正整数,求出其各位数字之和
    */
    
    #include <stdio.h>
    
    void main()
    {
        int input,sum = 0;
        
        printf("请输入一个正整数:");
        scanf("%d",&input);
        
        while(input != 0)
        {
            sum += input % 10;
            input /= 10;     
        }
        printf("sum = %d
    ",sum);
        
    }
    
    
    
    /*
    一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,
    共经过多少米?第10次反弹多高?
    */
    
    #include <stdio.h>
    
    void main()
    {
        double hight = 100,sum;
        int i = 0;
        
        for(; i < 9; i++)
        {
            sum += hight;
            hight /= 2;    
        }
        
        sum += 100;
        printf("第10次落地就经过%lf米.
    ",sum);
        printf("第10次反弹%lf米。
    ",hight / 2);
    }
    
    
    /* 假设一对耗子每个月都可以生一对小耗子。小耗子生长3个月后,从第4个月开始也就能够生小耗子。 问:假设所有的耗子都不死的话,那么20个月后一共有多少只耗子? */ #include <stdio.h> void main() { int old = 2,first = 0,second = 0,third = 0; int i= 0; for(;i < 20;i++) { old = old + third; third = second; second = first; first = old; } printf("第20个月一共有%d只耗子! ",old + first + second + third); } /* 打印一个5*5的乘法表 */ #include <stdio.h> void main() { int i,j; for(i = 1; i <= 5; i++) { for(j = 1; j <= i; j++ ) { printf("%d * %d = %d ",i,j,i*j); } printf(" "); } } /* 打印出菱形。 * *** ***** ******* ********* ******* ***** *** * */ #include <stdio.h> void main() { int i,j; for(i = 0; i < 5; i++) { for(j = 0;j < 4 - i;j++) { printf(" "); } for(j = 0; j < 2 * i + 1; j++) { printf("*"); } printf(" "); } for(i = 0; i < 4; i++) { for(j = 0; j < i + 1; j++) { printf(" "); } for(j = 0; j < 7 - 2 * i; j++) { printf("*"); } printf(" "); } } /* 打印出空心菱形。 * * * * * * * * * * * * * * * * */ #include <stdio.h> void main() { int i,j; for(i = 0; i < 5; i++) { for(j = 0; j < 4 - i; j++) { printf(" "); } printf("*"); for(j = 0; j < 2 * i - 1; j++) { printf(" "); } if(i != 0) { printf("*"); } printf(" "); } for(i = 0; i < 4; i++) { for(j = 0; j < i + 1; j++) { printf(" "); } printf("*"); for(j = 0; j < 5 - 2 * i; j++) { printf(" "); } if(i != 3) { printf("*"); } printf(" "); } } /*输入10个同学的成绩,输出及格的个数*/ #include <stdio.h> void main() { int i = 10; int scores[10]; int num = 0; for(i = 0; i < 10; i++) { printf("请输入第%d位同学的成绩:",i + 1); scanf("%d",&scores[i]); } for(i = 0; i < 10; i++) { if(scores[i] >= 60) { num++; } } printf("%d ",num); /* for(i = 0; i < 10; i++) { sum += scores[i]; } printf("总分是:%d ",sum); scores[10] = 250; printf("超出长度的部分:%d ",scores[10]); for(i = 0; i < 10; i++) { printf("%d ",scores[i]); } */ } /*求数组中的最大,最小,和冒泡程序*/ #include <stdio.h> void main() { int array[10] = {0}; int i,j,max,min,tmp; //输入 for(i = 0; i < 10; i++) { printf("请输入第%d个数:",i+1); scanf("%d",&array[i]); } //最大最小 max = array[0]; min = array[0]; for(i = 1; i < 10; i++) { if(max < array[i]) { max = array[i]; } if(min > array[i]) { min = array[i]; } } printf("max = %d ",max); printf("min = %d ",min); //冒泡排序 for(i = 0; i < 10; i++) { for(j = 0; j < 9; j++) { if(array[j] > array[j + 1]) { tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } //打印 for(i = 0; i < 10; i++) { printf("%5d",array[i]); } } 数组训练 #include <stdio.h> void main() { int scores[2][3]; int i,j,sum = 0; for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { printf("请输入第%d位同学第%d科的成绩:",i+1,j+1); scanf("%d",&scores[i][j]); } } for(i = 0; i < 2; i++) { sum = 0; for(j = 0; j < 3; j++) { sum += scores[i][j]; } printf("第%d个人的平均分是:%lf ",i+1,sum / 3.0); } for(j = 0; j < 3; j++) { sum = 0; for(i = 0; i < 2; i++) { sum += scores[i][j]; } printf("第%d门课的平均分是:%lf ",j + 1,sum / 2.0); } #include <stdio.h> void main() { int scores[5][6] = {0}; int i,j; for(i = 0; i < 5; i++) { for(j = 0; j < 6; j++) { printf("请输入第%d组第%d位同学的成绩:",i+1,j+1); scanf("%d",&scores[i][j]); } } for(i = 0; i < 5; i++) { printf("第%d组成绩:",i+1); for(j = 0; j < 6; j++) { printf("%4d",scores[i][j]); } printf(" "); } }
  • 相关阅读:
    ActiveMQ 即时通讯服务 浅析
    Asp.net Mvc (Filter及其执行顺序)
    ActiveMQ基本介绍
    ActiveMQ持久化消息的三种方式
    Windows Azure Virtual Machine (27) 使用psping工具,测试Azure VM网络连通性
    Azure China (10) 使用Azure China SAS Token
    Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
    Windows Azure Storage (22) Azure Storage如何支持多级目录
    Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM
    Azure Redis Cache (2) 创建和使用Azure Redis Cache
  • 原文地址:https://www.cnblogs.com/wangshichuan/p/3918740.html
Copyright © 2011-2022 走看看