网站首页  学校简介  PHP培训  就业类培训  短期类培训  设计类培训  会计培训  电脑园地  证书说明  在线留言  上课地址  讨论区


    就业求职课程推荐
PHP开发工程师就业
ASP.net开发工程师
网页设计师就业班
平面设计师就业班
室内设计师就业班
专业排版师就业班

    计算机培训课程
LAMP开发工程师培 ASP开发工程师培训
DIV CSS网站布局培 平面设计师培训
电脑维修工程师培 计算机二级培训
飞腾排版师培训 华光排版师培训
商务办公师培训 室内设计师培训
网页设计师培训 PHP开发工程师培训
计算机一级培训 Linux网络工程培训
     
    您现在的位置: >> 中亚首页 >> 电脑园地 >> C语言经典题目题解之五  
     
 
C语言经典题目题解之五
来源:北京中亚学校  发表时间:2007年6月17日  共有人访问

【程序21】
一、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

二、程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
  重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

三、程序源代码

/* zheng int is divided yinshu*/
main()
{
int n,i;
printf("please input a number:\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);
 }

 

【程序22】
一、题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
    60分以下的用C表示。

二、程序分析:(a>b)?a:b这是条件运算符的基本例子。

三、程序源代码

main()
 { int score;
  char grade;
  printf("please input a score\n");
  scanf("%d",&score);
  grade=score>=90?'A':(score>=60?'B':'C');
  printf("%d belongs to %c",score,grade);
}

 

【程序23】
一、题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

二、程序分析:利用辗除法。

三、程序源代码

main()
{
int m,n,p,r,temp;
printf("please input two numbers:\n");
scanf("%d%d",&m,&n);
if(n<m)
  {
  temp=n;
  n=m;
  m=temp;
  }
p=n*m;
while(m!=0){
   r=n%m;
   n=m;
   m=r;
   }
printf("MAX yue shu:%d\n",n);
printf("MIN bei shu: %d \n",p/n);
}

 


【程序24】
一、题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

二、程序分析:利用while语句,条件为输入的字符不为'n'.

三、程序源代码

#include "stdio.h"
main()
  {
    char c;
    int letters=0,space=0,digit=0,others=0;
     printf("please input some characters:\n");
    while((c=getchar())!='\n')
     {
       if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))  letters++;
       else if(c==' ') space++;
       else if(c>='0'&&c<='9') digit++;
       else others++;
     }
     printf("char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);
 }

 


【程序25】
一、题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时
    共有5个数相加),几个数相加有键盘控制。

二、程序分析:关键是计算出每一项的值。

三、程序源代码

main()
   {
    int a,n,i=1;
    long int sn=0,tn=0;
   printf("please input a and n:\n");
    scanf("%d%d",&a,&n);
    while(i<=n)
       {
         tn+=a;
         sn+=tn;
         a*=10;
         ++i;
       }
printf("a+aa+...=%ld\n",sn);
 }


 

作者:北京中亚学校
标签:C语言
打印】 【关闭
 
     
中国总机电话实名:95001000转北京中亚学校 在线QQ:93946341 中亚电话:010-51692691 010-64178470 中亚邮箱:zhongya@vip.163.com
网络实名:北京PHP培训|北京电脑培训|北京中亚电脑学校|北京计算机学校|北京计算机培训学校|计算机培训
招聘信息 | 人才信息 | 就业指导 | 友情链接 | 证书查询 | 工具下载 | 网站建设
学校地址:北京市东城区东直门外东中街32号楼(东环广场路东侧)
电话:010-51692691 010-64178470 QQ:93946341
北京中亚学校版权©所有  京ICP备05011382号