第2周 C语言程序设计(第4版)-4.6库存报表及产品失效率图

1、问题及代码:

#include <stdio.h>
#define ITEMS 4
int main()
{
 int i,quantity[5];
 float rate[5],value,total_value;
 char code[5][5];
 i=1;
 while(i<=ITEMS)
 {
     printf("Enter code,quantity and rate:");
     scanf("%s %d %f",code[i],&quantity[i],&rate[i]);
     i++;
 }
     printf("\n");
     printf("           库存报表            \n");
     printf("----------------------------------------\n");
     printf("code     quantity     rate     value\n");
     printf("----------------------------------------\n");
     total_value=0;
     i=1;
 while(i<=ITEMS)
 {
      value=quantity[i]*rate[i];
      printf("%5s %10d %10.2f %e\n",code[i],quantity[i],rate[i],value);
      total_value+=value;
      i++;
 }
     printf("---------------------------------------\n");
     printf("               总价值:%e\n",total_value);
     printf("---------------------------------------\n");
     return 0;
}
运行结果:

第2周 C语言程序设计(第4版)-4.6库存报表及产品失效率图_第1张图片

知识总结:

用while循环解决实际问题,做库存报表。

学习心得:
刚开始没有为数量、单价、代号设定字符长度,对code后加入[][]不是很理解;

在scanf()中,给rate的格式码弄错,用了%d,导致运行时结果出现错误,前两次能顺利输入,第三次跳过直接输入第4次。

在第2次while()循环中,为value赋值时,用quantity*rate,而少了[i],应注意。

2、问题及代码:

#include <stdio.h>
#define LAMDA 0.001
int main()
{
 int i,R;
 double t;
 float r;
    for(i=0;i<27;i++)
     {
        printf("--");
     }
    printf("\n");
    for(t=0;t<3000;t+=150)
    {
        r=exp(-LAMDA*t);
        R=(int)(50*r+0.5);
        printf("丨");
      for(i=0;i<=R;i++)
        {
          printf("*");
        }
        printf("#\n");
     }
     for(i=1;i<3;i++)
        {
        printf("丨\n");
        }
}
运行结果:

第2周 C语言程序设计(第4版)-4.6库存报表及产品失效率图_第2张图片

知识总结:

一种抽样运算。for的嵌套循环,e可用exp直接在公式中运用。

学习心得:

不明白最后一个for()有什么作用,运行结果显示加入和不加入该循环,结果是一样的。

你可能感兴趣的:(第2周 C语言程序设计(第4版)-4.6库存报表及产品失效率图)