c语言中的各种数.docx

上传人:b****5 文档编号:6016112 上传时间:2023-01-03 格式:DOCX 页数:26 大小:52.66KB
下载 相关 举报
c语言中的各种数.docx_第1页
第1页 / 共26页
c语言中的各种数.docx_第2页
第2页 / 共26页
c语言中的各种数.docx_第3页
第3页 / 共26页
c语言中的各种数.docx_第4页
第4页 / 共26页
c语言中的各种数.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

c语言中的各种数.docx

《c语言中的各种数.docx》由会员分享,可在线阅读,更多相关《c语言中的各种数.docx(26页珍藏版)》请在冰豆网上搜索。

c语言中的各种数.docx

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(ik*/

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中的intatoi(char*str)将字符串函数转变为整数,通过函数返回;

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;

}

for(p=a;p

}Input8numbers:

78952125689

89895712562

 

结构体:

}

题目:

回答结果(结构体变量传递)

1.程序分析:

     

2.程序源代码:

#include"stdio.h"

structstudent

{

intx;

charc;

}a;

main()

{

a.x=3;

a.c='a';

f(a);

printf("%d,%c",a.x,a.c);

getch();

}

f(structstudentb)

{

b.x=20;

b.c='y';

}

3,a

#include

structstdud_tyde

{

charname[20];

longnum;

intage;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1