1、从键盘输入碰到的一个问题:
错误:scanf("%ld\n",num);
描述:期望输入num数值后会输出计算后的结果,但是输入数值后无任何反应。
修改:scanf("%ld",num);问题解决
总结:写程序一定要细心,不要因习惯性笔误带来隐含的小问题。
2、break 和 continue
break语句可以使流程跳出switch结构,而且,break语句还可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。
continue的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。
两者区别:continue只结束本次循环,而不是终止整个循环,而break是结束整个循环过程,不再判断执行循环的条件是否成立。
eg:(1)for(i=1;i<9;i++)
{表达式1;
if(表达式2)break;
printf(".....");
}
如果表达式2成立,运行break语句,跳出整个for运行,后面的printf也不会显示。
(2)for(i=1;i<9;i++)
{表达式1;
if(表达式2)
{continue;
printf("........")} //1
printf(".....");//2
}
如果表达式2成立,运行continue语句,仅跳出当次循环,1处的输出不显示,当时2处的输出还是会显示。
3、对错误输入的简单处理
如果要求输入一个三位内的正数,为了简单判断错误输入后的重新输入,可采用如下简单语句:
while(num<=0||num>=1000)
{
printf("error input,please again...\n");
scanf("%d",&num);
}
4、scanf函数中的输入项如果是字符数组名,不要再加地址符&,因为在C语言中数组名代表该数组的起始地址。如:
char a[10];
scanf("%s",a); 正确
or for(int i=0;i<10;i++)
scanf("%c",&a[i]); 正确
scanf("%s",&a); 错误
5、
阅读(1055) | 评论(1) | 转发(0) |