题目描述
输入10个数,求它们的平均值,并输出大于平均值的数据的个数。
输入要求
10个数
输出要求
大于平均数的个数
假如输入
1 2 3 4 5 6 7 8 9 10
应当输出
5
#include <stdio.h>
int main() { double a[10],Ave=0; int i,res=0; for(i=0;i<10;i++) { scanf("%lf",&a[i]); Ave += a[i]; } Ave /= 10; for(i=0;i<10;i++) { if(a[i] > Ave) res ++; } printf("%d ",res);
return 0; } |
题目描述
输入两个正整数m和n(m<n),求m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
输入要求
m n
输出要求
素数和
假如输入
2 3
应当输出
5
#include <stdio.h> #include <math.h>
int isprime(int x) { int len = (int)sqrt((double)x); int i; for(i=2;i<=len;i++) { if(x%i == 0) return 0; } return 1; }
int main() { int m,n; int i; int sum = 0; scanf("%d%d",&m,&n); if(m==1) m = 2; for(i=m;i<=n;i++) { if(isprime(i)) sum += i; } printf("%d ",sum);
return 0; } |
题目描述
输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
输入要求
十个数
输出要求
交换后的十个数
假如输入
10 2 30 40 50 60 70 80 90 100
应当输出
10 100 30 40 50 60 70 80 90 2
#include <stdio.h> #include <math.h>
int MinIndex(int *a,int n) { int i,minInd = 0; for(i=1;i<n;i++) { if(fabs(a[minInd]) > fabs(a[i])) minInd = i; }
return minInd; }
int main() { int i,minInd; int a[10],tmp; for(i=0;i<10;i++) { scanf("%d",&a[i]); } minInd = MinIndex(a,10); tmp = a[minInd]; a[minInd] = a[9]; a[9] = tmp; for(i=0;i<10;i++) { if(i != 0) { putchar(' '); } printf("%d",a[i]); } putchar(' ');
return 0; } |
题目描述
输入一个正数x和一个正整数n,求下列算式的值。要求顶一个调用2个函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。
x - x2/2! + x3/3! + ... + (-1)n-1xn/n!
×输出保留4位小数。
输入要求
x n
输出要求
数列和
假如输入
2.0 3
应当输出
1.3333
#include <stdio.h> #include <math.h>
double fact(int n) { static double res = 1.0; res *= n;
return res; }
double mypow(double x,int n) { return pow(x,(double)n); }
int main() { double x,sum=0; int n; int i; scanf("%lf %d",&x,&n); for(i=1;i<=n;i++) { if(i%2 == 0) sum -= mypow(x,i)/fact(i); else sum += mypow(x,i)/fact(i); } printf("%.4lf ",sum);
return 0; } |
题目描述
输入x ,计算并输出下列分段函数 f(x) 的值。可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs() 和幂函数 pow()。
保留2位小数
输入要求
x
输出要求
f(x)
假如输入
5
应当输出
15.00
#include <stdio.h> #include <math.h>
int main() { double x,res; scanf("%lf",&x); if(x<0) res = fabs(x); else if(0<=x && x<2) res = sqrt(x+1); else if(2<=x && x<4) res = pow(x+2,5.0); else res = 2*x+5; printf("%.2lf ",res);
return 0; } |
题目描述
输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。要求定义和调用函数 ctof(c),将摄氏温度C转换成华氏温度F,计算公式:
F = 32 + C* 9/5。
例如
c=0->f=32
c=5->f=41
c=10->f=50
c=15->f=59
c=20->f=68
c=25->f=77
c=30->f=86
c=35->f=95
c=40->f=104
c=45->f=113
c=50->f=122
c=55->f=131
c=60->f=140
c=65->f=149
输入要求
输出要求
假如输入
#include<stdio.h>
double ctof(double c) { return 32+c*9.0/5.0; }
int main() { double c; for(c=-100;c<=150;c+=5) { printf("c=%.0lf->f=%.0lf ",c,ctof(c)); }
return 0; } |
题目描述
输入一个正整数n (1≤ n ≤6),再输入一个n 行n列的矩阵,找出该矩阵中绝对值最大的元素以及它的行下标和列下标。
输入要求
n
nxn
输出要求
数 行 列
假如输入
2
1 2
3 4
应当输出
4 2 2
#include<stdio.h>
int main() { int n,r,c,x; int max = 0; int maxR=0,maxC=0; scanf("%d",&n); for(r=0;r<n;r++) { for(c=0;c<n;c++) { scanf("%d",&x); if(max < x) { max = x; maxR = r; maxC = c; } } } printf("%d %d %d ",max,maxR+1,maxC+1);
return 0; } |
题目描述
编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
输入要求
输出要求
假如输入
88 71 68 70 59 81 91 42 66 77 83 0
应当输出
>=85:2
60-84:7
<60:2
#include<stdio.h>
int main() { int high=0,mid=0,low=0; int x; while(scanf("%d",&x), x>0) { if(x >= 85) high++; else if(x >= 60) mid++; else low++; } printf(">=85:%d 60-84:%d <60:%d ",high,mid,low);
return 0; } |
题目描述
解一元二次方程是初中数学必须掌握的一个重点。在不考虑虚数的情况下,一个一元二次方程的解有三种情况:有两个不同的解、有两个相同的解以及无解。
本题需要你通过编程来解一元二次方程ax2+bx+c=0的根。
输入要求
输入数据有若干行,每行包含一元二次方程的三个系数,依次为二次项系数、一次项系数以及常数。系数a为0输出出错信息(Error!),三个系数同时为0时输入结束,该组数据不做处理。
输出要求
当一元二次方程有两个不同的解时,先输出较大的解,再输出较小的解,如:
x1=2.000000
x2=1.000000
当一元二次方程有两个相同的解时,两个解一起输出,如:
x1=x2=1.000000
当一元二次方程无解时,输出”No solution!”(忽略双引号)。
结果保留6位小数。
假如输入
1 -2 1
3 2 1
2 3 1
0 2 1
0 0 0
应当输出
x1=x2=1.000000
No solution!
x1=-0.500000
x2=-1.000000
Error!
#include <stdio.h> #include <math.h> int main( ) { float a,b,c,x1,x2,t; scanf("%f%f%f",&a,&b,&c); while (!(a==0 && b==0 && c==0)) { if (a!=0) { if (b*b-4*a*c>=0) { t=sqrt(b*b-4*a*c); if (t>0) { x1=(-b+t)/(2*a); x2=(-b-t)/(2*a); printf("x1=%f ",x1); printf("x2=%f ",x2); } else printf("x1=x2=%f ",-b/2/a); } else printf("No solution! "); } else printf("Error! "); scanf("%f%f%f",&a,&b,&c); } return 0; } |
题目描述
编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
1+1/2+ .... +1/n!
输出保留5位小数。
输入要求
输出要求
假如输入
5
应当输出
sum=1.71667
#include <stdio.h>
double fact(int n) { static double res = 1.0; res *= n; return res; }
int main() { int n,i; double sum = 0; scanf("%d",&n); for(i=1;i<=n;i++) { sum += 1.0/fact(i); } printf("sum=%.5lf ",sum);
return 0; } |