# include<stdio.h># include<math.h>intmain(){
int sign =1;double pi =0.0, term =1.0;int n =0;while(fabs(term)>=1e-6){
n++;
term =1.0/(2* n -1)*sign;
pi += term;
sign =-sign;}
pi *=4;printf("pi的近似值是%lf\n", pi);printf("循环体循环了%d次\n", n);return0;}
fabs(t)> = le- 8:
# include<stdio.h># include<math.h>intmain(){
int sign =1;double pi =0.0, term =1.0;int n =0;while(fabs(term)>=1e-8){
n++;
term =1.0/(2* n -1)*sign;
pi += term;
sign =-sign;}
pi *=4;printf("pi的近似值是%lf\n", pi);printf("循环体循环了%d次\n", n);return0;}
3.输人两个正整数m和n,求其最大公约数和最小公倍数
#include<stdio.h>intmain(){
int p, r, n, m, temp;printf("请输入两个正整数n,m:");scanf("%d%d,",&n,&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("它们的最大公约数为:%d\n", n);printf("它们的最小公倍数为:%d\n", p / n);return0;}
4.输人一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include<stdio.h>intmain(){
char c;//定义eng_char为英文字母的个数,初始值为0//定义space_char为空格字符的个数,初始值为0//定义digit_char为数字字符的个数,初始值为0//定义other_char为其他字符的个数,初始值为0int eng_char =0, space_char =0, digit_char =0, other_char =0;printf("请输入一行字符:");while((c =getchar())!='\n'){
if(c >='a'&& c <='z'|| c >='A'&& c <='Z'){
eng_char++;}elseif(c ==' '){
space_char++;}elseif(c >='0'&& c <='9'){
digit_char++;}else{
other_char++;}}printf("英文字母数量:%d\n空格数量:%d\n数字数量:%d\n其他字符数量:%d\n", eng_char, space_char, digit_char, other_char);return0;}
5.求
之值,其中a是一个数字,n表示a的位数,n由键盘输入。例如:
#include<stdio.h>#include<math.h>intmain(){
//n为a的个数int n;double a, prev_sum =0.0, total_sum =0.0;printf("请输入a的值以及n的值: ");scanf("%lf %d",&a,&n);//循环n次求总和for(int i =0; i < n; i++){
prev_sum += a *pow(10, i);
total_sum += prev_sum;}printf("总和为:%lf\n", total_sum);return0;}
#include<stdio.h>intmain(){
//a表示百位数字,b表示十位数字,c表示各位数字int a, b, c;for(int i =100; i <=999; i++){
a = i /100;
b =(i /10)%10;
c = i %10;if(a * a * a + b * b * b + c * c * c == i){
printf("%d\n", i);}}return0;}
#include<stdio.h>intmain(){
int data, fator, sum;/* data表示要判断的数,fator表示因子,sum表示因子之和*/for(data =2; data <=1000; data++){
//1是所有整数的因子,所以因子之和从1开始
sum =1;for(fator =2; fator <= data /2; fator++){
/* 判断data能否被fator整除,能的话fator即为因子 因子不包括自身 */if(data % fator ==0){
sum += fator;}}// 判断此数是否等于因子之和 */if(sum == data){
printf("%d its factors are 1, ", data);for(fator =2; fator <= data /2; fator++){
if(data % fator ==0){
printf("%d, ", fator);}}printf("\n");}}return0;}
10.有一个分数序列,求出这个数列的前20项之和。
#include<stdio.h>//定义循环次数#define COUNT 20intmain(){
//定义第一个分式的分子为a, 值为2; 定义分母为b,值为1//定义相加的和为sum,初始值为0double a =2, b =1, sum =0;double temp;for(int i =0; i < COUNT; i++){
sum += a / b;//记录前一项分子
temp = a;//前一项分子与分母之和为后一项分子
a = a + b;//前一项分子为后一项分母
b = temp;}printf("前%d项之和为:sum=%9.7f\n", COUNT, sum);return0;}