前言:之前做算法复建时写的,写道比较拉,黑历史.....

具体题目信息在网站上,懒得拷贝了

https://www.dotcpp.com/oj/train/1002/

no1平均值计算

// no1-average.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <stdio.h>
int main()
{
   
    int a[9], sum = 0,b=0;
    for (int i = 0; i < 10; i++)

    {
        scanf("%d", &a[i]);
        sum += a[i];
    }
    float ave = sum / 10;
    for (int i = 0; i < 10; i++)
        if (a[i] > ave)
        {
            b++;
        }
    printf("%d", b);


}



no2计算素数和

#include<stdio.h>
#include<math.h>

bool isprime(int x)
{
	
	if (x<=3)
	{
		return x > 1;
	}
    if (x%6!=1&&x%6!=5)
	{
		return false;
	}

	for (int i = 5; i <=sqrt(x) ; i+=6)
	{
		if (x%i==0||x%(i+2)==0)
		{
			return false;
		}
	}
	return true;
}

int main(){
	int n, m,ans=0;
	scanf("%d%d",&m,&n);

	for (int i = m; i <=n; i++)
	{
		if (isprime(i))
			ans += i;
		
	}
	printf("%d",ans);
	return 0;
}

no3公约公倍

#include<stdio.h>
#pragma warning (disable: 4996)

int f(int min, int max)
{
	if (max%min==0)
	{
		return min;
	}
	else
	{
		f(max % min, min);
	}
}

int main()
{
	int m, n;
	int max, min;
	int a, b;
	scanf("%d%d", &m, &n);
	if (m>n)
	{
		max = m;
		min = n;
	}
	else
	{
		max = n;
		min = m;
	}
	a=f(min, max);
	b = max * min / a;
	printf("%d\n%d",a,b);

	return 0;
}

no4温度转换

#include<stdio.h>


int main()
{
	float a, b;
	scanf("%f", &a);
	b = 5 * (a - 32)/9;
	printf("%.2f",b);



	return 0;
}

no5分段函数

#include<stdio.h>


int main()
{
	float  x,y;
	scanf("%f", &x);
	if (x<1)
	{
		y = x;
	}
	else if (x<10)
	{
		y = 2 * x - 1;
	}
	else
	{
		y = 3 * x - 11;
	}
	printf("%.2f", y);
	return 0;
}

no6求偶数和

#include<stdio.h>

int main()
{
	int n, sum = 0,a;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &a);
		if (a%2==0)
		{
			sum += a;
		}

	}
	printf("%d", sum);
	return 0;

}

no7等差数列

#include<stdio.h>

int main()
{
	int n,sum;
	scanf("%d", &n);
	sum = (n * 2 + n * (n - 1) / 2 * 3);
	printf("%d", sum);

	return 0;
}

no8同因查找

#include<stdio.h>


int main()
{
	for (int i = 10; i <=1000 ; i++)
	{
		if (i % (2*3*7) == 0)
		{
			printf("%d\n", i);

		}
	}

	return 0;
}

no9计负均正

#include<stdio.h>

int main()
{
	int a[20], sum = 0, count = 0; double average = 0;
	for (int i = 0; i < 20; i++)
	{
		scanf("%d", &a[i]);
		if (a[i]<0)
		{
			 count++;
		}
		else
		{
			sum += a[i];

		}
	}
	average = (double)sum / (20-count);
	printf("%d \n%.2f", count, average);
}

no10公约公倍

#include<stdio.h>
#pragma warning (disable: 4996)

int f(int min, int max)
{
	if (max%min==0)
	{
		return min;
	}
	else
	{
		f(max % min, min);
	}
}

int main()
{
	int m, n;
	int max, min;
	int a, b;
	scanf("%d%d", &m, &n);
	if (m>n)
	{
		max = m;
		min = n;
	}
	else
	{
		max = n;
		min = m;
	}
	a=f(min, max);
	b = max * min / a;
	printf("%d\n%d",a,b);

	return 0;
}

no11统计字符

#include<stdio.h>

