C语言与用户交互的容错处理

计算机语言是计算机能够识别和接受的语言,要使计算机按自己的意图去运行或者工作,必须使用计算机所能接受,能理解和执行的指令指挥计算机工作。

大部分的低级语言能实现的的功能,C语言都能实现,最开始接触C语言觉得它会像VB那样使用,但慢慢的发现C语言的运算符和数据结构更加丰富,语法的限制不太严格,但正是这样也使得程序设计自由空间扩大,并且C语言生成的程序执行效率高。

C语言程序是由函数说明和函数体两部分组成,函数说明部分包括:函数名、函数类型、形参名、形参类型。函数体则是实现函数的具体操作,由语句构成。程序的运行总是从主函数main()开始运行的,语句的书写格式相对也是比较自由的,语句都是由分号结尾。

 题目:若输入内容为0到200之间的整数,则输出correctly input 并将输入的数以年龄之意输出,其余的输入数据皆输出 error

分析:根据题目,只有当输入的是整数,并且整数必须是在0到200之间,那么使用的时候除了键盘上键入0到200之间的数据,还会就有可能输入的数字、字符、字符串、或者数字加字符或字符串。 结合输入的各种情况 , 个人认为  选用字符型数组来接收用户输入的数据比较合适, 这样能保证输入的数据完整的接受 ,若各位前辈有更好的见解,乐闻其详哈......而输出结果无非是两种 正确与错误 ,因此可以考虑用if...else... 条件来判断输出结果

代码如下:

 

 

 1 char a[100];  //定义一个字符型数组
 2 
 3 while (1)  
 4 
 5 {#include <stdio.h>
 6 
 7 #include <string.h>
 8 
 9 #include <stdlib.h>
10 
11 int main()
12 
13 {  
14 
15 int i,j=0,k,m;  
16 
17  printf("please input:");  
18 
19 gets(a);  //接收输入的数据
20 
21 k=strlen(a);   //计算出输入字符数据的个数  
22 
23 for (i=0;a[i]!='\0';i++)    //用字符型数组方便判断数据结束的情况
24 
25 {   
26 
27   if (a[i]>'0'&&a[i]<='9')        
28 
29 j++;    //计算出输入的数据中,数字的个数
30 
31 }        
32 
33 if (k==j)     // 如果条件为真,则输入的数据中全部为数字
34 
35 {
36 
37            if (atoi(a)>0&&atoi(a)<200)           //继续判断输入的数字是否处于0到200之间
38 
39               {           
40 
41                  printf ("    correctly input , age:%s\n",a);           
42 
43               }          
44 
45           else printf("     error%s\n",a);           
46 
47 }        
48 
49 else printf ("      error%s\n",a);
50 
51   j=0;       //将上一次运行的数字个数清零,方便下一次使用
52 
53 }
54 
55         return 0;
56 
57 }
58 
59  
View Code

 

个人总结:

题目中有几层条件判断时,最好把逐个分清,就好像英语中的定语(定语对中心词起到修饰限定的作用)一样去理清是个什么样的数据,本题中是一个整型的数据,然后再去判断它是哪个范围内的整型数据,其次要注意程序的利用效率,我第一次写这个作业只能让其运行一次,当然写的时候也想过用递归调用加循环for语句来实现使用多次运行,但for的条件不能恰意表达,所以此题while跟loop是不错的选择。第一次写博客,还希望各位多多指教

posted on 2016-05-15 22:00  Andyhui  阅读(272)  评论(0)    收藏  举报