标签:程序 src png for getch etc .com char 输入
实验一:
输入两个正整数m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!
#include<stdio.h> int main() { int m,n,i; float sum=0,p; printf("请输入两个正整数m n,要求m<=n\n"); scanf("%d%d",&m,&n); while(m>n) { printf("输入错误,请重新输入。\n"); scanf("%d%d",&m,&n); } for(;m<=n;m++) { p=1; for(i=1;i<=m;i++) { p=p*i; } sum=sum+p; } printf("结果为%.0f",sum); return 0; }
实验二:
输出1000以内的所有完数。所谓完数是指这个数恰好等于除他本身外的所有因子之和。例,6的因子为1,2,3,6=1+2+3,所以6是完数。
#include<stdio.h> int main() { int i,m,sum; for(i=2;i<=1000;i++) { sum=0; for(m=1;m<i;m++) { if(i%m==0) { sum=sum+m; } } if(sum==i) { printf("%d ",i); } } return 0; }
实验三:
奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。 如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(共有14个步骤) 题目输入正整数n,求这个n多少步能归一 。
#include<stdio.h> int main() { int n,a; printf("请输入一个正整数。\n"); scanf("%d",&n); a=0; while(n<=0) { printf("输入错误,请重新输入。\n"); scanf("%d",&n); } while(n!=1) { if(n%2==0) { n=n/2; } else { n=n*3+1; } a++; } printf("共需要%d步。\n",a); }
附加题1:
输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,保留2位小数,该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
#include<stdio.h> int main() { int a,b; float sum=0,c=2,d=1,e,f; printf("输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和。\n"); scanf("%d",&a); while(a<=0) { printf("输入错误,请重新输入。\n"); scanf("%d",&a); } for(b=1;b<=a;b++) { sum=sum+c/d; e=d; /*分清楚是谁把值付给谁,不能写反*/ f=c; c=c+e; d=f; } printf("前n项之和为%.2f",sum); return 0; }
附加题2:
凯撒密码(caeser)的原理:每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。
#include<stdio.h> int main() { char ch; printf("请输入文本字符串,本程序将会对其加密。\n"); ch=getchar(); while(ch<‘a‘||ch>‘z‘||ch==‘\n‘) { printf("输入错误,请重新输入。\n"); getchar(); ch=getchar(); } while(ch!=‘\n‘) { if(ch<‘x‘&&ch>=‘a‘) { ch=ch+3; } else if(ch==‘x‘) { ch=‘a‘; }else if(ch==‘y‘) { ch=‘b‘; } else if(ch==‘z‘) { ch=‘c‘; } printf("%c",ch); ch=getchar(); } return 0; }
实验总结:1.大循环体镶嵌循环体中,注意变量的初始化。
2.进行变量复制时,搞清楚谁赋给谁。
3.适当使用清缓存函数fflush(stdin)。
标签:程序 src png for getch etc .com char 输入
原文地址:http://www.cnblogs.com/TX980502/p/6021280.html