當前位置:首頁 » 編程語言 » c語言各位數字左右相互對稱
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言各位數字左右相互對稱

發布時間: 2022-05-22 01:19:21

c語言原題 尋找並輸出11到999之間的迴文數.

#include<stdio.h>
void main()
{int i,j,k;int a[3],b[4];
for(i=11;i<1000;i++)
{j=0;b[j]=i;
while(b[j]!=0)
{a[j]=b[j]%10;j++;
b[j]=b[j-1]/10;}
if(a[0]=a[j-1])
printf("%d",i);
}

② c語言編程求解

大概的思路就是將傳入的數字n轉換為字元串,然後比較第一個字元與倒數第一個字元,第二個字元與倒數第二個字元... 是否相等,如果都相等則return 1;

i>=half表示上邊的for循環是正常退出,並不是中途跳出,即字元串左右兩側對稱相等。

不可以修改為下邊的那種寫法,他僅僅是比較了第一個與倒數第一個字元,不能保證完全對稱,他會認為12341也應該return 1。

③ c語言中把大寫字母像金字塔排列,一行中左右對稱,如ABCDCBA.請高手寫出程序

#include<stdio.h>
void main()
{
int a , n , i ;
char m ;
printf("請輸入一個整數(1~26):"); //輸入行數由你確定
scanf("%d", &n);
printf("\n");
for(i=1 ; i<=n ; i++)
{
m='A';
for(a=1;a<=n-i;a++)

printf(" ");

for(a=1 ; a<=2*i-1 ; a++)
{

if (a<i)
{
printf("%c",m);
m++;
}
else if (a==i)
{
printf("%c",m) ;
}
else if (a>i&&i>0)
{
m--;

printf("%c",m);
}

}
printf("\n");
}
}
是不是要這樣的

④ C語言編程:求迴文數的和 大神求解。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int fun(char *s) //判斷是否迴文
{
int i=0,n;
n=strlen(s);
n--;
while(n>i)
{
if(s[n]!=s[i])
return 0;
i++;
n--;
}
return 1;
}

int main()
{
int i,m,n,sum=0;
char a[10];
scanf("%d%d",&n,&m);
for(i=n;i<=m;i++)
{
itoa(i,a,10);
if(fun(a))
sum+=i;
}
if(sum!=0)
printf("%d\n",sum);
return 0;
}

⑤ c語言對稱數252程序怎麼設計

大致的思路是把這是數最低位變成最高位最高位變成最低位

就這樣變換

變形後的數字和原來的數相等就是對稱數了。

例子:判斷252是不是對稱數

#include<stdio.h>
intmain(void)
{
intn1=252;
intn=n1;
intan=0;
inti;
while(n){
i=n%10;
n=n-i;
n/=10;
an*=10;
an+=i;

}
if(an==n1){
printf("%d是對稱數字",n1);
}else{
printf("%d不是對稱數字",n1);
}
}


這個問題是演算法有點繞了。 了解這個問題的演算法 和程序的執行順序用的你大腦運行一遍這個程序你就會明白了。 這個方法對00012321 這樣的前面有0的數字組合不適用

⑥ 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,與前一半相等,為對稱數^_^

⑦ 尋找並輸出11~999之間的數m,它滿足m、m的平方、m的立方均為迴文數。怎麼用c語言編程

結果是下面三個數:
11 101 111

程序如下:

int svalue(long m){
int i,j,n[10],ok=1;
for (i=0;i<10;i++)n[i]=0;
i=0;
while(m>0) {n[i]=m%10; m/=10; i++;}
i--;
for(j=0;j<i/2;j++) if (n[j]!=n[i-j]) ok=0;
return ok;
}

main(){
long i;
for (i=11;i<=999;i++)
if(svalue(i) && svalue(i*i) && svalue(i*i*i))
printf("%d\t",i);
}

以上程序在TURBO-C 2.0上調試通過。

⑧ 解釋一下程序(C語言)

float countValue() /*標准答案*/
{float x0,x1=0.0;
while(1) //表示循環條件始終為真。
{x0=x1; // x1值賦給x0;
x1=cos(x0); //x0的餘弦值給x1
if(fabs(x0-x1)<1e-6) break; 這里fabs()是求絕對值函數,看x0-x1是否小0.000001,如果是,則執行break; 退出while循環。
}
return x1; //循環出來再執行這一步,返回x1值。
}
或者:
float countvalue()
{ double x0,x1;
x1=0.0;
do //這里只是用了do-while循環;
{ x0=x1;
x1=cos(x0); }
while(fabs(x0-x1)>=0.000001); //退出循環條件也是一樣。
return x1; }

===========================================

#include<stdio.h>

int jsValue(int a[10][9]) /*標准答案*/ //這個答案也有錯的時候 ,特別有些是多餘的,估計是其他類似題目,拿來修改一下。
{int I,j,k=0;
int hun,ten,data ,bb[100]; // 按答案,這里聲明一個數組bb[100];
for(I=100;I<=999;I++) //
{j=10;
while(j*j<=I)
{if (I==j*j)
{hun=I/100;data=I-hun*100; //這里hun是百位數字,data除去百位的兩位數 這里 data可以 I%100直接得到
ten=data/10;data=data-ten*10; //ten十位數字,data就個位了。個位可以 I%10 直接求得
if(hun==ten||hun==data||ten==data) //任意2個數字相等。
{bb[k]=I;k++;} //這里用到數組bb[],用來存放符合要求的數。題目只要求個數,bb[k]=I可以略去,k++累計個數。
}
j++;} }
return k; //返回 個數;
}

=================================
int jsValue(long n) /*標准答案*/
{int I,strl,half;
char xy[20];
ltoa(n,xy,10); //這里用到itoa() 應該是個自定函數 ,這里沒寫,我不知道幹嘛。。
strl=strlen(xy); // strl 數組長。
half=strl/2; //數組半長,
for(I=0;I<half;I++)
if(xy[I]!=xy[--strl]) break; //第i個和第 --strl是否相等。 本來strl是數組結束符,前一個就是數組最後一個元素
if(I>=half) return 1;
else return 0;
}
或者:
int jsvalue(long n)
{int i,aa[10],j=0,b=1;
while(n)
{ aa[j++]=n%10;
n=n/10; }
for(i=0;i<j/2;i++)
if(aa[i]!=aa[j-i-1])
b=0;
return b; }

⑨ 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;
}

⑩ C語言 程序輸出100到999之間所有能被三整除且左右對稱的數如303就是符合條件

您好,很高興回答。
#include<stdio. h
>
void main()
{int m,a,b;
for(m=100;m<1000;m++)
{a=m/100;
b=m%10;
if(a==b&&m%3==0 )
printf("%5d ",m);}
}