【发布时间】:2016-01-17 13:24:46
【问题描述】:
所以我编写了一个程序,它从用户那里获取一个 3 位数字并检查它是否是回文:
#include <stdio.h>
#include <stdlib.h>
int isPalindromic(char q, char w, char e);
int main()
{
int res;
char a,b,c;
printf("Give me a three digit number\n");
scanf("%c %c %c", &a, &b, &c);
res = isPalindromic(a,b,c);
if (res == 1)
printf("damn son that's palindromic how u do dat u a haker!!!\n");
else
printf("B O O O L O S E R\n");
system("pause");
return 0;
}
int isPalindromic(char q, char w, char e)
{
int result;
if (q == e)
result = 1;
else
result = 0;
return result;
}
由于懒惰,我想到了将每个数字作为字符而不是整数,然后 isPalindromic 函数将第一个数字与第三个数字进行比较。
它就像一个魅力,但它有任何弱点或某事吗? 我做错了什么吗?
【问题讨论】:
-
如果用户输入“zrz”怎么办?你认为这是一个回文的 3 位数字吗?如果不是,那么你的方法很糟糕。
-
是的,您应该检查用户是否真的输入了数值或任何
char。 -
查看
scanf()的返回。 -
@Magix & Haris 喜欢这样吗? if (a >= '0' && a = '0' && b = '0' && c
-
isdigit应该足以进行数字检查。
标签: c function if-statement palindrome