当前位置:首页 » 编程语言 » 判定左右对称c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

判定左右对称c语言

发布时间: 2023-05-21 00:57:08

‘壹’ 编写一个算法利用顺序栈判断一个字符串是否是对称串 c语言

#include<stdio.h>
#include<malloc.h>
#include"string.h"
#definestack_init_size100
#definestackincrement10
#defineoverflow0
#defineok1
#defineerror0


typedefstruct{
char*base;
char*top;
intstacksize;
}sqstack;

intinitstack(sqstack&sq)/*初使化堆栈*/
{
sq.base=(char*)malloc(stack_init_size*sizeof(char));
if(!sq.base)returnoverflow;
sq.top=sq.base;
sq.stacksize=stack_init_size;
returnok;
}

intpush(sqstack&sq,chare)/*压栈*/
{
if(sq.top-sq.base>sq.stacksize)
{
sq.base=(char*)realloc(sq.base,(sq.stacksize+stackincrement)*sizeof(char));
sq.top=sq.base+sq.stacksize;
sq.stacksize+=stackincrement;
}
*sq.top++=e;
}

intpop(sqstack&sq,char&e)/*出栈*/
{
if(sq.top==sq.base)returnerror;
e=*--sq.top;
returnok;
}

intmain()/*主程序压入1到100,然后再弹出*/
{
inti,length;
chare;
inta[100];
charstr[20]="abcdefedcba";
length=strlen(str);
sqstacksq;
initstack(sq);
for(i=0;i<length;i++){
push(sq,str[i]);
}
for(i=0;i<length;i++){
pop(sq,e);
if(e!=str[i]){
printf("ERROR ");
return0;
}
}
printf("CORRECTLY!");
return1;
}

‘贰’ 编程c语言程序,输入一个五位数,判断是否为对称说,如:12321,20202都是对称数

供参考……
#include "stdio.h"//
void main(void){
int nDec;
printf("请输入一个十进制五位整数...\nnDec=");
for(;;){
scanf("%d",&nDec);
if(nDec>9999 && nDec<100000) break;
printf("错了!请输入10000~99999间的整数...\nnDec=");
}
printf("%d",nDec);
if((nDec%10000)/1000!=(nDec%100)/10 || nDec/10000!=nDec%10) printf("不");
printf("是对称数!\n");
}

‘叁’ 用C语言编译:输入一个数,编译判断它是否为对称数(用for循环语句来做)

#include <stdio.h>

int main(void)
{
int i = 0, j;
int num, num1;
int buf[128];
int flag = 1;

printf("input a integer:");
scanf("%d", &num);
num1 = num;

while (num)
{
buf[i++] = num % 10;
num /= 10;
}

for (j = 0; j < i / 2; j++)
{
if (buf[j] != buf[i - 1 -j])
{
flag = 0;
break;
}
}

if (flag) printf("%d 是对称数\n", num1);
else printf("%d 不是对称数\n", num1);

return 0;
}

‘肆’ C语言问题!请高手解答!谢谢

你分析程序,首先看main函数,输入两个数字~
进差银入for循环,循环次数是你输入两个陆庆团数字的差~
进入一个判断就是90-120之前的i是否等于 rSum(i)的返回值~
那么看rSum函数:sum=0,进入while循环~
sum=sum*10+(j%10);(sum是0,%是代表的取余,就是除法里的余数,比较相近~)
那么就拿两个数来举例,90和99:
90:sum = 0 * 10 + (90 % 10)其早橘实还是0~j = j/10就剩下是90/10=9对吧,!=0成立~
再一次进入while循环~sum = 0 * 10 +(9% 10); 这时因为不够除,所以余数就是本身。所以sum=9~
j = j/10,因为不够除,所以它变成0,不满足while的条件,跳出while循环,return出9~90等于9吗~不等于,所以for循环的if不满足,进行下一轮,执行91~
99:sum = 0 * 10 + (99 % 10)得到sum = 9~j = j/10就剩下是99/10=9对吧,!=0成立~
再一次进入while循环~sum = 9 * 10 +(9% 10); 这时因为不够除,所以余数就是本身。所以sum=99~
j = j/10,因为不够除,所以它变成0,不满足while的条件,跳出while循环,return出99,那么这时候i也是99~所以条件成立,打印出99~

‘伍’ C语言判断一个整数是否为对称数

main()
{long int x,y,a,b,c=0,n;
int i;
scanf("%ld",&x);
y=0;
a=b=n=x;
while(n!=0)
{n=n/10;
y++;
}
y=y/2;
for(i=1;i<=y;i++)
a=a/10;
for(i=1;i<=y;i++)
{c=c*10+b%10;
b=b/10;
}
if (a==b) printf("yes\n") ;
else printf("NO\n");
}
思想就是将整数分成2半,后一半倒序,然后判断是否相等,例如52125 :前一半为52,后一半为25,倒序为52,与前一半相等,为对称数^_^

‘陆’ c语言,判断一个数是否为对称数哪里出错了

我运行了之后没有错阿,上面是我的运行结果

‘柒’ 检查一个4*4二维数组a是否对称的c语言代码

#include<stdio.h>
voidmain(){
inti,j,k=1,a[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++)
for(j=0;j<i;j++)
if(a[i][j]!=a[j][i])
{k=0;break;}
k?printf("对称"):printf("不亏雀对称");
}

运销胡早行示例做铅:

‘捌’ 用C语言编程实现判断输入的某个三位数是否是对称数

#include<stdio.h>
#include <string>
using namespace std;

void PanDuan()
{
int n;
printf("请输入一个三位孝尺数\n");
scanf("则空%3d",&n);
char num[3];
itoa(n,num,10);
if (num[0]==num[2])
printf("%s","对称");
else
printf("%s","不孙慎瞎对称");
}

void main()
{
PanDuan();
}

‘玖’ 用c语言从键盘输入一个字符串,判断字符串是否对称,若对称返回1,否则返回0

#include#include using namespace std;char fun(char str[20],char ch[20]){ int i,j=0; for(i=0;str[i]!='\0'&&ch[i]!='\0';i++) if(str[i]==ch[i])j++;//枝前我想让字符串1与字符串2作比较,然后相同时j就+1,这里貌似j从来不加.返回值永远都搜厅是0 if(j>=1)return 1; if(j>(str); printf("enter you want delete letter : "世搭隐); cin>>(ch); s=fun(str,ch); printf("%d",s);}

‘拾’ c语言 编写函数int fun(int n) 判断整数是否为左右对称数

int fun(int n)
{
int result = -1;
int t,s=0;
t=n;
while(t)
{
s=s*10+t%10;
t/=10;
}
if(s==n)
printf("是对称数\n");
else
printf("不是对称数\n");
return result;
}