前提:
因为之前都是接触概念较多,现在从实际来操作。
01 Hello world
说到第一个程序不得不从Hello world 开始!
#include<stdio.h>
main()
{
printf("hello word!"); //;分号要注意!
printf("\n");
}
02 两值相加 — 完整的C语言程序
#include<stdio.h>
main()
{
int a, b, sum = 0;//sum记得赋初值
a = 10;
b = 20;
sum = a + b;//方向不要弄反
printf(" sum = %d", sum);//
printf("\n");
}
03 贵有恒,何必三更起五更睡;最无益,只怕一日曝十日寒!
#include<stdio.h>
main()
{
printf(" 贵有恒,何必三更起五更睡;最无益,只怕一日曝十日寒! ");
printf("\n");
}
04 正方形周长
程序代码:
h = a * 4;
不可写出日常形式:
h = 4a;
#include<stdio.h>
main()
{
int a, h;
a = 4;
h = a * 4;
printf(" h = %d ", h);
printf("\n");
}
05 输出一个正方形
#include<stdio.h>
main()
{
printf("* * * * *\n");//'\n'为转义符
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("* * * * *\n");
}
字符常量 | |
---|---|
一般字符常量 | 特殊字符常量 |
一般字符常量 | 如‘A’ 、 ‘8’ 、 ‘a’ |
---|---|
特殊字符常量 | 以‘ \ ’开头 ,后跟一个或几个字符,每个转义字符具有特定的含义 |
注意:
㈠、转义符只能是小写字母,每个转义符只能看作一个字符。
㈡、垂直制表符‘\v’ 和换页符’\f’ 对屏幕没有任何影响,会影响打印机执行相应操作
㈢、在C中,转义符表示不可打印字符。
06 输出一个三角形
#include<stdio.h>
main()
{
printf(" * \n");
printf(" * * \n");
printf("* * * * *\n");
}
07 求和程序
#include<stdio.h>
main()
{
int a, b, sum = 0; /*声明变量*/
a = 123; /*为变量赋初值*/
b = 789; /*为变量赋初值*/
sum = a + b; /*求和运算*/
printf(" sum = %d\n", sum );/*输出结果*/
}
08 求 10!
#include<stdio.h>
main()
{
int i = 2, n = 10; /*定义变量i,n为整型,i=2n=10*/
float fac = 1; /*定义变量fac为单精度型,赋初值fac=1*/
if(n == 0 || n == 1) /*当n=0 /1 时输出阶乘1*/
{
printf(" factorial is 1 \n" );
return 0;
}
while(i <= n) /*当数值大于等于i时执行循环体*/
{
fac = fac * i; /*实现求阶乘过程*/
i ++; /*变量i自加*/
}
printf(" factorial of %d is: %.2f.\n", n, fac );
}
注意
:要将求得的阶乘最终结果定义为单精度/双精度型,如果定义为整型,很容易出现溢出
现象。
//me:
#include<stdio.h>
main()
{
int i;
float sum = 1;
for(i = 1; i <= 10 ; i ++)
{
sum *= i;
}
printf(" sum = %f\n", sum );
}
09 3个数由小到大排序
#include<stdio.h>
main()
{
int a, b, c;
scanf("%d %d %d\n", &a, &b, &c);
int temp;
if(a > b)
{
temp = a;
a = b;
b = temp;
}
if(a > c)
{
temp = a;
a = c;
c = temp;
}
if(b > c)
{
temp = b;
b = c;
c = temp;
}
printf(" %d %d %d\n", a, b, c );
}
①、if语句有3种形式:
-
-
-
②、else不可单独使用,它必须是if语句的一部分
③、if语句可以嵌套使用。
④、if与else后面可以包含一个或多个内嵌的操作语句。
010 猴子吃桃
猴子吃桃:猴子第一天摘下若干桃子,第一天猴子吃了一半多一个,第二天又吃剩下的的一半多一个,以后每天早上吃前一天剩下的多一个,第10天早上再想吃只剩下一个。求第一天猴子摘了几个桃子?
假设x个,第二天剩下的: x=x/2-1;
//官方
#include<stdio.h>
main()
{
int day, x1, x2;
day = 9;
x2 = 1;
while(day > 0)
{
x1 = (x2 + 1) * 2;
x2 = x1;
day--;
}
printf(" %d \n", x1 );
}
//me
#include<stdio.h>
main()
{
int a = 1, i; //设置原先桃只有1个;i为次数
for(i = 0 ; i < 9; i++)//因为i从0开始算,就要<9,不能等于
{
a= (a +1) * 2;
}
printf(" %d \n", a );
}
011 买苹果
阴阳买苹果,一个苹果0.8元,第一天买2个,第二天买第一天的2倍,直到购买的苹果个数不超过100,求阴阳每天平均花多少钱?
#include<stdio.h>
main()
{
int n = 2, day = 0,;
float money = 0, ave;
while(n < 100) //苹果个数不超过100,故while 中的表达式n小于100
{
money += n * 0.8; //将每天花的钱数累加求和
day++; //天数+1
n *= 2; //苹果每天购买的数目变化。
}
ave = money / day ;
printf(" %.06f \n", ave );
}
//me
#include<stdio.h>
main()
{
int day, a;
float money;
day = 0;
for(a = 2; a < 100 ; a *= 2)
{
money += a * 0.8; //第一天2个,第2天4个,每天买的数目渐渐上升,钱就要边加变算。
day++;
}
money = money / day ;
printf(" %.06f \n", money );
}