C语言复习笔记三:三种程序结构记习题总结(1)

来源:互联网 发布:网络电视盒设置密码 编辑:程序博客网 时间:2024/05/19 17:57

一:Switch

例一:输入分数求出等级

main()

{int g;

printf("input a mark");

scanf("%d",&g);

switch(g/10)

{case 10:

case 9:printf("A/n"); break;

case 8:printf("B/n"); break;

case 7:printf("C/n"); break;

case 6:printf("D/n"); break;

default :printf("E/n");

}

sleep(4);

}

 

注意:

(1)    case 10 case 9公用一个A

(2)    switch()括号里可以进行计算

(3)    /的灵活使用

二:各结构关联运算

例二:计算天数

#include "stdio.h"

 

/*计算月和日总共的天数*/

int mon(int a,int b)

{ int sum=0,i,month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

 for(i=0;i<a;i++)

 sum=sum+month[i];

 return(sum+b);

}

 

/* 计算年和闰月总共的天数*/

long yea(int y0, int y1)

{ int ryear=0,sum=0;

sum=(y1-y0)*365;

while(y0<y1)

{if(y0%400==0||(y0%4==0&&y0%100!=0))

 ryear++;

 y0++;

 }

 return(sum+ryear);

}

 

main()

{

int y0,m0,d0,y1,m1,d1;

printf("plase input birth day:/n");

scanf("%d%d%d",&y0,&m0,&d0);

printf("the birth day/n:%d-%d-%d/n",y0,m0,d0);

printf("plase input now date:/n");

scanf(" %d%d%d",&y1,&m1,&d1);

printf("now date/n:%d-%d-%d/n/n",y1,m1,d1);

printf("sum_day=%d",yea(y0,y1)-mon(m0,d0)+mon(m1,d1));

sleep(8);

}

注意:

(1)       sleep8):表示8秒后程序自动关闭

(2)       函数调用,可以共用一个外调函数。

三:goto

(1)    语句标号必须是标示符,定义方式和变量相同

(2)    标号形式为 “语句标号 :”

四:进制转换

#include <stdio.h>

main(){

  int dd[565];

int a,v,i=0;int tt[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

printf(" please input a:/n");/*a为数据*/

scanf("%d",&a);

printf("plase input v:/n");/*v是要转换的格式*/

scanf("%d",&v);

for(i;a!=0;i++)

 { dd[i]=a%v;

a=a/v; }

 

for(--i;i>=0;i--)

{v=dd[i];

printf("%c",tt[v]);}

getch();

}

注意

(1)       数据与数据要转换的格式的余数表示最终数据。

(2)       数组的灵活运用