zoukankan      html  css  js  c++  java
  • 《C语言程序设计》实验报告(四)

    C语言程序设计报告

    实验项目:课堂练习5-3-1练习二,5-3-2练习二,5-3-4,5-3-5练习一、二、三

    姓名:余永祥 实验地点:家 实验时间:2020年4月10日

    一、实验目的与要求

    1.熟练地掌握while,do_while及for语句实现循环的方法;

    2.了解3种循环语句的区别和转换、各自的适应性、循环嵌套的使用;

    3.掌握如何在循环语句种使用break,continue语句,改变程序流程;

    4.掌握在程序设计种用循环的方法实现各种算法。

    二、实验内容

    1.实验练习:

    实验5-3-1练习二

    实验代码:

    #include<stdio.h>
    main()
    {
    	int i,j,n,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=%.f
    ",sum);
    }
    

    出现问题:对题目意思不清楚

    解决方法:查找数学资料

    2.实验练习:

    实验5-3-2练习二

    实验代码:

    #include<stdio.h>
    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
    ",k);
            k++;
        }
    }
    

    出现问题:无

    解决方法:无

    3.实验练习:

    实验5-3-4

    实验代码:

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

    出现问题:引用的为字符型,有时候会报错

    解决方法:再次确认每个字符都加了''

    4.实验练习:

    实验5-3-5练习一

    实验代码:

    #include<stdio.h>
    main()
    {
    	int m,n,k;
    	int sum=0;
    	printf("各种驮法如下:
    ");
    	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+0.5*k==100))
    		  {
    		     printf("大马%3d匹;中马%3d匹;小马%3d匹。
    ",m,n,k);
    		     sum++;
    		  }
    		} 
        }
    	printf("共有%d种驮法
    ",sum); 
    }
    

    出现问题:数据不对

    解决方法:在条件中居然漏了'='

    5.实验练习:

    5-3-5练习二

    实验代码:

    #include<stdio.h>
    main()
    {
    	int a,b,c,d,i,sum=0;//设a为首项,d为差值,b为前四项的和,c为前四项的积
    	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
    ",a,d);
    	   		printf("
    数列前6项的值:");
    			   for(i=0;i<6;i++)
    			   {
                                    printf("%d ",a+i*d);
    			        sum=sum+(a+i*d);
    				} 
    				printf("
    ");
    		   }
    		} 
    		printf("
    数列的前6项和:%d
    ",sum);
    }
    

    出现问题:无

    解决方法:无

    6.实验练习:

    5-3-5练习三

    实验代码:

    #include<stdio.h>
    main()
    {
    	int x,y,z,sum;//设x为大学生的,y为中学生的,z为小学生的 
    	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	 中学生%3d	 小学生%3d
    ",x,y,z);
    				sum=sum+1;
    			}
    		}
    	}
    	printf("共有%d种不同的组合。
    ",sum);
    }
    

    出现问题:无

    解决方法:无

    三、实验小结

    收获:

    1.我了解3种循环语句的区别和转换、各自的适应性、循环嵌套的使用;

    2.掌握了一定while,do_while及for语句实现循环的方法,但不熟练;

    3.逻辑性有一定的提高;

    不足:

    1.对复杂的循环不能吃透,难以理解;

    2.经常遗漏一些细节,导致最终结果出现问题;

  • 相关阅读:
    JS解析XML文件和XML字符串
    查询优化的方法
    Oracle 常用操作
    取得同一网段内的IP和MAC地址!
    域名知多少?
    Oracle 数据库链路 同义词
    提高查询速度的方法【百万级以上数据】
    ExtJs学习之路从Grid中得到数据
    一个左边停靠且可以展开和隐藏的菜单【Jquery插件】
    Go流程控制
  • 原文地址:https://www.cnblogs.com/GZ-1128-XZ/p/12697271.html
Copyright © 2011-2022 走看看