实验三 循环语句

【实验内容】

Part1: 验证性内容 这部分自行运行程序,并理解体会循环的用法。无需写在实验博客中。

Part2: 补足程序,使程序符合题目要求并正确运行

  • 编程找出5个整数中的最大数和最小数,并输出找出的最大数和最小数。 算法思路描述:
  • /* 
    编程找出5个整数的最大数和最小数 
    《C语言程序设计教程学习指导》p122实验内容(3) 
    */ 
    
    #include 
    #include 
    int main() {
        int number, max, min, n;
        
        n=1;
        printf("输入第%d个数: ", n);
        scanf("%d", &number);
        max = number;
        min = number;
        
        while(n<5)
         {
            n++;
            printf("输入第%d个数: ", n);
            scanf("%d", &number);    
    
            if(number>max)
                max = number;
            else if(number<min)
                min = number;
        }
        
        printf("最大数为: %d\n", max);
        printf("最小数为: %d\n", min);
        
        system("pause");
        
        return 0;
    } 

    实验三 循环语句_第1张图片

 

Part3: 编程练习

  • 编程输出101-200之间所有素数,并输出这一区间内素数个数。
  • //编程输出101-200之间所有素数,并输出这一区间内素数个数。
    #include
    #include
    int isprime(int m);
    int main(){
        int i,n=0;
        for(i=101;i<=200;i++)
        {
            if(isprime(i)){
            
            printf("%4d",i);
             n++;
             }
        }
        printf("素数个数有%d个\n",n);
        return 0;
    }
    int isprime(int m)
    {
        int k;
        for (k=2;k<=sqrt(m);k++)
        if(m%k==0)
        return 0;
        return 1;
    }

  • 将一个长整型数s的每一数位上的奇数依次取出来,构成一个新的数,起高位仍在高位,低位仍在低位,例如, s=20199102时,t中的值为1991
  • //将一个长整型数s的每一数位上的奇数依次取出来,构成一个新的数,起高位仍在高位,低位仍在低位
    #include
    int main()
    {
        printf("Enter a number:\n");
         
        long int s,y;
        int a,b,d,x,s0;
        a=0,b=1;
        d=1,x=0,y=0;
        scanf("%ld",&s);
        s0=s;
        while(s0!=0)
        {
            s0=s0/10;
            a++;
        }
        
        for(b=1;b<=a;b++)
        {
            x=s%10;
            s=s/10;
            if(x%2==1)
            {
                y=y+x*d;
                d=d*10;
            }
            else 
            y=y+0;
        }
        
        printf("new number is :%d\n",y);
    
        
    return 0;
    }

    实验三 循环语句_第2张图片

  • 拓展(*选做*):修改上述程序,使得它可以实现多组判断,直到用户 按下Ctrl+D或Ctrl+E结束。
  • //将一个长整型数s的每一数位上的奇数依次取出来,构成一个新的数,起高位仍在高位,低位仍在低位
    #include
    #include 
    int main()
    {
        printf("Enter a number:\n");
         
        long int s,y;
        int a,b,d,x,s0;
        a=0,b=1;
        d=1,x=0,y=0;
         while (scanf("%ld",&s)){
        
        s0=s;
        while(s0!=0)
        {
            s0=s0/10;
            a++;
        }
        
        for(b=1;b<=a;b++)
        {
            x=s%10;
            s=s/10;
            if(x%2==1)
            {
                y=y+x*d;
                d=d*10;
            }
            else 
            y=y+0;
        }
        
        printf("new number is :%d\n",y);
        }
     return 0;   
        system("pause");
    
    }

    实验三 循环语句_第3张图片

  • 编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。
  • //编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。
    #include
    #include
    int main()
    {
        int n,a,i,b;
        double s,c;
        printf("Enter n and a:\n");
        scanf("%d%d",&n,&a);
        b=a;
        s=1.0/a;
        for(i=2;i)
        {
        b=b+a*pow(10,i-1);
        c=i/b;
        s=s+c;    
        }
        
        printf("s=%f\n",s);
        return 0;
    }
     

    实验三 循环语句_第4张图片

  • 拓展(*选做*):修改上述程序,使得它可以实现多组判断,直到用户 按下Ctrl+D或Ctrl+E结束。
  • //编写程序,实现从键盘上输入n和a,根据公式s=1/a+2/aa+3/aaa+…+n/(a..a)计算s的值,并输出。
    #include
    #include 
    int main()
    {
        int n,a,i,b;
        double s,c;
        printf("Enter n and a:\n");
        while (scanf("%ld%ld",&n,&a))
        { 
        b=a;
        s=1.0/a;
        for(i=2;i)
        {
        b=b*10+a;
        c=i/b;
        s=s+c;    
        }
        printf("s=%lf\n",s);
        }
         
        system("pause");
        return 0;
    }

    实验三 循环语句_第5张图片


【实验总结与体会 】
本次实验中的收获:对循环结构了解熟悉了点,学会了如何计算一个数字的位数,如何取一个数各位数

遇到的问题:后两个程序有误,但是实在找不着错误,还请大佬们有空帮忙瞅一眼,感谢!;

还是容易语法错误

你可能感兴趣的:(实验三 循环语句)