求一小断C语言程序

来源:百度知道 编辑:UC知道 时间:2024/07/14 03:31:52
定义两个变量a,b;需要用户手动输入a,b的值.
当a,b取1-60的正数值时,则输出a,b的值;
当取其它值,字符,字符串时则提示输入错误;
然后进入循环,重新输入a,b的值.

采纳后追加10分

楼上zongze01兄的程序有点小问题,如果输入
a=12ab
b=24cd
程序会结束,因为
ia = atoi(sa); //=12
ib = atoi(sb); //=24
为解决这个问题,应该先判断sa,sb的长度,再判断有没有非数字字符,程序如下(没有优化):

#include "stdio.h"
#include "stdlib.h"
void main()
{
char sa[1024],sb[1024];
int ia,ib;
int alen,blen;
int i;
while(1)
{
printf("input a:");
gets(sa);
printf("input b:");
gets(sb);

/*先判断sa,sb的长度*/
alen = strlen(sa);
blen = strlen(sb);
if(alen>2 || alen<=0 || blen > 2|| blen <= 0)
{
printf("input error!\n");
continue;
}

/*再判断有没有非数字的字符*/
for(i=0;i<alen;i++)
{
if(sa[i]>'9' || sa[i] < '0')
{
printf("input error!\n");
continue;
}
}

for(i=0;i<blen;i++)
{
if(sb[i]>'9' || sb[i] < '0')
{