C语言学习笔记

来源:互联网 发布:淘宝网店实战宝典目录 编辑:程序博客网 时间:2024/04/30 13:44

         c语言是由称为“函数”的模块组成的,虽然可以自行编写所有函数,但是大部分c程序员会利用已有的丰富的函数集,这个函数集称为c标准库。

         C语言只有七种控制结构,即顺序结构、三种选择结构和三种循环结构

        任何计算问题的求解是按指定的顺序执行一系列的动作。根据要执行的动作以及这些动作应该执行的
顺序求解问题的过程称为算法。

/*假设每年的第一天打渔*/
#include<stdio.h>
void main()
{
 /*声明变量*/
 int y,m,d,days,n;
 /*提示输入*/
 printf("please enter year and month and data:/t");
 /*向内存录入*/
 scanf("%d.%d.%d",&y,&m,&d);
 /*把本月的天数赋给变量*/
 days=d;
 /*利用多路选择计算当前日期是一年中的第几天*/
 switch(m-1)
 {
 case 12:
  days=days+31;
    case 11:
  days=days+30;
    case 10:
  days=days+31;
 case 9:
  days=days+30;
 case 8:
  days=days+31;
 case 7:
  days=days+30;
 case 6:
  days=days+31;
 case 5:
  days=days+31;
 case 4:
  days=days+30;
 case 3:
  days=days+31;
 case 2:
  if((y%4==0&&y%100!=0)||(y%400==0))
   days=days+29;
        else
   days=days+28;
 case 1:
  days=days+31;
 }
 printf("%d/n",days);
 /*假设当年的第一天打渔,判断当前日期是打渔还是晒网*/
 n=days%5;
 switch(n)
 {
 case 0:
  printf("晒网/n");
  break;
 case 4:
  printf("晒网/n");
  break;
 case 3:
  printf("打渔/n");
  break;
 case 2:
  printf("打渔/n");
  break;
 case 1:
  printf("打渔/n");
  break;
 }
}

/*利用了case后面不加break语句执行了连续的多个分支语句*/
/*假如时间是一个重复的循环可以通过求余数来判断当前日期是这个循环的哪一天*/

********************************************************************************************************************

#include<stdio.h>
void main()
{
 int x=0,y=2,z=3;
 switch(x)
 {
 case 0:switch(y==2)/*y==2为真则得到整数1*/
     {
   case 1:printf("*");break;
   case 2:printf("%");break;
     }
 case 1:switch(z)
     {
         case 1:printf("s");
   case 2:printf("*");break;
   default:printf("#");
     }
 }
}

***************************************************************************************************************

/*credit信用,银行存款;charges支出;account帐户;balance结算;limit限额;exceed超出*/
#include<stdio.h>
void main()
{
 int account;
 float begining,charges,credits,limit,balance;
 /*Input account code*/
 printf("Enter account(-1 to end):");
 scanf("%d",&account);
 /*If account!=-1,input begining、charges、credit、limit*/
 while(account!=-1)
 {
  printf("Enter beginning banlance:");
  scanf("%f",&begining);
  printf("Enter total charges:");
  scanf("%f",&charges);
  printf("Enter total credits:");
  scanf("%f",&credits);
  printf("Enter credits limit:");
  scanf("%f",&limit);
 /*计算最终的结算额*/
 balance=begining+charges-credits;
 /*显示超出信用限额的顾客的帐号、信用限额、新的结算额、以及消息“Credit limit exceed”*/
 if(balance>limit)
 {  
  printf("Account:%4.2d/nCredit limit:%4.2f/nBalance:%4.2f/nCredit Limit Exceeded",account,limit,balance);
 }
 /*继续输入下一个帐号*/
 printf("/n/nEnter account(-1 to end):");
 scanf("%d",&account);
 }
}

/*本程序的重点是利用标记值控制循环的结束*/

****************************************************************************************************************

/*分析考试结果*/
#include<stdio.h>
void main()
{
 /*在声明语句中初始化变量*/
 int passed=0,failures=0,student=1,result=0;
 /*用计数控制的循环处理10个学生的考试成绩*/
 while(student<=10)
 {
  printf("Enter result(1=passed,2=fail)");
  scanf("%d",&result);
  if(result==1)
  {
   passed=passed+1;
  }
  else
  {
   failures=failures+1;
  }
  student++;
 }
 printf("Passed %d/nFailed %d/n",passed,failures);
 if(passed>8)
  printf("Raise tuition/n");
}

/*这个程序是利用计数器来控制循环的次数*/