程序设计(基础)

目录

程序一 :输入一浮点数,保留两位小数,对第三位四舍五入。

程序二:有一个函数 如下 写一个程序,输入x值,输出y的值。

程序三:判断某一年是否为闰年。(闰年指的是能被4整除,不能被100整除或能被400整除)

程序四:求三个数的最大值。

程序五:从键盘输入三个整数,输出较小的两个数之和。

程序六: 判断一个三位数是否为水仙花数。(各个位的立方和等于该数)

程序七: 将用户输入的字母进行大小写转换。

程序八:统计一个字符串大写字母,小写字母,数字字符,其他字符的个数。

程序九:求1-1/2+1/3-1/4+1/5-1/6+1/7-…

程序十:求n的阶乘。

程序十一:求1!+2!+3!+…+n!

程序十二:求1/1!+1/2!+1/3!+1/4!+…+1/n!

程序十三:求数列的前20项之和。数列为2/1、3/2、5/3、8/5、13/8…

程序十四:求出1000以内所有质数,并统计质数的个数。

程序十五:将大于整数m,且仅靠m的k个质数输出

程序十六:判断一个数是否为完数。

程序十七:输出1000之内的全部完数。(一个数如果等于它的真因子之和即为完数)

程序十六:判断一个数是几位数,并求出其后n-1(n>1)位数

程序十七:求a+aa+aaa+aaa…a之和(n个a)

程序十八:求出前40项的斐波那契数列。

程序十九:编写程序,实现公式求π的近似值直到发现某一项的绝对值小于指定阈值为止(该项不累加),指定阈值为10-6

程序二十:用户输入正偶数n,将其分解为两个素数之和。



程序一 :输入一浮点数,保留两位小数,对第三位四舍五入。

main()
{  int i;
   float n;
   scanf("%f",&n);
   i=n*100.0+0.5;
   n=i/100.0;
   printf("%f",n); 
  
   return 0;
}

程序二:有一个函数 如下 写一个程序,输入x值,输出y的值。

                                   x (x<0)

                             y=  2x-1 (0<=x<10)

                                   3x-11  (x>=10)
               

main()
{  
   float x,y;
   scanf("%f",&x);
   if(x<0) y=x;
   if(x>=0&&x<10) y=2*x-1;
   if(x>=10) y=3*x-11;
   
   printf("%f",y); 
  
   return 0;
}

程序三:判断某一年是否为闰年。(闰年指的是能被4整除,不能被100整除或能被400整除)

main()
{  
   int y;
   scanf("%d",&y);
   if(y%4==0&&y%100!=0||y%400==0)
     printf("yes");
   else
   printf("no");
   
   return 0;
}

程序四:求三个数的最大值。

main()
{  
   int a,b,c,t;
   printf("请输入三位数");
   scanf("%d%d%d",&a,&b,&c);
   if(a<b) 
   {
   	t=a;a=b;b=t;
   }
   if(a<c)
   {
   	t=a;a=c;c=t;
   }
   if(b<c)
   {
   	t=b;b=c;c=t;
   }
   printf("最大值是:%d ",a);
   
   return 0;
}

程序五:从键盘输入三个整数,输出较小的两个数之和。

main()
{  
   int a,b,c,t;
   printf("请输入三位数");
   scanf("%d%d%d",&a,&b,&c);
   if(a<b) 
   {
   	t=a;a=b;b=t;
   }
   if(a<c)
   {
   	t=a;a=c;c=t;
   }
   if(b<c)
   {
   	t=b;b=c;c=t;
   }
   printf("最小两位数是%d %d\n",b,c);
   printf("最小两位数的和是%d ",b+c);
   
   return 0;
}

程序六: 判断一个三位数是否为水仙花数。(各个位的立方和等于该数)

main()
{  
   int a,b,c,n;
   printf("请输入一个三位数");
   scanf("%d",&n);
   a=n/100;
   b=n/10%10;
   c=n%10;   
   if(a*a*a+b*b*b+c*c*c==n)
   { printf("是水仙花数%d\n",n);
     printf("%d=%d+%d+%d\n",n,a,b,c);
   	
   }
   else printf("不是水仙花数%d\n",n);
  
   return 0;
}

程序七: 将用户输入的字母进行大小写转换。

main()
{  
    int i;
    char ch[52];
    printf("输入字符");
    gets(ch);
    for(i=0;ch[i]!=0;i++)
     {
     	if(ch[i]>='a'&&ch[i]<='z') ch[i]-=32;
     	else if(ch[i]>='A'&&ch[i]<='Z') ch[i]+=32;
	 }
    for(i=0;ch[i]!=0;i++)
  	  printf("%c",ch[i]);
   return 0;
}

程序八:统计一个字符串大写字母,小写字母,数字字符,其他字符的个数。

main()
{  
    int i,capital_letter=0,small_letter=0,num=0,other=0;
    char ch[50];
    printf("请输入:"); 
    gets(ch);
    for(i=0;ch[i]!=0;i++)
    {
    	if(ch[i]>='1'&&ch[i]<='9') num++;
    	else if(ch[i]>='A'&&ch[i]<='Z') capital_letter++;
    	else if(ch[i]>='a'&&ch[i]<='z') small_letter++;
    	else other++;
	}
    printf("大写:%d\n小写:%d\n数字:%d\n其他:%d\n",capital_letter,small_letter,num,other);
   return 0;
}

