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

C语言实验报告四

时间:2020-04-12 22:52:17      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:内容   content   val   div   sig   目的   了解   ext   ==   

C程序设计实验报告

姓名:王承伟   实验地点:家  实验时间:2020.4.12

一、实验目的与要求

1.熟练地掌握while,do...while,及for语句实现循环的方法。
2.了解3种循环语句的区别和转换、各自的适应性、循环嵌套的使用。
3.掌握如何在循环语句中使用break,continue语句,改变程序流程。
4.掌握在程序设计中用循环的方法实现各种算法。

 

二、实验内容

1、实验练习:5.3.1练习2 求数列的前n项的和

1问题的简单描述:

2实验代码:

#include<stdio.h>
void main()
{
    int n,i,j,sign=1;
    float fac,sum;
    printf("Please input value of n:");
    scanf("%d",&n);
    sum=0.0;
    for(i=1;i<=2*n-1;i=i+2)
    {
         
         fac=1.0;
        for(j=1;j<=i;j++)
        {
            fac=fac*j;
        }
             fac=fac*sign;
        sum=sum+fac;
        sign=-sign;
         
    }  
     printf("sum=%.0f\n",sum);
}

 

3问题分析:要充分的理解题目的意思,对于里面的for要灵活的运用,其中的j的定义要好好把握,当时在写代码时用了两个j++,然后运行的结果错误,后来换成for语句就成功了

2、实验练习:5.3.2练习2 求水仙花数

1问题的简单描述:

2实验代码:

#include<stdio.h>
void main()
{
    int x,y,z;
    int k=100;
    while(k<=999)
    {
        x=k/100;
        y=k/10%10;
        z=k%10;
        if(k==x*x*x+y*y*y+z*z*z)
         printf("%d\n",k);
        k++;
    }
}

 

3问题分析:这道很简单

3、实验练习:5.3.4 十进制转换

1问题的简单描述:

2实验代码:

#include<stdio.h>
void main()
{
    char c;
    int k,data;
    data=0;
    for(k=0;k<4;k++)
    {
        while(k<4 )
        {
            c=getchar();
            if(c>=0&&c<=9)
             break;
        }
        if(k==0)
        data+=(c-0)*1000;
        if(k==1)
        data+=(c-0)*100;
        if(k==2)
        data+=(c-0)*10;
        if(k==3)
        data+=(c-0);
    }
    printf("Data=%d",data);
}

 

3问题分析:对于这道不是很理解,主要是对着流程图写

4、实验练习:

1问题的简单描述:5.3.5练习1 百马百担问题

实验代码:

#include<stdio.h>
void main()
{
    int m,n,k;
    int sum=0;
    printf("各种驮法如下:\n");
    for(m=1;m<=100;m++)
    {
     for(n=1;n<=100-m;n++)
     {
         k=100-m-n;
         if((k%2==0)&&(3*m+2*n+k/2==100))
         {
             printf("大马%3d匹  中马%3d匹  小马%3d匹\n",m,n,k);
             sum++;
        }
     }
    }
     printf("共有%d种驮法.\n",sum);
}
    
  

 

问题分析:

 

2问题的简单描述:5.3.5练习2 等差数列

实验代码:

#include<stdio.h>
void main()
{
    int a,b,c,d,i,sum=0;
    for(a=1;a<=26;a++)
       for(d=1;d<=26;d++)
       {
           b=4*a+6*d;
           c=a*(a+d)*(a+2*d)*(a+3*d);
           
           if((b==26)&&(c==880))
           {
               printf("数列的初值为a=%d,差值为d=%d\n",a,d);
               printf("\n数列前6项的值:");
               for(i=0;i<6;i++)
               {
                    printf("%3`d",a+i*d);
                    sum=sum+(a+i*d);
               } 
               printf("\n");
        }
       }
       printf("\n数列的前六项的和:%d\n",sum);
}

 

问题分析:

 

3问题的简单描述:5.3.5练习3 食品分配问题

实验代码:

#include<stdio.h>
void main()
{
    int x,y,z,sum;
    sum=0;
    for(x=1;x<30;x++)
    {
        for(y=1;y<30;y++)
        {
            z=30-x-y;
            if(x*3+y*2+z==50)
            {
                printf("大学生%3d\t中学生%3d\t小学生%3d\n",x,y,z);
                sum=sum+1;
            }
        }
    }
    printf("共有%d种不同的组合。\n",sum);
} 

 

问题分析:


三、项目实训:九九乘法表


1、代码

#include<stdio.h>
int main()
{
    int i,j,sum;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
            sum=i*j;
            printf("%4d",sum);
            
        }printf("\n");
    } 
    
}

 

四、实验小结(剖析个人得失)

C语言实验报告四

标签:内容   content   val   div   sig   目的   了解   ext   ==   

原文地址:https://www.cnblogs.com/wace2020/p/12688026.html

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