C语言基础教程循环语句&算法习题

/**
* File Name: practice.c
* Author: Haoxuan
* Mail: haovxuan@126.com
* Created Time: 2020年12月16日 星期三 10时48分01秒
**/
#include <stdio.h>
#include <math.h>
/**
 * 
 * 1、	投资问题:D1以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%)。
 * D2则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息)。
 * 编写一个程序,计算需要多少年D2的投资额才会超过D1,并且显示出到那时两个人的投资额。
 **/
void practice1(){
    int year=0;
    float d1=100,d2=100;
    while(d1>=d2)
    {
        d1+=100*0.1;
        d2+=d2*0.05;
        year++;
    }
    printf("%d years D1:%.2f D2:%.2f\n",year,d1,d2);
}
/**
 * 2、	读入数据,直到终端输入为0为止,计算输入的偶数(even)个数及平均值,以及奇数(odd)的个数及奇数的平均值
 **/
void practice2()
{
    int input,nums_even=0,nums_odd=0;
    float sum_even=0,sum_odd=0;
    while(1){
        printf("Please enter a number:");
        scanf("%d",&input);
        if(input==0)
            break;
        if(input%2==0){
            nums_even++;
            sum_even+=input;
        }else if (input%2==1)
        {
            nums_odd++;
            sum_odd+=input;
        }
    }
    printf("The number of Even is:%d and average is %f\n",nums_even,sum_even/nums_even);
    printf("The number of Odd is:%d and average is%f\n",nums_odd,sum_odd/nums_odd);
}
/**
 * 4、	写出Fibonacci数列的前40项
 * 斐波那契数列(Fibonacci sequence),
 * 又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)
 * 以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
 */
void practice4(){
    int first=0,second=1,third=0,i=0;
    printf("%d\t%d\t",first,second);
    while(i<38)
    {
        third=first+second;
        printf("%d\t",third);
        first=second;
        second=third;
        i++;
    }
}
/**
 * 5、	嵌套循环的引入:九九乘法表的输出。
 */
void practice5()
{
    for(int i=1;i<10;i++)
    {
        for(int j=1;j<i+1;j++)
        {
            printf("%d x %d = %d\t",j,i,i*j);
        }
        printf("\n");
    }
}
/*
 * 6、	百钱买百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,三鸡雏,值钱一,百钱买百鸡,问鸡翁,鸡母,鸡雏各几何?
 * item    amount    price
 *
 * gong      x         5   
 * mu        y         3
 * chu    100-x-y     1/3
 *
 * 15x+9y+(100-x-y)=100 yuan
 */
void practice6(){
    for(int gong=0;gong<=100/5;gong++)
    {
        for(int mu=0;mu<=100/3;mu++){
           if(7*gong+4*mu==100&&100-gong-mu>=0)
               printf("Cock=%d Hen=%d Chick=%d\n",gong,mu,100-gong-mu);
        }
    }
}
/**
 * 9、	从终端实现如下的输出:
F
FE
FED
FEDC
FEDCB
FEDCBA
在此基础上进行加工,实现下列图案
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA
*/
void practice9()
{
    char ch='F';
    for(int i=1;i<7;i++){
        int k=ch;
        for(int j=1;j<=i;j++){
            printf("%c",k);
            k--;
        }
        printf("\n");
    }

        printf("***********PLUS***************\n");
        for(int m=0;m<6;m++){
            int k=ch;
            for(int t=0;t<m;t++)
                printf("_");
            for(int n=0;n<=m;n++){
                printf("%c",k);
                k--;
            }
            printf("\n");
        }
}
/**
 *14 求素数(prime)
 * 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
 */
void practice14(){
    int num;
    printf("Please enter a number:");
    scanf("%d",&num);
    int flag;
    for(int i=2;i<=sqrt(num);i++)
    {
        if(num%i==0)
        {
            flag = 0;
            break;
        }
        else
        {
            flag=1;
        }
    }
    if(flag==1){
        printf("%d is prime\n",num);
    }else{
        printf("%d is not prime\n",num);
    }

}
/**
 * 17从终端输入几个成绩,结束后,输出其中的最大值和最小值
 */
void practice17()
{
    int min=999999,max=-999999;
    while(1){
        int num;
        printf("Please enter a number and end with 9999:");
        scanf("%d",&num);
        if(num==9999)
            break;
        if(num<min){
            min=num;
        }else if(num>max){
            max=num;
        }
    }
    printf("Max:%d  Min:%d\n",max,min);
}

int main()
{
    printf("My Practice of C program langage.\n");
    // practice1();
    // practice2();
    // practice4();
    // practice5();
    // practice6();
    // practice9();
    // practice14();
    practice17();
    return 0;
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容