C语言-数学基础问题
一.奇数、偶数问题
1.从键盘上输入一个整数,判断并输出它是奇数还是偶数。
//从键盘上输入一个整数,判断并输出它是奇数还是偶数。
main()
{
int i;
printf("输入一个整数:\n");
scanf("%d",&i);
if(i%2==0)
printf("它是偶数\n");
else
printf("它是奇数\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 2222
sum+=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);
}