Lenguaje C informe de laboratorio de tres

Programación C Experimento Informe III

Proyecto piloto: Aplicación 4-3-1if declaración ; 4-3-2switch-Caso de aplicación ; aplicación 4-3-3switch-anidado de casos y si las declaraciones ; Case-4-3-4switch estructura anidada aplicaciones ;

4-3-5 procedimientos analíticos ; aplicación calculadora

Nombre: Wei Lai

Experimental: Inicio

tiempo de experimento: 03/29/2020

1, propósitos y requisitos experimentales

1. Maestro de la representación en lenguaje C de un valor lógico (0 para "falso" y 1 para el "verdadero").
2, aprender el uso adecuado de la relación y expresiones lógicas.
3, para dominar todas las formas de si sintaxis de la sentencia y su uso a juego y la relación si else .Si métodos y if anidadas.
4, interruptor principal sintaxis de la sentencia y su uso, rotura nota anidada en una sentencia switch en los estados de uso y el interruptor.

En segundo lugar, el contenido experimental

1, ejercicios de laboratorio: declaración aplicación example_4_3_1if

①、问题的简单描述:无
②、实验代码:
#include<stdio.h>
int main()
{
    int l,w,h;
    printf("请输入箱子的长,宽,高;\n");
    scanf("%d%d%d",&l,&w,&h);
    if(l==w&&l==h&&w==h)
    printf("该箱子是正方体:\n");
    else
    printf("该箱子是长方体:\n");
    return 0;
 } 
③、问题分析:无

2, ejercicios: example_4_3_2switch-Case

①、问题的简单描述:不进行对变量的注释会让人看不懂代码想表达什么
②、实验代码:
#include<stdio.h>
main()
{
    int a,b,c;/*a表示打印纸的数量,b表示墨盒的数量,c表示光盒的数量*/
    float d,m;/*d表示总额 ,m表示应付款*/ 
    printf("请输入打印纸,墨盒,光盒的数量:");
    scanf("%d%d%d",&a,&b,&c);
    d=18*a+132*b+4.5*c;
    if(d>500)
    {
    m=(1-0.1)*d;
    printf("应付款:%.2f",m);
    }
    else if(d>400&&d<=500)
    {
       m=(1-0.08)*d;
       printf("应付款:%.2f",m); 	
    } 
    else if(d>300&&d<=400)
    {
	    m=(1-0.07)*d;
	    printf("应付款:%.2f",m); 
    }
    else if(d>200&&d<=300)
    {
	    m=(1-0.06)*d;
	    printf("应付款:%.2f",m); 
    }
    else if(d>100&&d<=200)
    {
	    m=(1-0.05)*d;
	    printf("应付款:%.2f",m); 
    }
    else
    {
    m=d;
    printf("应付款:%.2f",m); 
    }
}
③、问题分析:对变量进行适量的注释

3, laboratorio de ejercicios: Aplicación example_4_3_3switch-anidado de casos y si las declaraciones

①、问题的简单描述:闰年的表达.
②、实验代码:
#include<stdio.h>
int main()
{
    int year,month,days;
    printf("please enter year and month:\n");
    scanf("%d%d",&year,&month);
    switch(month)
{
	    case 2:if((year%4==0&&(year%100==!0))||year%400==0)
		    days=29;
		    else
		    days=28;
		    break;
		    case 1:
		    case 3:
		    case 5:
		    case 7:
		    case 8:
		    case 10:
		    case 12:days=31;
		    break;
		    case 4:
		    case 6:
		    case 9:
		    case 11:days=30;
		    break;
    }
    printf("天数为:%d",days);
}
③、问题分析:通过查阅资料得出能被4整除不能被一百整除或者能被400整除的为闰年.

4, ejercicios: estructura anidada example_4_3_4 de la solicitud

①、问题的简单描述:无
②、实验代码:
#include<stdio.h>
int main()
{
    int x,n,y;
    float sum=0.0;
    printf("请选择:1.日用品,2.文具,3.食品\n");
    scanf("%d",&x);
    switch(x)
    {
	    case 1:printf("请选择:1.牙刷(3.5元/支)2.牙膏(6.2元/支)\n");
		       printf("3.肥皂(2元/块)4.毛巾(8.6元/条)\n");
		       scanf("%d",&y);
		       printf("数量?");
		       scanf("%d",&n);
		       switch(y)
		       {
		   	    case 1:sum=3.5*n;break;
			    case 2:sum=6.2*n;break;
			    case 3:sum=2*n;break;
			    case 4:sum=8.6*n;break;	
		       } 
		       break;
	    case 2:printf("请选择:1.笔(3元/支)2.笔记本(1.2元/个)\n");
		       printf("3.文件夹(12元/个)4.文具盒(8.6元/个)\n");
		       scanf("%d",&y);
		       printf("数量?");
		       scanf("%d",&n);
		       switch(y)
		       {
		   	    case 1:sum=3*n;break;
			    case 2:sum=1.2*n;break;
			    case 3:sum=12*n;break;
			    case 4:sum=8.6*n;break;	
		       } 
		       break;
	    case 3:printf("请选择:1.白糖(3.6元/包)2.盐(1元/包)\n");
		       printf("3.饼(2元/个)4.方便面(3.6元/条)\n");
		       scanf("%d",&y);
		       printf("数量?");
		       scanf("%d",&n);
		       switch(y)
		       {
		   	    case 1:sum=3.6*n;break;
			    case 2:sum=1*n;break;
			    case 3:sum=2*n;break;
			    case 4:sum=3.6*n;break;	
		       } 
		       break;
    }
    printf("总计:%.2f元\n",sum);
}
③、问题分析:无

