给出n个正整数和一个正整数m,求出这n个正整数中是m的倍数的所有数的平均值。
输入: 输入包含若干组,每组包含三行,第一行为n(n<200),第二行为n个
正整数,第三行为正整数m。如果n为0表示输入结束。
输出: 对每组测试样例输出一行,这n个正整数中是m的倍数的所有数的平均值。
结果小数点后保留2位小数。如果没有满足条件的数,则输出-1
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define N 3
void main()
{
int i,j,k=0,n,*A,m;
float sum=0.0; //care
for(i=0;i<N;i++){
printf("输入整数个数:");
scanf("%d",&n);
if(n==0)
exit(0);
A=(int*)malloc(n*sizeof(int));
printf("输入n个整数: ");
for(j=0;j<n;j++){
scanf("%d",&A[j]);
}
printf("输入整数m: ");
scanf("%d",&m);
for(j=0;j<n;j++)
if(A[j]%m==0){
sum+=A[j];
k++;
}
if(sum==0)
printf("-1");
printf("%0.2f",sum/k);
}
}
给出平面上的三个点(点的坐标都是整数),求三点构成的三角形的周长
输入:
输入的第一行为N, 接下来包括N组测试数据,每组数据为3行,每行2个整数,
分别为该点的横坐标和纵坐标。
输出:
输出为N行,每行为得出的结果。最终结果小数点后保留两位。
#include<stdio.h>
#include<math.h>
typedef struct{
int x,y;
}Point;
void main()
{
int N,i,j;
double S1,S2,S3;
Point p[3];
scanf("%d",&N);
for(i=0;i<N;i++){
for(j=0;j<3;j++)
scanf("%d %d",&p[j].x,&p[j].y);
S1=sqrt((p[0].x-p[1].x)*(p[0].x-p[1].x)+(p[0].y-p[1].y)*(p[0].y-p
[1].y));
S2=sqrt((p[2].x-p[1].x)*(p[2].x-p[1].x)+(p[2].y-p[1].y)*(p[2].y-p[1].y));
S3=sqrt((p[0].x-p[2].x)*(p[0].x-p[2].x)+(p[0].y-p[2].y)*(p[0].y-p
[2].y));
printf("%0.2f",S1+S2+S3);
}
}
问题大意是给定一个正整数a(1<a<30000),能有多少种满足后面表达式的分解方法 a =
a1*a2*a3*...*an,
并且1<a1<=a2<=a3<=...<=an。注意a = a也是一种分解。
输入: 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a
输出: n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的因式分解的个数
#include<stdio.h>
#include<malloc.h>
int k=0;
int fun(int x)
{
int i;
printf("*****%d\n",x);
for(i=2;i<x;i++){
if(x%i==0)
break;
}
if(x==i)
return k;
k++;
x=x/i;
fun(x); //递归调用
return k;
}
void main()
{
int n,i,*A,*B;
sc