码迷,mamicode.com
首页 > 编程语言 > 详细

实验3 C语言分支语句、循环语句、函数综合应用编程-1

时间:2021-04-15 12:26:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:not   adr   随机   添加   i++   include   print   参数   循环语句   

实验1

//生成N个0~99之间的随机整数,并打印输出
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main()
{
    int x,n;
    srand(time(0));
    for(n=1;n<=N;n++)
    {
        x = rand()%100;
        printf("%3d",x);
    }
    printf("\n");
    return 0;
 } 

技术图片

实验1_1

//生成N个1~31之间的随机整数,并打印输出
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main()
{
    int x,n;
    srand(time(0));
    for(n=1;n<=N;n++)
    {
        x = rand()%(31)+1;
        printf("%3d",x);
    }
    printf("\n");
    return 0;
 } 
 

技术图片

实验2

//猜猜你的Lucky Day
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int x,i;
    int ans1;
    srand(time(0));
    x = rand()%(31)+1;
    printf("猜猜2021年5月哪一天会是你的lucky day\n开始啦,你将有三次机会,猜叭(1~31):");//天啊这弱智的语气
    scanf("%d",&ans1);
    
    for(i=1;i<2;i++)
    {
        if(x>ans1)
        {
            printf("早了,你的幸运日还没到呢\n再猜:");
            scanf("%d",&ans1);
        }
        if(x<ans1)
        {
            printf("晚了,你的幸运日已经过了\n再猜:");
            scanf("%d",&ans1);
        }
        if(x==ans1)
        {
            printf("牛啊,随机的都能猜到,你是神仙叭");
            break;
        }        
    }
    if(i==2)
        printf("没想到叭,系统给你随机出来的幸运日是幸运日是%d",x);
 return 0;
 }

技术图片

实验3

//取出奇数并保持原位 
#include <stdio.h>
int main()
{
    long long n;
    int x=0,y=0;
    
    while(printf("Enter a number:"),scanf("%ld",&n)!=EOF)
    {
    
        //先从低位取出所有奇数 
        while(n!=0)
       {
           if(n%2!=0)
          {
            x=x*10+n%10;
            n/=10;
          }
          n/=10;
        }
        //将取出的奇数倒过来 
        while(x!=0)
       {
          y=y*10+x%10;
          x/=10;
        }
    printf("new number is:%d\n",y);
    x=0,y=0;
       
    }

        
        return 0;
 } 

技术图片

实验4

// 一元二次方程求解(函数实现方式)
// 重复执行, 直到按下Ctrl+Z结束 
#include <math.h>
#include <stdio.h>

// 函数声明
void solve(double a, double b, double c);

// 主函数 
int main() 
{
    double a, b, c;
    printf("Enter a, b, c: ");
    while(scanf("%lf%lf%lf", &a, &b, &c) != EOF) 
    {
        solve(a, b, c);  // 函数调用 
        printf("Enter a, b, c: ");
        
    }
    
    return 0;
}

// 函数定义
// 功能:求解一元二次方程,打印输出结果
// 形式参数:a,b,c为一元二次方程系数 
void solve(double a, double b, double c) 
{
    double x1, x2;
    double delta, real, imag;
    
    if(a == 0) 
        printf("not quadratic equation.\n");
    else 
    {
        delta = b*b - 4*a*c;
        
        if(delta >= 0) 
        {
            x1 = (-b + sqrt(delta)) / (2*a);
            x2 = (-b - sqrt(delta)) / (2*a);
            printf("x1 = %.2f, x2 = %.2f\n", x1, x2);
        }
        else 
        {
            real = -b/(2*a);
            imag = sqrt(-delta) / (2*a);
            printf("x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", real, imag, real, imag);
        }
    }    
}


        

技术图片

 思考说明:否,return只能返回一个值,无法同时返回x1,x2的值。

实验5

#include <stdio.h>
double fun(int n);  // 函数声明 
 
int main() 
{
    int n;
    double s;
    
    printf("Enter n(1~10): ");
    while(scanf("%d", &n) != EOF) {
        s = fun(n);  // 函数调用 
        printf("n = %d, s= %f\n\n", n, s);
        printf("Enter n(1~10): ");
    }
    
    return 0;
}

