Presentation is loading. Please wait.

Presentation is loading. Please wait.

C语言实验 第四课.

Similar presentations


Presentation on theme: "C语言实验 第四课."— Presentation transcript:

1 C语言实验 第四课

2 统计单词 输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔开。 例如运行时输入:I am a boy.
运行结果:There are 4 words in the line.

3 思路 读取一个字符串 判断单词的数量

4 思路 读取一个字符串,解决方法有哪几种? scanf(“%s”,str);
for(i=0;i<100;i++) scanf(“%c”,str[i]); gets(str); 这三种方法都可以吗?

5 思路 判断单词的数量,如何解决 开拓思路,不拘一格 常见的错误 1.直接数空格 2.忽略开头有空格的情况 3.忽略结尾有空格的情况
_a__bb___ccc_

6 程序片段 #include<stdio.h> void main( ) { char string[81];
int i, num=0,flag=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c==' ')flag=0; else if(flag==0) flag=1; num++; } printf("There are %d words in the line.\n",num);

7 抽奖游戏 用一个数组存放班上45个同学的学号或者电话号码(可虚构),编写一个抽奖的软件。
要求:按下回车键屏幕上开始快速滚动;再次按下回车键停止滚动,所显示的号码就是中奖号。

8 思路 按下回车键开始 电话号码滚动的效果 按下回车键结束

9 思路 按下回车键开始滚动 getchar( )函数读取当前输入的值,如果是回车就开始滚动,否则继续读取键盘输入。
用while(getchar()!='\n'); 来实现,当输入的值不是回车就重复输入,输入回车的时候while循环结束,继续执行下面的程序。

10 滚动效果 随机选择一个数 显示随机数对应这个同学的电话号码,判断是否停止,如果否则擦除这个号码,重新选择随机数并显示。 rand( )函数
某个范围(a,b)内的随机数怎么表示? 显示随机数对应这个同学的电话号码,判断是否停止,如果否则擦除这个号码,重新选择随机数并显示。 putchar('/r'); 循环+选择

11 思路 再次按下回车键停止滚动 kbhit( )函数 能直接使用getchar( )函数吗?
执行getchar()函数和scanf()函数时程序都会停止运行来等待键盘的输入,必须要按下一个键程序才会继续往下。 kbhit( )函数 检测键盘是否有键按下。 如果有键按下,则返回对应键值;否则返回零。 使用while(!kbhit())来控制循环,如果按下了键while循环结束,然后使用c=getchar()来读取用户刚才按的这个键,判断是否回车。 如果是回车就直接在屏幕上输出中奖信息,否则用goto语句重新开始一个while循环。

12 程序片段 printf("Please press enter to start\n");  printf("And press enter again to stop\n");  srand(time(NULL));  while(getchar()!='\n');  lab1:  while(!kbhit()) {     putchar('\r');     i=rand()%50;    for(j=0;j<11;j++)    putchar(phone[i][j]);   }   c=getchar();   if(c!='\n') goto lab1;   else printf("Congratulations!\n");


Download ppt "C语言实验 第四课."

Similar presentations


Ads by Google