刁难人的题目(高手专题),如何避免用户输入的是字母时的程序崩溃
//如果按要求输入0到16数字,程序完全没问题,但是如果程序是给一般用户用,他们错误的输入字母时我们的程序就会崩溃,如何改进程序,使得输入的程序提醒用户输入错误,请重新输入#include "stdafx.h"
#include<ctype.h>
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,change[16]={0};
printf("如果输入的数据不够16个,请在输入最后一个数据后输入16\n");
for(i=0;i<16;i++)
{
printf("请输入change[%d]",i);
// if(change[i]>'a'&& change[i]<'z'||change[i]>'A'&& change[i]<'Z')
scanf(" %d",&change[i]);
if(change[i]>16||change[i]<0||change[i]>(int)'a'&& change[i]<(int)'z'||change[i]>(int)'A'&& change[i]<(int)'Z')
{
printf("输入的数据有误,请重新输入\n");
--i;
}
if(change[i]==16)
{
break;
}
}
for(n=0;n<i;n++)
{
printf("输入的数字为 %d\n",change[n]);
}
return 0;
}