// 函数定义 
double fun(int n) 
{
    double x,y,p=1,q=1;
    double sum=0;
    for(y=1;y<=n;y++)
    {
        for(x=1;x<=n;x++)
       {
        p=p*x;
       }
    sum+=q*(1/p);
    q=-q;  
    }
    return sum;
    
    
    
}

技术图片

实验6

//输出101~200之间的素数,并统计个数 
#include <stdio.h>
#include <math.h>
int isPrime(int x);
int main()
{
    int i,m,n;
    i=101,m=0;
    for(;i<=200;i++)
    {
        if(isPrime(i))
        {
            printf("%d ",i);
            m++;
            n++;
            
            if(n==5)
            {
                printf("\n");
                n=0;    
            }    
        }
        
    }
    printf("\n100~200之间的素数为:%d\n",m);
    
    return 0;
}
int isPrime(int x)
{
    int i=0,n=0;
    n=sqrt(x);

    for(i=2;i<=n;i++)
    {
        if(x%i==0)
        {
            return 0;    
        }
        
    }
        return 1;
}

技术图片

实验7

我做了间隔变色的尝试,让字符小人列阵在每隔1s就从color f5变到color f9

移动的话因为时间关系暂时还没有做尝试,大概想了一下也应该是整体加一个循环然后把system("cls")用进去

以下为间隔变色的代码

/*字符小人列阵间隔变色*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
    int i,m,n,x,y;
    system("color f5");
        
    
//打印第一排    
    m=8;
    for(i=0;i<=m;i++)
    
    printf(" o   ");
    if(i==9)
    printf("\n");
    
    n=8;
    for(i=0;i<=n;i++)
    
    printf("<H>  ");
    if(i==9)
    printf("\n");
    
    x=8;
    for(i=0;i<=x;i++)

    printf("I I  ");
    if(i==9)
    printf("\n");

//打印第二排
    
    printf("      o");
    m=5;
    for(i=0;i<=m;i++)
    
    printf("    o");
    if(i==6)
    printf("\n");
    
    
    printf("     <H>");
    n=5;
    for(i=0;i<=n;i++)

    printf("  <H>");
    if(i==6)
    printf("\n");
    

    printf("     I I");
    n=5;
    for(i=0;i<=n;i++)
    
    printf("  I I");
    if(i==6)
    printf("\n");

//打印第三排
   
    printf("           o");
    m=3;
    for(i=0;i<=m;i++)

    printf("    o");
    if(i==4)
    printf("\n");
    
    
    printf("          <H>");
    m=3;
    for(i=0;i<=m;i++)
    
    printf("  <H>");
    if(i==4)
    printf("\n");
    

    printf("          I I");
    m=3;
    for(i=0;i<=m;i++)
    
    printf("  I I");
    if(i==4)
    printf("\n");
    
//打印第四排
   
    printf("                o");
    m=1;
    for(i=0;i<=m;i++)
    
    printf("    o");
    if(i==2)
    printf("\n");
     
    
    printf("               <H>");
    m=1;
    for(i=0;i<=m;i++)
    
    printf("  <H>");
    if(i==2)
    printf("\n");
    

    printf("               I I");
    m=1;
    for(i=0;i<=m;i++)
    
    printf("  I I");
    if(i==2)
    printf("\n");
    
//打印第五排
    printf("                     o\n                    <H>\n                    I I\n");
    
    while(i=1)
    {
        Sleep(1000);
        system("color 9");
        Sleep(1000);
        system("color f5");
    }
    

    
    return 0;
}
    
    
    
    
    

其实没有做很大的变动,就只是在原来的代码基础上的结尾添加了一个循环

实验总结:

1.不知道为什么莫名觉得自己的实验6有点繁琐,具体位置应该是在实现隔五个数空一行那里,我暂时只能想到用循环来写,不知道还有没有其他的写法;

2.实验7没有想的那么难,理解那两个函数就问题不大,还挺好玩的;

3.实验6那个素数的函数还是想了挺久,尝试了好多次然后结合书上才想出来,太难了,自己去设计算法然后再把它用代码实现(尤其实验3,要把流程想清楚,先取再倒);

4.实验2也试错了好几次,break加错了位置就很离谱

以上.

 

实验3 C语言分支语句、循环语句、函数综合应用编程-1

标签:not   adr   随机   添加   i++   include   print   参数   循环语句   

原文地址:https://www.cnblogs.com/asa-wxy/p/14651015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!