1. 用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止
void undergraduate_1(){
int flag = -1;
float i=1.0;
float pi=0,num=1.0;
while(fabs(num) > 1e-6)
{
pi += num;
i += 2;
num = 1/i;
num = flag * num;
flag = -flag;
}
pi = 4 * pi;
printf("%f",pi);
}
2.求Fibonacci数列前40个数0、1、1、2、3、5、8、13、2
void undergraduate_2(){
int i=0;
long f1=0,f2=1;
while(i<20)
{
printf("%12d%12d",f1,f2);
f1 = f1 + f2;
f2 = f1 + f2;
i++;
if(i%2 == 0) printf("\n");
}
}
3 删除字符串中的数字字符,以‘#’作为字符串的结束标志
void undergraduate_3(){
char str[200];
char ch;
int i=0,index=0;
gets(str);
while(str[i] !='#')
{
if(str[i] < '0' || str[i] > '9')
str[index ++] = str[i];
i++;
}
str[i] = '\0';
puts(str);
}
4.输出10000—20000之间个位数是7的素数个数,并将其中最大的素数返回。
void undergraduate_4(){
int i = 10001,max_shushu=0,shushu_no=0;
while(i < 20000)
{
if(i%10 == 7)
{
for(int j=2;j<sqrt(i);j++)
{
if(i%j == 0)
{
i += 2;
continue;
}
}
shushu_no++;
max_shushu = i;
}
i += 2;
}
printf("max_shushu = %d, shushu_no = %d",max_shushu,shushu_no);
}
5.统计输入英文字母的个数
void undergraduate_5(){
char str[200];
int len = 0,english_no = 0;
gets(str);
len = strlen(str);
for(int i=0;i<len;i++)
{
if((str[i] > 'a' -1 && str[i] < 'z' -1 ) || (str[i] > 'A' -1 && str[i] < 'Z' - 1) )
{
english_no ++;
}
}
printf("%4d",english_no);
}
6.矩阵主对角线元素平方之和
int undergraduate_6(int temp[3][3]){
int sum = 0;
for(int i=0;i<3;i++)
{
for(int j=0;j<=i;j++)
{
if(i == j)
{
sum += temp[i][j] * temp[i][j];
}
}
}
return sum;
}
int main()
{
int a[3][3];
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("%4d",undergraduate_6(a));
return 0;
}
7.字符串倒序
void undergraduate_7(){
char str[200],temp;
int len;
gets(str);
len = strlen(str);
for(int i=0;i<len/2;i++){
temp = str[i];
str[i] = str[len-i-1];
str[len-i-1] = temp;
}
str[len] = '\0';
puts(str);
}
8.将字符串中的字母变成其后的字母,其中z变成a , Z变成A
void undergraduate_8(){
char str[200],temp;
int len;
gets(str);
len = strlen(str);
for(int i=0;i<len;i++)
{
if((str[i] > 'a' -1 && str[i] < 'z') || (str[i] > 'A'-1 && str[i] < 'Z') )
{
str[i] += 1;
}
if(str[i] == 'z' || str[i] == 'Z')
{
str[i] -= 25;
}
}
str[len] = '\0';
puts(str);
}
9.非零整数的最大公约数
void undergraduate_9(){
int a,b,c;
scanf("%d %d",&a,&b);
c=a<b?a:b;
for(int i=c;i>1;i--)
{
if(a%i==0 && b%i == 0) break;
}
printf("%d",i);
}
10. 根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1))
void undergraduate_10(){
float chushu=1.0,bchushu=1.0,pi=1.0,temp;
int n=1;
while(true)
{
bchushu *= n;
chushu *= (2*n + 1);
temp = bchushu/chushu;
if(temp < 0.0006) break;
pi += temp;
n++;
}
pi *= 2;
printf("%d",pi);
}