7月14日日志张蓉婷

1.  题目:通过编程实现,统计1~n有多少个9 (提示:n通过参数传入)

#include <stdio.h>

int main()

{

int n,b;

int a;

int i;

int sum = 0;

printf("please input n :\n");      

scanf("%d",&n);

for(i = 1; i <= n; i++)

{

a = i;

while(1)

{

b = a % 10;       

a = a/10;          

if(b==9)       

{

sum++;

}

if(a >= 0 && a <= 9)     

{

if(a == 9)

{

sum++;

}

break;

}

}

}

printf("%d\n",sum);

    return 0;

}

 2.题目:有n个人围成一圈,顺序排号,从第一个开始报数(13报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.(提示:用数组完成)

 #include<stdio.h> 

int main()

   int a[100];

   int i,n,p=0,q;

   printf("input number:");

    scanf("%d",&n);

     q=n;

   for(i=0;i<n;i++)

   a[i]=i+1;

   for(i=0;;i++)

 {

 if(i==n) i=0; 

 if(a[i]!=0) p++; 

 else continue;

 if(p%3==0 

  {a[i]=0;q--;} 

  if(q==1) break; 

 }

for(i=0;i<n;i++)

if(a[i]!=0)

printf("spare: %d\n\n",a[i]);

return 0;

}

3. 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来(提示:需要排数的数字通过参数传递进来)例如:输入:  -1  2.1  -3  5  7 输出: -3 -1 2.1 5 7

#include <stdio.h>

float  paixu(float b[])   

{

     int i,j,min;

     float t;

    int len=sizeof(b)/sizeof(b[0]);

    for ( i = 0; i <4; ++i)

{

       min=i;

       for (j = i+1;j<5 ; j++)

   {

           if(b[j]<b[min])

   {

               min=j;

   }

   }

       if (min!=i)

   {

          t=b[i];

       b[i]=b[min];

        b[min]=t;

   }

}

return 0;

}

int main()

{

int i;

float a[5];

printf("请输入五个数:\n");

for ( i = 0; i < 5; ++i)

{

scanf("%f",&a[i]);

}

paixu(a);

for(i=0;i<5;i++)

{

printf("%5.1f ",a[i]);

}

printf("\n");

return 0;

}

4. 题目:求100以内的素数,全部打印出来

#include<stdio.h>

#include<math.h>

 void main()

 {

 int m,k,i,n;

 for(m=1;m<101;m++)

 {

 k=sqrt(m);

 for(i=2;i<=k;i++)

 if(m%i==0)

 break;

 if(i>=k+1)

 {

 printf("%d ",m);

 n=n+1;

 }

 if(n%10==0)

 printf("\n");

 }

 

 printf("\n");

    

}

 

5. 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数

 #include <stdio.h>

void main()

{

int m,i,s;

for(m=1;m<=1000;m++)

{

s=0;

for(i=1;i<m;i++)  

if(m%i==0) 

s=s+i;

if(s==m) 

printf("%d\t",s);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值