一.上午教学内容
switch()选择函数,括号内是变量
case选项,后只接一个确切的数字,每一个case后要加一个break
default没有选项(除了上边选项的所有情况),后不用加break
数据处理过程中的结构
switch case和if esle两种分支结构
for和while两种循环结构
#include<stdio.h>
int main()
{
char s;
s=getwchar();
switch(s)
{
case 'a':printf("1");break;
case 'b':printf("1");break;
case 'c':printf("1");break;
default:printf("10");
}
}
程序的实质:数据表示和数据处理
流程图是代码的直观体现
开始,结束:圆角方形
输入和输出:平行四边形
数据处理过程:长方形
判断:菱形
printf(格式输出)/scanf(格式输入)
putchar(输出字符)/getchar(输入字符)
printf("格式控制字符串",输出列表);
scanf("格式控制",地址列表);
putchar('\'')输出的是'
continue继续
break结束,跳出当前循环(只能用在switch语句和循环语句)
sizeof();求字节数
逻辑运算符,有非先算非
只有一个数的运算符:单目运算符
#include<stdio.h>
int main()
{
float a=1.23456;
printf("%.3f\n",a); //保留三位,四舍五入
printf("%-7f\n",a); //分配7个空间
printf("%6.3f\n",a); //占满6位,补全数据,没有的位写空格,右对齐
printf("%-6.3f",a); //左对齐
}
二.下午教学内容
//第一题:求1-99所有同构数 (例:5-25,25-625,5和25都是同构数)
/*
#include<stdio.h>
int main()
{
int i,j;
printf("1-99的同构数有:\n");
for(i=2;i<=99;i++)
{
j=i*i;
if((i<10)&&(j%10==i))
{
printf("%d ",i);
}
else if((i>=10)&&(i<=99)&&(j%100==i))
{
printf("%d ",i);
}
}
}
*/
//第二题:
/*
F
FE
FED
FEDC
FEDCB
FEDCBA
*/
/*
#include<stdio.h>
int main()
{
int i;
char j;
for(i=1;i<=6;i++)
{
for(j='F';j>70-i;j--)
{
printf("%c",j);
}
printf("\n");
}
}
*/
//第三题:
/*
A
BC
DEF
GHIJ
KLMNO
PQRSTU
*/
/*
#include<stdio.h>
int main()
{
int i;
char j='A',k;
for(i=1;i<=6;i++)
{
k=j;
for(j=k;j<k+i;j++)
{
printf("%c",j);
}
printf("\n");
}
}
*/
//第四题: 输入天数,转换成周数和天数。(如,输入18,转换成2周4天显示结果
// 18天是2周,4天)
/*
#include<stdio.h>
int main()
{
int a,b,c;
printf("输入天数");
scanf("%d",&a);
printf("%d天",a);
b=a/7;
c=a-(7*b);
printf("是%d周 ",b);
switch(c)
{
case(1):printf("1天");break;
case(2):printf("2天");break;
case(3):printf("3天");break;
case(4):printf("4天");break;
case(5):printf("5天");break;
case(6):printf("6天");break;
default:printf(" ");
}
}
*/
//成绩评定(96-100为A+,90-95为A,80-89为B,70-79为C,60-69为D,其余不及格)
/*
#include<stdio.h>
int main()
{
int a,b,c,read;
printf("请输入成绩");
scanf("%d",&a);
b=a/10;
c=a%10;
read:switch(b)
{
case(10):printf("成绩为A+");break;
case(9):
if(c>5)
{
b=10;
goto read;
}
else
{
printf("成绩为A");break;
}
break;
case(8):printf("成绩为B");break;
case(7):printf("成绩为C");break;
case(6):printf("成绩为D");break;
default:printf("不及格");
}
}
*/
//第六题:求s=1+2+3+----n,当加到第几项使,s的值会超过1000
/*
#include<stdio.h>
int main()
{
int i=0,s=0;
while(s<1000)
{
i++;
s=s+i;
}
printf("%d",i);
}
*/
//第七题:根据输入的年.月份给定这个月有多少天
/*
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入年和月:");
scanf("%d%d",&a,&b);
c=b%2;
if(b<=7)
{
switch(c)
{
case(0):
if(b==2)
{
if(a%100==0&&a%400==0)
{
printf("这个月是29天");
}
else if(a%100!=0&&a%4==0)
{
printf("这个月是29天");
}
else
{
printf("这个月是28天");
}
}
else
{
printf("这个月是30天");
}
break;
case(1):printf("这个月是31天");break;
}
}
else
{
switch(c)
{
case(0):printf("这个月是31天");break;
case(1):printf("这个月是30天");break;
}
}
}
*/
//第八题:求1+2+3+----n的结果,手动输入n
/*
#include<stdio.h>
int main()
{
int i=0,sum=0,n;
scanf("%d",&n);
while(i<n)
{
i++;
sum=sum+i;
}
printf("%d",sum);
}
*/
//第九题:求1-1000所有奇数和平均值
/*
#include<stdio.h>
int main()
{
int a,i,j=0,sum=0;
for(i=1;i<1000;i=i+2)
{
j++;
sum=sum+i;
}
a=sum/j;
printf("奇数和为%d平均值为%d",sum,a);
}
*/
//第十题:求1-3000之间所有5的倍数和7的倍数的和1416217
/*
#include<stdio.h>
int main()
{
int i,a=0,b=0;
for(i=1;i<=3000;i++)
{
if(i%5==0)
{
a=a+i;
}
else if(i%7==0)
{
b=b+i;
}
}
printf("5的倍数和%d,7的倍数和%d",a,b);
}
*/
//第十一题:求任意两个数的最大公约数和最小公倍数
/*
#include<stdio.h>
int main()
{
int a,b,c;
int i,j;
printf("请输入两个数a b\n");
scanf("%d%d",&a,&b);
if(b>a)
{
c=a;
a=b;
b=c;
}
i=a;
j=b;
while(c!=0)
{
c=a%b;
a=b;
b=c;
}
printf("最大公约数%d\n",a);
printf("最小公倍数%d\n",i*j/a);
}
*/