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