c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该

c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该,第1张

首先,输入一个字符肯定不够,一个字符串才行。

我们先用一个数组储存字符串,之后分别比较第i位与倒数第i位的值就可以知道是不是回文了。

代码如下:

#include<stdioh>

#include<stringh>

#define size 1000

int main(){

char m[size];

int i,l;

gets(m);

l = strlen(m);//计算长度 

printf("原字符串");

for(i = 0; i <= l/2;i++){

if(m[i] != m[-i]){

printf("不");//判断 

break;

}

}

printf("是回文。");

return 0;

}

“构造栈;构造队列; 使用栈

和队列进行判断”这个我也不是太懂。

我在网上看到过回文,使用了好多复杂的函数,我都还没学过。

不过我自己写了一个,你看看,原理很简单。

用了substr函数 for循环 getlin(提取一句话,遇回车终止)

是在C++里写的,不知道在C里能不能用。

<这里在C++的getline(cin,stringname函数有个bug(第一次从键盘getlin输入两个回车才能getlin,但是第二个回车会保存到下一次的getlin)所以循环getline时会出错> 我把循环去掉了。

//

//Palindrome Judgment program 回文判断程序 U6ex4 page235

//cin a sentence,cout its characters in reverse order

//and judgment whether the input line is a palindrome

//

#include<iostream>

#include<string>

using namespace std;

string sen;

string pal;//palindrome回文

int len,i,j;//len=length字符串的长度,i是for循环变量,j判断倒序与正序相同字符的个数

//如果它等于字符串总的长度,即为回文。

void main()

{

cout<<"please input a sentence\

";

getline(cin,sen);

cout<<"the reverse order is:\

";

len=senlength();

j=0; //倒序与正序相同字符的个数,赋初值0

for(i=0;i<len;i++)

{

pal=sensubstr(len-i-1,1);

cout<<pal;

if(pal==sensubstr(i,1))

j++;

}

if(j==len)

cout<<endl<<"this sentence IS a palindrome\

";

else

cout<<endl<<"this sentence is NOT a palindrome\

";

}

#include<stdioh>

int main(void){

int i = 0, s = 0;

int n;

printf("输入要判断的数");

scanf("%d", &n); 

int t = n;

    while(n > 0){

    s = 10; 

i = n % 10; 

s += i;

n -= i;

n /= 10;

}

if(n == t){

printf("%d是回文数", t);

}else{

printf("%d不是回文数", t);

}

    return 0;

}

上面代码值适合判断12345这种前后没有0的数字

0122330  12300 这样的无法判断

#include <stdioh>

#include <stringh>

void main(){

char s[100];

scanf("%s",s);

int num=strlen(s);

for(int i=0;i<num/2;i++){

if(s[i]!=s[num-1-i]){

printf("不是回文");

return;

}

}

printf("是回文数");

}

#include<stdio.h>

#include<string.h>

intmain()

chara[100]={0};

inti=0;

intlen=0;

printf("pleaseinputcharacterstring:\n");

gets(a);

len=strlen(a);//计算输入字符串的长度;

for(i=0;i<(len/2);i++)//只需要判断前一半(len/2)长度就好了

if(a[i]!=a[len-1-i])//判断是否为回文数;

printf("不是回文数\n");

return0;

printf("是回文数\n");

return0;

扩展资料:

printf用法:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=6789;

printf("a=%d\n",a);

输出结果为a=6789。

#include

int

symmetry()

{

char

ch1,ch2;

scanf("%c",&ch1);

if(ch1=='-')//递归结束条件。

return

1;

else

if(symmetry())//自己调用自己。

{

scanf("%c",&ch2);

if(ch1==ch2)

return

1;

else

return

0;

}

return

0;

}

void

main()

{

printf("输入一组字符(形式为W-M):\n");

if(symmetry())

printf("是回文字符\n");

else

printf("不是回文字符\n");

}

int huiwen(char s)

{

    char p = s;

    while(p) p++;//找到结束符\0的位置。

    p--;//\0的前一个字符,就是字符串的最后一个字符。

    while(s<p)

    {

        if(s != p) return 0;//发现不同,不是回文。

        s++;

        p--;//二者向中间移动。

    }

    return 1;//到相遇后一直相同,是回文。

}

int main()

{

    char s[100];

    scanf("%s",s);//输入字符串。

    if(huiwen(s))//判断是否回文并输出结果。

        printf("%s是回文字符串\n",s);

    else

        printf("%s不是回文字符串\n",s);

    return 0;        

}

//新加了a[4]='\0';

#include <stdioh>

void huiwen(char x[],int len)

{

char q=x,p;

len=strlen(x);

p=q+len-1;

for(;p>=q;p--,q++)

if(q!=p)

{

printf("Not");

return;

}

printf("Yes");

}

void main()

{

char a[5];

int i;

/ gets(a); /

/ puts(a); /

for(i=0;i<4;i++)

{

fflush(stdin);

a[i]=getchar();

}

a[4]='\0';//新加的新加的新加的新加的新加的

puts(a);

huiwen(a,5);

getchar();

}

以上就是关于c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该全部的内容,包括:c语言编写程序:输入一个字符,如果该字符为回文输出“回文”,若该、设计回文判断程序,对输入的字符串进行回文判断、编写程序,判断一字符串是否是回文。如果是则输出“该字符串是回文”若不是,则输出“该字符串不是回文”等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10088005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存