一、/*输入一批考试分数,用-1作为结束标志,若输入大于100,则提示重新输入,并计算最高分,最低分,平均分*/
#include
int main()
{
int mark,n=0,sum=0,max=0,min=100;
float ave;
for(;;)
{
scanf("%d",&mark);
if(mark>100)
{
printf("Please reinput:\n");
continue;
}
if(mark==-1)
break;
n++;
sum+=mark;
if(mark>max)
max=mark;
if(mark min=mark; } ave=(float)sum/n; printf("max=%d,min=%d,ave=%.2f",max,min,ave); return 0; } 二、阶乘函数 #include int func(int n) { if(n==0||n==1) return 1; else return n*func(n-1); } int main() { int sum=0; int i=1; { for(i=1;i<=10;i++) sum+=func(i); printf("%d\n",sum); } return 0; } 三、 //逆序输出数组元素 #include #define N 100 void fun(int a[],int n)//函数参数,数组与数组的大小 { int i,temp;//定义整型变量i表示循环次数,temp为存储变量 for(i=0;i { temp=a[i];//将a[i]赋值给temp a[i]=a[n-i-1];//逆序 a[n-i-1]=temp;//temp赋值给a[n-i-1] } } int main() { int a[N],b[N],i,n;//定义一维数组为a[N],逆序存放以后的数组位b[N],输入数组的大小为n,循环次数i printf("input n:");//提示输入 scanf("%d",&n);//输入 for(i=0;i { scanf("%d",&a[i]);//输入 } for(i=0;i { fun(a,n);//函数的调用 for(i=0;i { b[i]=a[i];//将a[i]赋给b[i] printf("%6d",b[i]);//输出 } } printf("\n");//换行 return 0; } 四、 /*有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号*/ #include #define N 100 #define M 100 int main() { int a[N][M],n,m,i,j;//定义二维数组a[M][N]表示矩阵,n与m表示行与列,i与j表示循环次数 int max,x=0,y=0;//定义最大的元素为Max;x为行号初始化为0;y为列号初始化为0 printf("请输入矩阵的行数与列数:");//提示输入 scanf("%d%d",&n,&m);//输入行与列数 for(i=0;i { for(j=0;j { scanf("%d",&a[i][j]);//输入矩阵元素 } } max=a[0][0];//初始化max for(i=0;i { for(j=0;j { if(a[i][j]>max)//如果a[i][j]大于Max时 { max=a[i][j];//将a[i][j]赋值给Max x=i;//将i赋值给x y=j;//将j赋值给y } } } printf("请输入最大的元素为:%d,行号为:%d,列号为:%d\n",max,x,y);//输出 return 0; } 五、 //输出50到80之间不能被5整除的整数,并每五个一行 #include int main() { int i; for(i=50;i<=80;i++) { if(i%5==0) { printf("\n"); continue; } printf("%5d",i); } printf("\n"); return 0; } 六、 /*打印下述图案 问题描述 使用循环结构打印下述图形,打印行数n由用户输入。打印空格时使用"%s"格式,向printf函数传递只包含一个或多个空格的字符串" ",下同。 * * * * * * * * * * * * * * * * * * * * * * * * * #include int main() { int i,n,j; scanf("%d",&n); for(i=0;i { for(j=0;j=n-1-i;j++); printf(" "); for(j=0;j=2*i+1;j++) printf("*"); } return 0; } 七、 //完数:一个数恰好等于它的因子之和,找出1000以内的完数 #include int main() { int m,s,i; for(m=2;m<1000;m++) { s=0; for(i=1;i if((m%i)==0) s+=i; if(s==m) { printf("%d,its factors are",m); for(i=1;i if(m%i==0) printf("%d",i); printf("\n"); } } return 0; } 八、 /*用二分法求方程2x^3-4x^2+3x-6=0在给定区间的根。*/ #include #include int main() { float x0,x1,x2,fx0,fx1,fx2; do{ printf("enter x1 & x2:"); scanf("%f%f",&x1,&x2); fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6; }while(fx1*fx2>0); do{ x0=(x1+x2)/2; fx0=x0*((2*x0-4)*x0+3)-6; if((fx0*fx1)<0) { x2=x0; fx2=fx0; } else { x1=x0; fx1=fx0; } } while(fabs(fx0)>=1e-5); printf("x=%6.2f\n",x0); return 0; } 九、 //判断素数 /* #include int main() { int n,i; printf("n=?\n"); scanf("%d",&n); for(i=2;i if(n%i==0) break; if(i printf("%d is not\n",n); else printf("%d is\n",n); return 0; } */ #include #include int main() { int n,i,k; printf("n=?\n"); scanf("%d",&n); k=sqrt(n); for(i=2;i<=k;i++) if(n%i==0) break; if(i printf("%d is not\n",n); else printf("%d is\n",n); return 0; } 十、 //求该数列前20项的和:2/1,3/2,5/3,8/5,13/8...... #include int main() { int i,n=20; double s=0,a=2,b=1,t; for(i=1;i<=n;i++) { s+=a/b; t=a; a+=b; b=t; } printf("sum=%5.2f\n",s); return 0; }