输入 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 的值,重复执行第一步。 2.程序源代码: #include
void main() { int i,x; printf("please input a number:\n"); scanf("%d",&;x); printf("%d=",x); for(i=2;i<=x;i++) while(x!=i)
{ if(x%i==0) { printf("%d*",i); x/=i; i=1; } i++;
} printf("%d\n",x); } 【程序 15】 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示,60-89 分之间的用 B 表示, 60 分以下的用 C 表示。 1.程序分析:(a>b)?a:b 这是条件运算符的基本例子。 2.程序源代码: #include void main() { int score; char grade; printf("please input a score\n "); scanf("%d",&;score); grade=score>=90?'A':(score>=60?'B':'C'); printf("%2c\n",grade); } 【程序 16】 题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 2.程序源代码: #include
main() { int a,b,num1,
num2,temp; printf("please input two numbers:\n"); scanf("%d,%d",&;num1,&;num2); if(num1 #include void 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("all in all:char=%d space=%d digit=%d others=%d\n",letters,space,digit,others); 【程序 18】 题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如 2+22+222+2222+22222(此时 共有 5 个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项