int main()
{
	char c;
	int letter = 0, num = 0, space = 0, other = 0;
	while ((c = getchar()) != '\n')
	{
		if (c >= 'a' && c <= 'x') 
		{
			letter++;
		}
		else if (c>='0'&&c<='9')
		{
			num++;
		}
		else if (c==' ')
		{
			space++;

		}
		else
		{
			other++;
		}
	}
	printf("%d\n%d\n%d\n%d", letter, space, num, other);
	return 0;
}

no12阶乘数列

#include<stdio.h>
int main()
{
	 int n;
	 scanf("%d",&n);


	 long int j=1, sum=0;
	for (int i = 1; i <= n; i++)
	{
		j = j * i;//j为前i-1个数的阶层 i阶层=(i-1)*i
		sum += j;
		
	}
	printf("%ld", sum);
	return 0;
}

no13最小绝对值

#include<stdio.h>
#include<math.h>

int main()
{
	int a[10],min,sign;
	scanf("%d",&a[0]);
	min = a[0];
	for (int i = 1; i < 10; i++)
	{
		scanf("%d", &a[i]);
		if (min>fabs(a[i]))
		{
			min = a[i];
			sign = i;
		}
		
	}
	a[sign] = a[9];
	a[9] = min;
	for (int i = 0; i < 10; i++)
	{
		printf("%d\t",a[i] );
	}
	

	return 0;
}

no14自定义函数

#include<stdio.h>


double mypow(double x, int n)
{
	double a = 1;
	for (int i = 0; i < n; i++)
	{
		a *= x;
	}
	return a;
}

double fact(int n)
{
	double a2 = 1;
	for (int i = 1; i <= n; i++)
	{
		a2 *= i;
	}
	return a2;

}


int main()
{
	double x;
	int n;
	double ans = 0;
	scanf("%lf%d", &x, &n);

	for (int i = 1; i <= n; i++)
	{
		ans += mypow(-1, i - 1) * mypow(x, i) / fact(i);
	}
	printf("%.4lf",ans );
	return 0;

}


no15分段函数

#include<stdio.h>
#include<math.h>

int main()
{
	double x,y;
	scanf("%lf",&x);
	if (x<0)
	{
		y = fabs(x);
	}
	else if (x<2)
	{
		y=pow((x + 1), 0.5);
	}
	else if (x<4)
	{
		y=pow((x+2),5);
	}
	else
	{
		y = 2 * x + 5;
	}
	printf("%.2lf", y);
	return 0;
}

no16温度转换

#include<stdio.h>



int ctof(int c)
{
	int a = (32 + (9 * c/5));
	return a;
}

int main()
{
	for (int i = -100; i <= 150; i+=5)
	{
		printf("c=%d->f=%d\n",i,ctof(i));
	}

	return 0;
}

no17寻找矩阵最值


#include <stdio.h>


int main()
{
	int n;
	scanf("%d", &n);
	int a[10][10];
	int max = 0;
	int x, y;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			scanf("%d", &a[i][j]);
			if (a[i][j]>max)
			{
				max = a[i][j];
				x = i;
				y = j;
			}
		}
	}
	printf("%d %d %d", max, x + 1, y + 1);
	return 0;
}

no18成绩归类

#include<stdio.h>

int main()
{
	int a=0, b=0, c=0;
	int n;
	do{
		scanf("%d",&n);
		
		if (0 < n && n < 60)
		{
			c++;
		}
		else if (0 < n && n<85)
		{
			b++;
		}
		else if (n>=85)
		{
			a++;

		}

	} while (n > 0);
	printf(">=85:%d\n",a);
	printf("60-84:%d\n",b);
	printf("<60:%d",c);



	return 0;
}

no19阶乘公式求职

#include<stdio.h>


double fact(int k)
{
	double j = 1;
	for (int i= 1; i<=k; i++)
	{
		j *= i; ////j为前i-1个数的阶层. i阶层=(i-1)*i
	}
	return j;
}

int main()
{
	int n;
	double sum = 0;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		sum+=(1.0 / fact(i));

	}
	printf("sum=%.5lf",sum);

	return 0;

}