新聞中心
C語言編回文數(shù)
#include stdio.h
在寧國等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,寧國網(wǎng)站建設(shè)費用合理。
#include stdlib.h
int huiwen(char *str) /* 回文子函數(shù) */
{
int len=strlen(str);
int i=0;
for(i=0; ilen/2; i++) {
if(*(str+i) != *(str+len-1-i)) return 1;
}
return 0;
}
int main()
{
int i=0;
char str[5];
int hw6[10000] = {0};
int cnt=0;
int max=0;
printf("所有回文數(shù):\n");
for(i=9999; i=100; i--) {
memset(str, 0, 5);
sprintf(str, "%d", i);
if(huiwen(str) == 0) {
printf("%d\n", i); /* 這里把所有回文數(shù)打印出來 */
if(i % 6 == 0) {
hw6[cnt++] = i; /* 記錄下被6整除的回文數(shù) */
if(max == 0)
max = i; /* 最大被6整除的回文數(shù),只會被執(zhí)行一次 */
}
}
}
printf("能被6整除的回文數(shù):\n");
for(i=0; icnt; i++) {
printf("%d\n", hw6[i]);
}
printf("最大回文數(shù): %d\n",max);
}
請教一個用C語言函數(shù)求回文數(shù)問題?
#include stdio.h
#includestring.h
#define N 80
int fun(char *str)
{
char a[N],b[N];
int i=0,j=0;
while(*str)
a[i++]=*str++;
a[i]='\0';
while(i0)
b[j++]=a[--i];
b[j]='\0';
return (strcmp(a,b)==0);
}
main()
{
char s[N];
printf("enter a string:");gets(s);
printf("\n\n");puts(s);
if (fun(s)) printf("YES\n");
else
printf("NO\n");
}
程序2
#includestdio.h
#define END 15//求前15位的和
void main()
{
float sum=0,t=2;
int i=0;
while(i++END)
{
sum+=t;
t=1+1/t;
}
printf("%f\n",sum);
}
C語言問題 【函數(shù)與過程】回文素數(shù)
【題目】:
題目:如果一個數(shù)從左邊讀和從右邊讀都是同一個數(shù),就稱為回文數(shù)。例如6886就是一個回文數(shù),從給出的數(shù)據(jù)中統(tǒng)計出既是回文數(shù)又是素數(shù)的數(shù)(109)。
【思路分析】:
首先,你輸入的是整數(shù)(x),計算機(jī)不能像人腦一樣直接得到每個數(shù)位(數(shù)組a[10])。
所以,要先判斷數(shù)位(n),然后只要數(shù)位數(shù)組中a[i]=a[n-i]即可。
關(guān)于素數(shù),設(shè)置一個for循環(huán),只要從1到x都不存在能整除x的數(shù),就是素數(shù)了。
【代碼如下】:
#include stdio.h
#includewindows.h
int main()
{
int
a[1000];
int
n;//輸入整數(shù)的個數(shù)
printf("請輸入整數(shù)的個數(shù):\n");
scanf("%d",n);
int
i;
printf("請輸入這%d個整數(shù):\n",n);
for(i=0;in;i++)
scanf("%d",a[i]);
int
result_1;//值為1表示是回文數(shù),值為0表示不是。
int
result_2;//值為1表示是質(zhì)數(shù),值為0表示不是。
int
palindrome(int y);//判斷回文數(shù)的函數(shù)
int
prime(int y);//判斷質(zhì)數(shù)的函數(shù)
int
y;//y是要代入函數(shù)里的參數(shù)
int
num=0;//num用來計總共有幾個符合條件的數(shù)
int
b[1000];//b[1000]是符合要求的數(shù)組
for(i=0;in;i++)
{
result_1=0;//先使初值=0。
result_2=0;
y=a[i];
result_1=palindrome(y);
result_2=prime(y);
if((result_1==1)(result_2==1))
{
b[num]=a[i];
num++;
}
}
if(num0)
{
printf("總共有%d個既是回文數(shù)又是質(zhì)數(shù)的數(shù):\n",num);
for(i=0;inum;i++)
printf("
%d",b[i]);
printf("\n");
}
else
printf("輸入的整數(shù)均不符合要求\n");
system("pause");
return 0;
}
int palindrome(int y)
{
int
a[10];//a[10]表示y的各個數(shù)位的值
int
i=0;
while(y=1)
{
a[i]=y%10;//y%10就得到y(tǒng)的末位
y=y/10;//讓倒數(shù)第二位變成了末位
i++;//i最后又自加了一次,所以i就表示y有多少位
}
int
j;
int
z=1;
for(j=0;j=(i-1)/2;j++)
{
if(a[j]!=a[(i-1)-j])
{
z=0;
break;
}
else
continue;
}
return
(z);
}
int prime(int y)
{
int
i,z;
z=1;
for
(i=2;iy;i++)
{
if(y%i==0)
{
z=0;
break;
}
else
continue;
}
return(z);
}
【測試數(shù)據(jù)】:
n = 168
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271
277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397
401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521
523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647
653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787
797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929
937 941 947 953 967 971 977 983 991 997
【測試結(jié)果】:
請輸入整數(shù)的個數(shù):
168
請輸入這168個整數(shù):
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89 97 101 103 1
07 109 113 127 131 137 139 149 151 157 163
167 173 179 181 191 193 197 199 211 2
23 227 229 233 239 241 251 257 263 269 271
277 281 283 293 307 311 313 317 331 3
37 347 349 353 359 367 373 379 383 389 397
401 409 419 421 431 433 439 443 449 4
57 461 463 467 479 487 491 499 503 509 521
523 541 547 557 563 569 571 577 587 5
93 599 601 607 613 617 619 631 641 643 647
653 659 661 673 677 683 691 701 709 7
19 727 733 739 743 751 757 761 769 773 787
797 809 811 821 823 827 829 839 853 8
57 859 863 877 881 883 887 907 911 919 929
937 941 947 953 967 971 977 983 991 9
97
總共有20個既是回文數(shù)又是質(zhì)數(shù)的數(shù):
2 3
5 7 11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929
請按任意鍵繼續(xù). . .
C語言程序題函數(shù)判斷回文數(shù)
#include
#include
void main()
{
int year,month,day;
int flog;
scanf("%d,%d",year,month);
flog=1;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day=31;break;
case 4:
case 6:
case 9:
case 11:day=30;break;
case 2: if( (year%4==0 (year%100)!=0)||year%400==0)
printf("this is leap year\n");
else
printf("this is not leap year\n");
break;
default :flog=0;
}
if(flog)
printf("%d",day=28);
else
printf("%d",day=29);
getch();
c語言程序設(shè)計編求回文數(shù)的函數(shù)
#includestdio.h
int main(){
int m[16], n, i, t, count=0;
long unsigned a, k;
printf("No. ? ?number ? ? it's square(palindrome)\n");
for( n=1; n256; n++ ) ?/*窮舉n的取值范圍*/
{
k=0; t=1; a=n*n; ?/*計算n的平方*/
for( i=0; a!=0; i++ ) ?/*從低到高分解數(shù)a的每一位存于數(shù)組m[1]~m[16]*/
{
m[i] = a % 10;
a /= 10;
}
for(; i0; i--)
{
k += m[i-1] * t; ?/*t記錄某一位置對應(yīng)的權(quán)值 */
t *= 10;}
if(k == n*n)printf("%2d%10d%10d\n", ++count, n, n*n);
}
return 0;
}
擴(kuò)展資料:
C語言在編寫的時候需要說明的是:
1、一個C語言源程序可以由一個或多個源文件組成。
2、每個源文件可由一個或多個函數(shù)組成。
3、一個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。是整個程序的入口。
4、源程序中可以有預(yù)處理命令(包括include 命令,ifdef、ifndef命令、define命令),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5、每一個說明,每一個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。(結(jié)構(gòu)體、聯(lián)合體、枚舉型的聲明的“}”后要加“ ;”)。
6、標(biāo)識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
參考資料:
百度百科-回文數(shù)
C語言高手進(jìn) 這是一個判斷回文數(shù)的函數(shù) 我的問題是 1 .while(m)的字面意思 2.內(nèi)存中是怎么執(zhí)行while(m)語
while(m)是一個循環(huán)語句,字面的意思是判斷m的值是真還是假,如果m是非0值就是說m為真,就執(zhí)行while(m)下面{}中的內(nèi)容,如果m的值為0就是說m為假,就跳過while(m)下面{}中的內(nèi)容,執(zhí)行后面的語句例如題目中的if (sum == val)。
假如val的值為31,執(zhí)行m = val;m就為31,m為非0值所以執(zhí)行while(m)后面{}中的語句,大括號中最后句是m /= 10;所以執(zhí)行1次之后m就變成了3了,再將3帶入while(m)中,m還是非0值,所以還要執(zhí)行一次while(m)后面{}中的語句,之后m變成了0,將0帶入while(m)中,此時m為0,所以m為假退出while(m)循環(huán),執(zhí)行后面的if (sum == val)語句。
網(wǎng)站名稱:c語言中回文數(shù)的函數(shù)專題 C語言 回文數(shù)
網(wǎng)頁地址:http://ef60e0e.cn/article/docpeds.html