c语言中的各种数.docx
- 文档编号:6016112
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:26
- 大小:52.66KB
c语言中的各种数.docx
《c语言中的各种数.docx》由会员分享,可在线阅读,更多相关《c语言中的各种数.docx(26页珍藏版)》请在冰豆网上搜索。
c语言中的各种数
各种数
1完全平方数:
16=4*4
#include"math.h"
#include"stdio.h"
main()
{
longinti,x,y,z;
for(i=1;i<100000;i++)
{
x=sqrt(i+100);/*x为加上100后开方后的结果,且x,y已定义为整形数据*/
y=sqrt(i+268);/*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
getch();这里我不懂是什么东西,不要理会它
}
#include"math.h"
#include"stdio.h"
voidmain()
{
longinti,x,count=0;
printf("完全平方数:
");
for(i=1;i<10000;i++)
{
for(x=1;x<=sqrt(i);x++)
{
if(x*x==i)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
{
printf("\t%ld\t",i);
count++;
}
}
}
printf("\n完全平方数个数:
%ld\n",count);
}这里是正确的
相应的程序:
2
素数:
质数(primenumber)又称素数,有无限个。
一个大于1的自然数,如果除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数
#include"stdio.h"
#include"math.h"
#defineN101
main()
{
inti,j,line,a[N];
for(i=2;i for(i=2;i for(j=i+1;j { if(a[i]! =0&&a[j]! =0) if(a[j]%a[i]==0) a[j]=0; } printf("\n"); for(i=2,line=0;i { if(a[i]! =0) { printf("%5d",a[i]); line++; } if(line==10) { printf("\n"); line=0; } } getch(); } 法二: #include"stdio.h" #include voidmain() { intn,i,j,flag,count=0; printf("素数有: \t"); for(n=3;n<=100;n++) { flag=0;/*flag=0不能写在初定义处,要使flag完成一次大循环后重新变为0,否则之后的都会错*/ for(j=2;j<=sqrt(n);j++) { if(n%j==0) { flag=1;break; } } if(flag==0) { printf("%d\t",n); count++; if(count%8==0) printf("\n"); } } printf("素数的个数: %d\n",count); } 求素数和 #include #include intprime(intn) { intyes,i; yes=1; for(i=2;i<=sqrt(n);i++) if(n%i==0) { yes=0; break; } returnyes; } main() {intsum=0,i; for(i=2;i<=500;i++) if(prime(i)) sum+=i; printf("%d\n",sum); } 21536 3 水仙花数: 153=1*1*1+5*5*5+3*3*3 程序: #include"stdio.h" #include"conio.h" main() { inti,j,k,n; printf("'waterflower'numberis: "); for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%-5d",n); } getch(); } 'waterflower'numberis: 153370371407Pressanykeytocontinue 4: 打印出一个数的因数例如90=2*3*3*5 程序: #include"stdio.h" voidmain() { intn,i; printf("\npleaseinputanumber: \n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) while(n! =i) { if(n%i==0) { printf("%d*",i); n=n/i; } else break; } printf("%d",n); 这是一道经典而精炼的题! } pleaseinputanumber: 90 90=2*3*3*5Pressanykeytocontinue 5 完数: 一个数恰好等于其因数之和比如: 6=1+2+3 #include"stdio.h" #include"conio.h" main() { staticintk[10]; inti,j,n,s; for(j=2;j<1000;j++) { n=-1; s=j; for(i=1;i { if((j%i)==0) { n++; s=s-i;*判断是否是完数*/ k[n]=i;用数组存储因数 } } if(s==0) { printf("%disawanshu",j); for(i=0;i printf("%d,",k[i]); printf("%d\n",k[n]); } } getch(); } 6isawanshu1,2,3 28isawanshu1,2,4,7,14 496isawanshu1,2,4,8,16,31,62,124,248 6 题目: 一个5位数,判断它是不是回文数。 即12321是回文数,个位与万位相同,十位与千位相同。 程序: #include"stdio.h" #include voidmain() { inti,k,a[10]; longn,m; printf("pleaseinputanumber"); scanf("%d",&n); m=n; k=0; do { a[k]=m%10; k++;/*之前是a[k++]=m%10换成这样比较看得明白*/ m=m/10; }while(m! =0); k--; for(i=0;i { if(a[i]! =a[k]) break; } if(i printf("%disnotahuiwnenshu",n); else printf("%disahuiwenshu",n); } 最大公约数: (用递归调用求最大公约数) #include intf(intm,intn) { intg; if(n==0) g=m; else g=f(n,m%n); returng; } voidmain() { inta,b; scanf("%d%d",&a,&b); printf("%d\n",f(a,b)); } 1524 3 最小公倍数: #include intmaxgy(inta,intb); intf(inta,intb); intmaxgy(inta,intb) { intk; while((k=a%b)! =0) { a=b; b=k; } returnb; } intf(inta,intb) { intm,d; m=maxgy(a,b);/*调用最大公约数函数*/ d=a*b/m; returnd; } voidmain() { inta,b,c; scanf("%d%d",&a,&b); c=f(a,b); printf("最小公倍数是%d\n",c); } 1524 最小公倍数是120 Fibonacci数列;输出[100,10000]中最小的和最大的值 #include voidmain() { longF1=1,F2=1,F,n; doublek; while(F2<=100) { F=F1+F2; F1=F2; F2=F; if(F>=100) printf("%d\n",F); } F1=1,F2=1; while(F2<=10000) { F=F1+F2; F1=F2; F2=F; } printf("%d\n",F1); } 144 6765 Pressanykeytocontinue 字符串运算: 字符串处理函数: 1 复制函数: #include #include voidmain() { charstr1[10]={"program"},str2[6]={"C++"}; puts(str1); puts(str2); strcpy(str1,str2);/*字符串str2中的’\0’也被复制*/ printf("str1: "); puts(str1); printf("str2: "); puts(str2); } program C++ str1: C++ str2: C++ 2 连接字符串: #include #include voidmain() { charstr1[23]={"youareahomosexual"},str2[30]={"andyouarebeantiful! "}; printf("oldstr1: "); puts(str1); strcat(str1,str2); printf("newstr1: "); puts(str1); } oldstr1: youareahomosexual newstr1: youareahomosexualandyouarebeantiful! Pressanykeytocontinue 3字符串长度函数 #include #include voidmain() { charstr1[80]={"ufysy4847/67suhuy"}; printf("str1has%dcharacters\n",strlen(str1)); } str1has17characters Pressanykeytocontinue 4从键盘输入两个字符串,若不相等,将短的字符串连接到长的后面并输出;(比较字符串函数,长度比较函数,连接函数) #include #include voidmain() { charstr1[80],str2[80]; gets(str1); gets(str2); if(strcmp(str1,str2)! =0) if(strlen(str1)>strlen(str2)) { strcat(str1,str2); puts(str1); } else { strcat(str2,str1); puts(str2); } } hjsdiuw314598 bgy2161768 hjsdiuw314598bgy2161768 Pressanykeytocontinue 还有在#include Longatoi(char*str) Doubleatoi(char*str) 不用字符串函数求解相关问题 1 统计字符串长度: #include"stdio.h" voidmain() { intlen; char*str[20]; printf("pleaseinputastring: \n"); scanf("%s",str); len=length(str); printf("thestringhas%dcharacters.",len); getch(); } length(p) char*p; { intn; n=0; while(*p! ='\0') { n++; p++; } returnn; } pleaseinputastring: jaislbgbad41887818 thestringhas18characters. 2从键盘上输入一个字符串与一个个指定字符,将字符串中出现的指定字符删除。 #include"stdio.h" #include"string.h" intfun(char*s,charch) { inti,j; for(i=0,j=0;s[i];i++) if(s[i]! =ch) s[j++]=s[i]; s[j]=0; returns; } voidmain() { chars[80],*pstr=s,chdel; printf("请输入字符串: "); gets(pstr); printf("输入你想要删除的字符: "); scanf("%c",&chdel); fun(pstr,chdel); printf("之后变为: "); puts(pstr); getchar(); } 请输入字符串: sdiguya2511ahgs 输入你想要删除的字符: s 之后变为: diguya2511ahg Pressanykeytocontinue 3不用字符串函数比较大小 #include"stdio.h" #include"string.h" intcompstr(char,char);/*若写成intcompstr(str1[n],str[n])str1和str2未定义类型,还有居然里面还写个n,无语至极*/ voidmain() { charstr1[80],str2[80],n,flag; printf("请输入字符串str1和str2: \n"); gets(str1); gets(str2); for(n=0;str1[n]! ='\0'&&str2[n]! ='\0'&&flag==0;n++) flag=compstr(str1[n],str2[n]); printf("字符串大小比较\t"); if(flag==0) printf("str1=str2\n"); if(flag>0) printf("str1>str2\n"); else printf("str1 } intcompstr(charc1,charc2) { intt; t=c1-c2; returnt; } 请输入字符串str1和str2: jhfhlugfb fuwwivyt 字符串大小比较str1 Pressanykeytocontinue 3---------2 #include #include #defineN5/*字符串个数(题目要求10个,这里以5个为例,可以任意更改)*/ /*交换字符串内容*/ voidchange(chara[],charb[]) { chart[81]; strcpy(t,a); strcpy(a,b); strcpy(b,t); } //对多个(ln个,即ln行)字符串从小到大排序 voidstr_sort(charstr[][81],intln) { inti,j; for(i=0;i for(j=0;j if(strcmp(*(str+j),*(str+j+1))>0)change(*(str+j),*(str+j+1)); } voidmain() { inti; chars[N][81]; printf("请输入%d个字符串: \n",N); for(i=0;i gets(*(s+i));//输入字符串 str_sort(s,N);//调用函数str_sort()排序 printf("从小到大排序: \n"); for(i=0;i { printf("(%d)",i+1);//显示顺序号 puts(*(s+i));//排序后输出 } } 请输入5个字符串: jhsddgakj gdsukf ysgsg sygwghodf dygsdiug 从小到大排序: (1)dygsdiug (2)gdsukf (3)jhsddgakj (4)sygwghodf (5)ysgsg Pressanykeytocontinue 4 #include"stdio.h" intfun(char*p) { intflag=1; while(*p! ='\0') { if(*p=='') flag=1; if(*p>='a'&&*p<='z'&&flag==1) {*p-=32;flag=0;} p++; } return*p; } voidmain() { inti=0; charch,str[80]; printf("Inputstringendby.: \n"); while((ch=getchar())! ='.') str[i++]=ch; str[i++]='.'; str[i]='\0'; fun(str); puts(str); getchar(); } Inputstringendby.: javyhavyad. JavyHavYad. Pressanykeytocontinue (修改版)#include"stdio.h" intfun(char*p) { intflag=1; while(*p! ='\0') { if(*p=='') flag=1; if(*p>='a'&&*p<='z'&&flag==1)/*用flag很好,*/ { *p-=32;flag=0; } p++; } return*p; } voidmain() { inti=0; charch,str[80]; gets(str); fun(str); puts(str); getchar(); } 指针: /*1将最大一个数与第一个数交换,将最小的一个数与最后的一个数交换*/ #include voidmain() { inta[8],i,*p,max,min,t; max=min=0; p=a; printf("Input8numbers: "); for(i=0;i<8;i++)scanf("%d",&a[i]); for(i=1;i<8;i++) if(*(p+i)<*(p+min))min=i; if(min! =7) {t=*(p+7); *(p+7)=*(p+min); *(p+min)=t; } for(i=1;i<8;i++) if(*(p+i)>*(p+max))max=i; if(max! =0) {t=*(p+0); *(p+0)=*(p+max); *(p+max)=t; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 中的 各种