嵌入式学习笔记
7月9号 星期五 第五天
gcc 编译 gcc xxx.c -lm -Wall //Wall W要大写 ,显示隐藏的警告
while 循环 while()后不加;分号
do while 循环 while();后加;分号
int main()
{
int i =1,sum =0;
do
{
sum =sum +1;
i =i+1;
}while(i <= 100);
printf("i =%d\n",i);
printf("sum = %d\n",sum);
return 0;
}
int main ()
{
int i = 1,sum =0;
while (i<= 100)
{
sum =sum +1;
i =i +1;
}
printf("i = %d \n",i);
printf("sum = %d \n",sum);
return 0;
}
练习:
投资问题:D1以10%的单利息投资了100美元(也就是说,每年投资赢的利息等于原始投资的10%)。D2则以每年5%的复合利息投资了100美元(也就是说,利息是当前结余的5%,其中包括以前的利息)。编写一个程序,计算需要多少年D2的投资额才会超过D1,并且显示出到那时两个人的投资额。
#define BASE 100
#define SIMP 0.1
#define COMP 0.05
int main ()
{
float d1=BASE,d2=BASE;
int i=0;
while(d1>=d2)
{
d1=d1 + BASE*SIMP;
d2=d2+ d2* COMP;
i=i+1;
}
printf("年=%d\n",i);
printf("d1=%f\n",d1);
printf("d2=%f\n",d2);
}
注:当发现有小数时,要用float,或者double定义,用int会损失精度。
练习2:
读入数据,直到终端输入为0为止,计算输入的偶数(even)个数及平均值,以及奇数(odd)的个数及奇数的平均值
#include <stdio.h>
int main()
{
int x=0;
int i=0;
int y =0;
int m=1;
double sum_i =0,sum_y =0;
while(1)
{
printf("请输入第%d数字 : \n",m);
m++;
if(scanf("%d",&x)!=1)
break;
if(x==0)
break;
if(x%2 ==0)
{
i=i+1;
sum_i = sum_i + x;
}
if(x% 2==1)
{
y=y+1;
sum_y = sum_y + x;
}
}
printf("偶数个数=%d\t ave= %lf\n ",i,sum_i/i);
printf("ji数个数=%d \t ave = %lf \n",y ,sum_y/y);
return 0;
}
这两个简单的程序就研究了半天,真是废啊!!
|