我想在我的程序中添加双值验证。
例如:当用户输入字符串时,它会给出错误“请输入整数而不是字符串。”
我也想要“请输入一个整数而不是双精度值”。
我该如何应用这个?
/*
* HW3-3.c
*
* Created on: Oct 21, 2012
* Author: mert
*/
#include <string.h>
#include <stdio.h>
void checkTriangle(char *s1,char *s2,char *s3)
{
int i;
int found_letter = 0;
int len = strlen(s1);
int len2 = strlen(s2);
int len3 = strlen(s3);
for( i = 0; i < len; i++)
{
if(s1[i] < '0' || s1[i] > '9')
{
found_letter = 1; // this variable works as a boolean
break;
}
}
for( i = 0; i < len2; i++)
{
if(s2[i] < '0' || s2[i] > '9')
{
found_letter = 1; // this variable works as a boolean
break;
}
}
for( i = 0; i < len3; i++)
{
if(s3[i] < '0' || s3[i] > '9')
{
found_letter = 1; // this variable works as a boolean
break;
}
}
if(found_letter) // value 0 means false, any other value means true
printf("Please enter an integer instead of string.");
else
{
int side1 = atoi(s1);
int side2 = atoi(s2);
int side3 = atoi(s3);
if ((side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1) && (side1 > 0 && side2 > 0 && side3 > 0))
{
// Deciding type of triangle according to given input.
if (side1 == side2 && side2 == side3)
printf("EQUILATERAL TRIANGLE");
else if (side1 == side2 || side2 == side3 || side1 == side3)
printf("ISOSCELES TRIANGLE\n");
else
printf("SCALENE TRIANGLE \n");
}
else
printf("\nTriangle could not be formed.");
}
}
int main(void)
{
char s[32], s2[32], s3[32];
printf("Please enter sides of triangle");
printf("\nPlease enter side 1:");
gets(s);
printf("Please enter side 2:");
gets(s2);
printf("Please enter side 3:");
gets(s3);
checkTriangle(s,s2,s3);
}