#include <stdio.h>#include <string.h>main(){ char a[100] int i,j gets(a) i=0 j=strlen(a)-1 while(i<j) {if(a[i]==a[j]){i++j--} else break} if(i>=j) printf("YES.\n") else printf("NO.\n")}
编写程序,判断一字符串是否为回文,若是输出YES,若否输出NO
int fun(char*s1,char*s2)
{
char *p = NULL
char *p2 = NULL
for(p = s1,p2 = s2 + strlen(s2) - 1*p != *p2p++,p2--)
if(*p == '\0') return printf("YES")
else return printf("NO")
}
这就是C语言的呀,使用指针方便。
,用c语言编写程序,判断字符串是否是回文,是则yes,不是则no,空格也是回文,编出逗友或的程序能判断空格也是回文
---------------------------------------------------------------------------
#include <stdio.h>
int chk(const char *s)
{
unsigned int i=0,n=0
while (s[n])
++n
--n
while (i<n)
{
if (s[i]!=s[n]) {
return 0
}
i++
n--
}
return 1
}
int main(int argc, char* argv[])
{
char str[80]
gets(str)
printf(chk(str)?"YES":"NO")
return 0
}
---------------------------------------------------------------------------
c语言程序:输入一字符串,检查是否回文(回文是指正反序相同.如:Level).若是则输出yes,否则输出no.
#include <stdio.h>
#include <string.h>
int IsPalindromes(char *str)
int main()
{
char str[256]
/* 输入一个字符串 */
printf("please input a string:\n")
scanf("%s", str)
/* 调用函数IsPalindromes进行山伍分析 */
if (IsPalindromes(str)) {
printf("yes\n")
} else {
printf("no\n")
}
}
int IsPalindromes(char *str)
{
int i, j
printf("input is %s\n", str)
for (i=0, j=strlen(str) - 1(i!=j) &&(i+1!=j)i++, j--) {
if (str[i] != str[j]) {
return 0
}
}
return 1
}
按入字符串判断是否回文(如“a,b,a”),回文输出“yes”,否则输出“no”。请给个Java的语言告纤代码,谢
import java.util.Scanner
public class huiwen {
public static void main(String []a)
{
Scanner s=new Scanner(System.in)
String ss
System.out.println("请输入一段字符串")
char ab,b
boolean c=true
ss=s.next()
System.out.println(ss)
for(int i=0i<ss.length()/2i++)
{
ab=ss.charAt(i)
b=ss.charAt(ss.length()-i-1)
if (ab!=b)
{
c=false
break
}
}
if(c==true)
System.out.println("yes")
else
System.out.println("no")
}
}
好久没写过程序了……
编写程序,从键盘上接收一个字符串,判断其是否为回文
/*请输入字符串:1202112021:是.请输入字符串:11:是.请输入字符串:1212:不是.请输入字符串:12331233:不是.请输入字符串:1221122112211221:是.请输入字符串:^ZPressanykeytocontinue*/#include #include int main() {int s,i,flagchar a[100]while(printf("请输入字符串:"),scanf("%s",a) == 1) {s = strlen(a)flag = 1for(i = 0i <s/2 &&flagi++)if(a[i] != a[s - i - 1])flag = 0if(flag) printf("%s:是.\n",a)else printf("%s:不是.\n",a)fflush(stdin)}return 0}
读入一个字符串,判断它是否是回文
#include<stdio.h>
#include <string.h>
int main()
{
char str[100]
int i,len
printf("输入字符串:")
scanf("%s",str)
len = strlen(str)
for(i=0i<len/2i++)
{
if(str[i]!=str[len-i-1])
{
break
}
}
if(i==len/2)
{
printf("%s是回文\n",str)
}
else
{
printf("%s不是回文\n",str)
}
}
java 用String类编写 判断一个字符串是否是回文 简单一点
public static void main(String[] args) {
String text = "abb"
System.out.println(isHuiwen(text))
}
public static boolean isHuiwen(String text){
int length = text.length()
for(int i=0i<length/2i++){
if(text.charAt(i)!=text.charAt(length-i-1)){
return false
}
}
return true
}
即求语言!程序设计:输入一个字符串,判断是否是回文串,如aba是回文串,而abab不是回文串
#include<stdio.h>
#include<string.h>
int main()
{
char s[100]
int i,len
printf("请输入一个字符串:")
scanf("%s",s)
len=strlen(s)
for(i=0i<len/2i++)
if(s[i]!=s[len-i-1])
break
if(i==(len)/2)
printf("该字符串是回文字符串!\n")
else
printf("该字符串不是回文字符串!\n")
return 0
}
java编程,求程序 1. 判断一个字符串是否是一个回文字符串.回文字符串正序读和倒序读结果都相同.
一
import java.util.Scanner
public class TestP{
public static void main(String[] args){
Scanner sc=new Scanner(System.in)
System.out.println("请输入字符串")
String s=sc.next()
char[] ch=s.toCharArray()
for(int i=0i<ch.lengthi++){
if(i==ch.length-1){
System.out.println("是回文字符串")
}else if(ch[i]==ch[ch.length-i-1]){
continue
}else{
System.out.println("不是回文字符串")
break
}
}
}
}
【思路解析】所谓的回文字符串就是正着念和倒着念是一样的字符串,比如:ABA或ABBA都是回文字符串。判断回文字符串的办法就是成对比较,就是把字符串的第一个字符和倒数第一个字符比较,把第二个字符和倒数第二个比较……,以此类推。所以要写一个判断字符串是否回文的函数要先算出字符串S的字符数n,然镇宽桥后把S[0]和S[n-1-0]比较,S[1]和S[n-1-1]比较,S[2]和S[n-1-2]比较,……,直到把S[n/2]和S[n-1-n/2]比较,只要发现一个不同就可以判断不是回文,否则就是回文。这里要特别说明两点:一是为什么S[0]要和S[n-1]比较而不是S[n]比御猛较呢?因为数组的下标都是从0开始的,也就是说,有6个字符的字符串S,事实上是串下标是从S[0]-S[5],而不是S[6],所以每次比较n要减1。二是为什么最后一个比较是直到S[n/2],而不是到最后一个字符?这是因为字符串的前半段每个字符都是和后半段对应的字符相比较的,比较完了前半段也就比较完了后半面。根据上面这个思路,代码如下:
【程序代码】
#include <iostream> //控制台 *** 作头文件
#include <string.h> //字符串 *** 作头文件
bool Hw(char s[]) //检测是否回文的函数
{int i,n=strlen(s) //循环变量和字符串长度
if(n<=1) return false //空串或只有一个字符不算回文串
for(i=0i<n/2i++) //用循环逐个检测
if(s[i]!=s[n-1-i]) //如果对称位置的字符不一样
return false //结束函数并返回假
return true} //检测完还没发现不同就返回真
int main() //主函数
{int i //循环变量
char S[255] //用于存放字符串的数组
for() //弄一个无穷循环
{printf("请输入字符串(END结束):") //显示提示信息
scanf("%s",S) //从键盘输入字符串到S中
if(strcmp(S,"END")==0) break //如果输入END退出循环
if(Hw(S)) 巧梁//用自定义函数判断是否回文
printf("这是回文字符串\n\n") //显示判断结果
else printf("这不是回文字符串\n\n")}
printf("\n") //输完所有数再空一行
system("PAUSE") //暂停屏幕以便查看显示结果
return 0} //结束程序
【运行结果】
以上程序在DEV C++中运行通过,运行结果截图如下:
从上面来看,你是想将输入的a逆序放在b中,但有几个问题:1、你输入的a长度是不定的,但在计算a长度的时候用了i<=100,这里其实没必要限定,可以直接是for(i=0i++),嫌神或者更简单的是for(i=0a[i]!='\0'i++)
2、你判断回文用s来计数,但判断出了问题,按你的逻辑,s应该等于i才是回文if(s==i),即a和b每位都相等,这里棚者亮其实没必要去算s,if(s==i)其实可以改为if(m==i),即循环正常结束。
按你的逻辑修改如下:
#include<iostream>
using namespace std
int main() {
char a[100]
cout<<"请输入一个字符串:"<<endl
cin>>a
int i
for(i=0a[i]!='\0'i++)
char b[100]
int m,n
int s=0
for(m=0,n=i-1m<i&&n>=0m++,n--)
b[n]=a[m]
for(m=0m<im++) {
if(b[m]!=a[m])
break
}
if(m==i)
cout<<"该字符串是回文"<<endl
else
cout<<"该字符串不是回文"<<endl
system("pause")
return 0
}
其实这里仍有改动的地方,中间的b其链宽实是多余的,可以改为
#include<iostream>
using namespace std
int main() {
char a[100]
cout<<"请输入一个字符串:"<<endl
cin>>a
int i,m
for(i=0a[i]!='\0'i++)
for(m=0m<im++) {
if(a[m]!=a[i-m-1])
break
}
if(m==i)
cout<<"该字符串是回文"<<endl
else
cout<<"该字符串不是回文"<<endl
system("pause")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)