史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】

#include <stdio.h>
#include <stdlib.h>
#define DOLLER 100.00
#define INIT 100
#define SIMP 0.10
#define MULT 0.05
#define PI 3.14
#if 0
static int test_1(void)
{
int year = 1;
double DOLLER_A,DOLLER_B;
DOLLER_B = DOLLER;
do
{
DOLLER_A = DOLLER * (1 + 0.1*year);
DOLLER_B = DOLLER_B * (1 + 0.05);
year++;
}while(DOLLER_A >= DOLLER_B);
printf("DOLLER_A = %lf\nDOLLER_B = %lf\n",DOLLER_A,DOLLER_B);
printf("year = %d\n",year - 1);
/*
浮点数不能做指数运算,要使用循环。
*/
return 0;
}
#endif
static void test_1(void)
{
int year = 0;
double suma = INIT,sumb = INIT;
while(suma <= sumb)
{
suma += INIT * SIMP;
sumb += MULT * sumb;
year++;
}
printf("year = %d\n",year);
printf("suma = %f\tsumb = %f\n",suma,sumb);
}
static void test_2(void)
{
int n;
int ct_odd = 0,ct_even = 0;
double sum_odd = 0,sum_even = 0;
while(scanf("%d",&n) == 1 && n != 0)
{
if(n % 2 == 1)
{
ct_odd ++;
sum_odd += n;
}
else
{
ct_even ++;
sum_even += n;
}
}
printf("odd:%d,AVE:%f\n",ct_odd,sum_odd/ct_odd);
printf("even:%d,AVE:%f\n",ct_even,sum_even/ct_even);
exit(0);
}
static void test_3(void)
{
int ct_a = 0,ct_e = 0,ct_i = 0,ct_o = 0,ct_u = 0;
int ch;
while((ch = getchar()) != '#') //按#结束字符输入
{
switch(ch)
{
case 'a':
case 'A':
ct_a ++;
break;
case 'e':
case 'E':
ct_e ++;
break;
case 'i':
case 'I':
ct_i ++;
break;
case 'o':
case 'O':
ct_o ++;
break;
case 'u':
case 'U':
ct_u ++;
break;
default:
break;
}
}
printf("%d %d %d %d %d\n",ct_a,ct_e,ct_i,ct_o,ct_u);
exit(0);
}
static void test_4(void)
{
long int fibonnacci1= 1,fibonnacci2 = 1;
int i;
for(i = 1;i <= 30;i++)
{
printf("%12ld %12ld ",fibonnacci1,fibonnacci2);
if(i % 3 == 0)
printf("\n");
fibonnacci1 += fibonnacci2;
fibonnacci2 += fibonnacci1;
}
exit(0);
}
static void test_5(void)
{
printf("九九乘法表:\n");
int i,j;
for(i = 1;i <= 9;i++)
{
for(j = 1;j <= i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
exit(0);
}
static void test_6(void)
{
int i,j,k;
for(i = 0;i < 20;i++)
{
for(j = 0;j < 34;j++)
{
k = 100 - i -j;
if(k % 3 == 0 && 5*i+3*j+k/3 == 100)
printf("%d %d %d\n",i,j,k);
}
}
exit(0);
}
static void test_7(void)
{
int i;
int a,b,c;
for(i = 100;i < 1000;i++)
{
a = i/100;
b = i/10%10;
c = i%10;
if(i == a*a*a + b*b*b + c*c*c)
printf("num = %d\n",i);
}
#if 0
int i,j,k;
for(i = 1;i < 10;i++)
{
for(j = 0;j <10;j++)
{
for(k = 0;k < 10;k++)
{
if(100*i+10*j+k == i*i*i+j*j*j+k*k*k)
printf("num = %d\n",100*i+10*j+k);
}
}
}
#endif
}
static void test_8(void)
{
int i,j,mark;
for(i = 2;i < 1000;i++)
{
mark = 1;
for(j = 2;j <= i/2;j++)
{
if(i % j == 0)
{
mark = 0;
break;
}
}
if(mark)
printf("%d is a prime.\n",i);
}
}
static void test_9(void)
{
int i;
int line = 6;
int chars = 6;
char ch;
for(i = 0;i < line;i++)
{
for(ch = 'A' + i;ch < 'A' + chars;ch++)
{
printf("%c",ch);
}
printf("\n");
}
exit(0);
}
static void test_10(void)
{
int i,j,k;
for(i = 1;i <= 4;i++)
{
for(j = 1;j <= 4 - i;j++)
printf(" ");
for(k = 1;k < 2*i;k++)
printf("*");
printf("\n");
}
for(i = 1;i <= 3;i++)
{
for(j = 1;j <= i;j++)
printf(" ");
for(k = 1;k <= 7 - 2*i;k++)
printf("*");
printf("\n");
}
exit(0);
}
static void test_11(void)
{
printf("Please input the first integet(q to qiut):");
int num;
int sum = 0;
while(scanf("%d",&num) == 1)
{
sum += num;
printf("Please input the next integet(q to qiut):");
}
printf("sum = %d\n",sum);
exit(0);
}
static void test_12(void)
{
int r = 1;
float area = 0;
for(r = 1;;r++)
{
area = PI * r * r;
if(area > 100)
break;
printf("area = %f\n",area);
}
/*
while(area <= 100)
{
area = PI * r * r;
printf("area = %f\n",area);
r++;
}
*/
exit(0);
}
int main()
{
// test_1();
// test_2();
// test_3();
// test_4();
// test_5();
// test_6();
// test_7();
// test_8();
// test_9();
// test_10();
// test_11();
// test_12();
exit(0);
}