第一周9.16

来源:互联网 发布:java链表反序 编辑:程序博客网 时间:2024/06/05 00:51

1 字符处理

字符数据用ASCII码表示(表格)

int main()

{ char c; 

c=getchar(); 

putchar(c+32); 

putchar('\n'); 

return 0;

}

2循环的嵌套

 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。

 内嵌的循环中还可以嵌套循环,这就是多层循环。

如何求解“复杂”的问题?

如何求解“复杂”的问题?
 大奖赛计分
 要举办青年歌手大奖赛,请你设计一个程序,计算歌手成绩
 输入
 评委人数judgeNum
 歌手人数singerNum
 每名评委对每位歌手的打分mark(小数:0-10分)
 输出
 每位歌手的成绩
 打分规则
 每位评委对每位歌手给出一个分数,去掉一个最高分和一个最低分,余
下分数的平均值作为选手的最后得分。


提供另外一种退出程序的语句

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)
 ……
}


穷举/枚举
 根据问题的部分条件确定答案的大致范围,
并在此范围内对所有可能的情况逐一验证,
直到将全部情况验证完毕。
若某个情况验证符合题目的全部条件,则为
本问题的一个解;
若全部情况验证后都不符合题目的全部条件
,则问题无解。