C语言-数学基础问题
一.奇数、偶数问题
1.从键盘上输入一个整数,判断并输出它是奇数还是偶数。
//从键盘上输入一个整数,判断并输出它是奇数还是偶数。
main()
{int i;printf("输入一个整数:\n");scanf("%d",&i);if(i%2==0)printf("它是偶数\n");elseprintf("它是奇数\n");
}
2. 从键盘上输入10个整数,计算其中奇数的个数并输出。
#include <stdio.h>
main()
{int a[10],i,n=0;printf("输入10个整数:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(a[i]%2){printf("%4d",a[i]);n++;}printf("\n奇数个数=%d",n);
}
3.输出其中的偶数,2021年春考真题(见其他文章)
二.数列问题
1.对给定的m,编写一个函数求满足
1*2+2*(3+4)+3*(4+5+6)+………+n*((n+1)+(n+2)+………+(n+n))>=m的最小的n
2.编写一个函数 sum()计算
S=1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+n)
3.试编写一个函数sum( n ) 计算满足下式的最大m:1*2 + 2*3 + 3*4 + ... + (m-1)*m <= n
4.输入一个数字a和一个整数n,s=a+aa+aaa+aaa……a,最后一项为n个a。计算并输出s的值。
提示:当a=2,n=5时,s=2+22+222+2222+22222
#include <stdio.h>
main()
{int a,n,i; float y=0,sum=0.0;printf("a="); scanf("%d",&a);printf("N="); scanf("%d",&n);for(i=1;i<=n;i++) {y=y*10+a;//2 22 222 2222sum+=y;} printf("sum=%.0f",sum);
}
5.用下面的公式求π的近似值,直到最后一项的绝对值小于0.0001为止:
π/4≈1-1/3+1/5-1/7……
#include<stdio.h>
int main()
{double a=1,sum=0,pi;int f=1;for(a=1;a<=1e+4;a+=2){sum+=f*1.0/a;f=-f;}pi=sum*4.0;printf("pi=%10.5lf",pi);//此处'.5'表示小数点后保留四位小数;'10'表示宽度为10列return 0;
}
6.一个数列是:3/5、5/7、7/9、9/11……,求这个数列前20项的和
#include<stdio.h>
main()
{
int a=3,b=5,i=1;
float s=0;
for(i=1;i<=20;i++)
{s+=(float)a/b;a=b;b+=2;
}
printf("%f\n",s);
}