『壹』 編寫一個演算法利用順序棧判斷一個字元串是否是對稱串 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;
}