程序九:求1-1/2+1/3-1/4+1/5-1/6+1/7-…

main()
{  
   int sign=-1;
   int n;
   float i,sum=0.0;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
     {
     	sign=-sign;
     	sum=sum+sign/i;
	 }
   printf("%f",sum);
}

程序十:求n的阶乘。

main()
{  
   int n,i,sum=1;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
      sum*=i;
   printf("%d",sum);
}

程序十一:求1!+2!+3!+…+n!

main()
{  
   int n,i,t=1,sum=0;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
     {
     	 t*=i;
     	 sum+=t;
	 }
   printf("%d",sum);
}

程序十二:求1/1!+1/2!+1/3!+1/4!+…+1/n!

main()
{  
   int n,i,t=1;
   double sum=0.0;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
     {
     	 t*=i;
     	 sum+=1.0/t;
	 }
   printf("%lf",sum);
}

程序十三:求数列的前20项之和。数列为2/1、3/2、5/3、8/5、13/8…

main()
{  
   int a=2,b=1,n,i,t;
   double sum=0.0;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
     {
     	sum=sum+1.0*a/b;
     	t=a;
		a=a+b;
		b=t;
      	
	 }
   printf("%lf",sum);
}

程序十四:求出1000以内所有质数,并统计质数的个数。

main()
{  int i,num=0,j,t=0;
   for(i=1;i<=1000;i++)
   {
   	for(j=2;j<i;j++)
    	if(i%j==0)break;
   	if(i==j)
	 {
	   printf("%5d",i);
	   num++;
	   t++;
	   if(t%15==0){t=0;printf("\n");}
	 }
   }
   printf("\n共有%d个素数",num);
}

程序十五:将大于整数m,且仅靠m的k个质数输出

例如m=17,k=5则应输出19,23,29,31,37。

main()
{  int i,j,m,k,s=0;
   scanf("%d%d",&m,&k);
   for(i=m+1; ;i++)
   {
   	for(j=2;j<i;j++)
       if(i%j==0)break;
   	if(i==j){printf(" %d",i);s++;}
    if(s==k)break;
   }
}

程序十六:判断一个数是否为完数。

main()
{  int i,j,m,k,s=0;
   scanf("%d",&k);
   for(i=1;i<k;i++)
    if(k%i==0)s+=i;
   if(s==k)
   {
   	printf("%d是完数\n",k);
   for(i=1;i<k;i++)
    if(k%i==0)printf(" %d",i);
   }
  
}

程序十七:输出1000之内的全部完数。(一个数如果等于它的真因子之和即为完数)

main()
{  int i,j,sum=0;
   for(i=1;i<=1000;i++)
   {
   	sum=0;
   	for(j=1;j<i;j++)
   	 if(i%j==0)sum+=j;
   	if(sum==i)
	   {
   		printf("\n%d是完数\n",i);
   	    for(j=1;j<i;j++)
   	     if(i%j==0)printf(" %d",j);
	   }
   }
}

程序十六:判断一个数是几位数,并求出其后n-1(n>1)位数

        例如若这个数为123,则应输出23。

main()
{  int a[10],i,n,j=0,s=0;
   scanf("%d",&n);
   while(n>0)
   {
   	 a[s]=n%10;
   	 n/=10;
   	 s++;
   }
   printf("%d位数\n",s);
   for(i=s-2;i>=0;i--)
    printf("%d",a[i]);
}
  

程序十七:求a+aa+aaa+aaa…a之和(n个a)

main()
{  int a,n,i,s=0,sum=0;
   scanf("%d%d",&a,&n);
   for(i=1;i<=n;i++)
    {
    	s=s*10+a;
    	sum+=s;
	}
	printf("%d",sum);
}

程序十八:求出前40项的斐波那契数列。

    Fib(n)=1                    n=1或n=2

    Fib(n-1)+Fib(n-2)      n>2

main()
{  int a=1,c=1,b=1,i,n;
   scanf("%d",&n);
   
   for(i=1;i<=n;i++)
   {  if(i>=3)
       {
       	c=a+b;
       	a=b;
       	b=c;
	   }
	printf(" %d",c);
   } 
}

程序十九:编写程序,实现公式求π的近似值直到发现某一项的绝对值小于指定阈值为止(该项不累加),指定阈值为10-6

main()
{  int n=1,sign=1;
   float t=1.0,sum=0.0;
   while(fabs(t)>=1e-6)
   {
   	sum+=t;
   	sign=-sign;
   	n+=2;
   	t=sign*1.0/n;
   }
   printf("%f",4*sum);
}

程序二十:用户输入正偶数n,将其分解为两个素数之和。

int prime(int n)
{
	int i;
	for(i=2;i<n;i++)
	 { 
	   if(n%i==0)return 0;
	 }
	 return 1;
}
main()
{  
  int n,i,sum;
  scanf("%d",&n);
  for(i=2;i<n/2;i++)
   if(prime(i)&&prime(n-i))printf("%d=%d+%d ",n,i,n-i);
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值