1 字符处理
字符数据用ASCII码表示(表格)
int main()
{ char c;
c=getchar();
putchar(c+32);
putchar('\n');
return 0;
}
2循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
内嵌的循环中还可以嵌套循环,这就是多层循环。
如何求解“复杂”的问题?
如何求解“复杂”的问题?
大奖赛计分
要举办青年歌手大奖赛,请你设计一个程序,计算歌手成绩
输入
评委人数judgeNum
歌手人数singerNum
每名评委对每位歌手的打分mark(小数:0-10分)
输出
每位歌手的成绩
打分规则
每位评委对每位歌手给出一个分数,去掉一个最高分和一个最低分,余
下分数的平均值作为选手的最后得分。
3 提供另外一种退出程序的语句
break语句的一般格式
break;
while(表达式1) {
……
if
(表达式
2
)
break;
……
}
continue语句
一般格式 continue;
while(表达式1 ) {
……
if(表达式2) continue;
……
}
创建菜单,改变流程
int main()
{
char cChioce;
do
{
printf("* 1. 吃饭\n");
printf("* 2. 睡觉\n");
printf("* 3. 打豆豆\n");
printf("* 0. 退出\n");
printf("* 请选择(0-3):");
scanf("%c", &cChioce);
//选择后的处理
if (cChioce=='1')
printf("我吃吃吃...\n");
else if (cChioce=='2')
printf("我睡觉觉...\n");
else if (cChioce=='3')
printf("我打打打...\n");
else if (cChioce=='0')
break;
else
{
printf("\007选择错误!\n");
continue;
}
printf("恭喜你完成了一项工作!\n");
}
while(1);
return 0;
}
4通过求素数/质数 进一步体会循环的用法
一个数m,如果仅能被1和m整除,
则m为素数
如果m能够被2到m-1间的任意一
个数整除,m就不是素数
最朴素的算法:
#include <stdio.h>
int main()
{
int i, m;
int is_prime=1;
scanf("%d", &m);
for(i=2; i<=m-1; i++)
{
if(m%i==0)
is_prime=0;
}
if(is_prime==1)
printf("%d 是素数!\n", m);
else
printf("%d 不是素数!\n", m);
return 0;
}
改进 1
int is_prime=1;
scanf("%d", &m);
for(i=2; i<=m-1; i++)
{
if(m%i==0)
{
is_prime=0;
break; //及时退出
}
}
if(is_prime==1)
printf("%d 是素数!\n", m);
else
printf("%d 不是素数!\n", m);
改进2
int main()
{
int i, m, k;
int is_prime=1;
scanf("%d", &m);
k=sqrt(m);
for(i=2; i<=k; i++) //最多循环到k
{
if(m%i==0)
{
is_prime=0;
break; //及时退出
}
}
if(is_prime==1)
……
}
穷举/枚举
根据问题的部分条件确定答案的大致范围,
并在此范围内对所有可能的情况逐一验证,
直到将全部情况验证完毕。
若某个情况验证符合题目的全部条件,则为
本问题的一个解;
若全部情况验证后都不符合题目的全部条件
,则问题无解。