5, ejercicios de laboratorio: programa de análisis example_4_3_5

①、问题的简单描述:第一个实验结果不是0
②、实验代码Ⅰ:
#include<stdio.h>
int main()
{
    double x=1000/3.0;
    double y=x-333.0;
    double z=3*y-1.0;
    printf("x=%.2lf\n",x);
    printf("y=%.2lf\n",y);
    printf("z=%.2lf\n",z);
    if(z==0)
    printf("z==0.\n");
    else
    printf("z不等于0.\n");
    return 0; 
}
实验代码Ⅱ:
#include<stdio.h>
int main()
{
	int num=20;
	if(5<num&&num<10)
    	printf("%d in range (5,10)!\n",num);
	else
	printf("%d out of range (5,10)!\n",num); 
}
③、问题分析:double是占八个字节,也就是64位,由于小数位数有限,所以得出的结果并不会是0,而是一个十分接近0的小数.

En tercer lugar, el proyecto de formación: para lograr la calculadora

1, diseño. Compilar un sencillo programa de ordenador puede ser implementado en forma conjunta por el interruptor Además, la selección de sustracción si la declaración y la declaración es, consiguiendo de esta manera las cuatro operaciones
2 diagrama de flujo:

3. Los problemas encontrados durante el diseño y mejora de los métodos

第一次实验发现的问题:编译的代码只能够进行一次运算,而不能根据计算器使用者的意愿进行多次计算.
实验代码:
#include<stdio.h>
int main() 
{ 
    int m;
    float x,y,z; 
    char c;
    printf("请输入一个数字\n");
    printf("**输入数字1表示加法运算**\n");
    printf("**输入数字2表示减法运算**\n");
    printf("**输入数字3表示乘法运算**\n");
    printf("**输入数字4表示除法运算**\n");
    scanf("%d,",&m);
    switch(m>=1&&m<=4)
    {
	    case 1:switch (m) 
	    {
	    case 1: c='+'; break;
	    case 2: c='-'; break;
	    case 3: c='*'; break;
	    case 4: c='/'; break;
	    default: printf("you are wrong\n"); break;
	    }
	    printf("请输入两个数x,y\n");
	    scanf("%f%f",&x,&y);
	    switch ( c )
 	    {
	    case '+': z=x+y; break;
	    case '-': z=x-y; break;
	    case '*': z=x*y; break;
	    case '/': z=( y==0 )?(0):(x/y); break;
	    default: z=0; break;
	    }
	    printf("%f%c%f=%f\n",x,c,y,z);break;
	    default:printf("you are wrong\n");
    } 
}
解决方法:可以通过使用for语句或者do,while语句对中心语句进行循环或者停止循环.

4, el código

#include<stdio.h>
int main() 
{ 
    int i,m;
    float x,y,z; 
    char c;
do{
    printf("请输入一个数字\n");
    printf("**输入数字1表示加法运算**\n");
    printf("**输入数字2表示减法运算**\n");
    printf("**输入数字3表示乘法运算**\n");
    printf("**输入数字4表示除法运算**\n");
    scanf("%d,",&m);
    switch(m>=1&&m<=4)
    {
	    case 1:switch (m) 
	    {
	    case 1: c='+'; break;
	    case 2: c='-'; break;
	    case 3: c='*'; break;
	    case 4: c='/'; break;
	    default: printf("you are wrong\n"); break;
	    }
	    printf("请输入两个数x,y\n");
	    scanf("%f%f",&x,&y);
	    switch ( c )
 	    {
	    case '+': z=x+y; break;
	    case '-': z=x-y; break;
	    case '*': z=x*y; break;
	    case '/': z=( y==0 )?(0):(x/y); break;
	    default: z=0; break;
	    }
	    printf("%f%c%f=%f\n",x,c,y,z);break;
	    default:printf("you are wrong\n");
    } 
    printf("是否继续计算,继续请输入1,退出请输入不为1的整数:\n");
    scanf("%d",&i);
  }while(i==1);
}

En cuarto lugar, resumen de la prueba

Las ganancias y pérdidas en este experimento, he aprendido algunas reglas básicas de uso para y hacer, mientras que la declaración de lazo, revisar y consolidar la estructura de sentencia si, una vez más profundizar la comprensión de las relaciones lógicas. Inconveniente es que hay muchos, por ejemplo, cuando cuatro operaciones, el divisor no pueden olvidar a 0. menudo distraído al escribir código.

Supongo que te gusta

Origin www.cnblogs.com/l-w-8-5-7/p/12591746.html
Recomendado
Clasificación