程序书海码农的世界我是程序员;您好程先生;叫我序员就好了

回望

2018-01-06  本文已影响23人  逍遥_9353

一、/*输入一批考试分数,用-1作为结束标志,若输入大于100,则提示重新输入,并计算最高分,最低分,平均分*/

#include<stdio.h>

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)

min=mark;

}

ave=(float)sum/n;

printf("max=%d,min=%d,ave=%.2f",max,min,ave);

return 0;

}

二、阶乘函数

#include<stdio.h>

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<stdio.h>

#define  N 100

void  fun(int  a[],int  n)//函数参数,数组与数组的大小

{

int  i,temp;//定义整型变量i表示循环次数,temp为存储变量

for(i=0;i<n/2;i++)//i从0开始,循环n次

{

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<n;i++)//i从0开始,循环n次

{

scanf("%d",&a[i]);//输入

}

for(i=0;i<n;i++)

fun(a,n);//函数的调用

    for(i=0;i<n;i++)//i从0开始,循环n次

{

b[i]=a[i];//将a[i]赋给b[i]

printf("%6d",b[i]);//输出

}

}

printf("\n");//换行

return 0;

}

四、 /*有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号*/

#include<stdio.h>

#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<m;i++)//双重for循环输出矩阵,i从0开始,循环m次

{

for(j=0;j<n;j++)//j从0开始,循环n次

{

scanf("%d",&a[i][j]);//输入矩阵元素

}

}

max=a[0][0];//初始化max

for(i=0;i<m;i++)//双重for循环求出矩阵中最大的元素,i从0开始,循环m次

{

for(j=0;j<m;j++)//j从0开始,循环n次

{

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<stdio.h>

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<stdio.h>

int  main()

{

int i,n,j;

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=0;j=n-1-i;j++);

printf(" ");

for(j=0;j=2*i+1;j++)

printf("*");

}

return  0;

}

七、 //完数:一个数恰好等于它的因子之和,找出1000以内的完数

#include<stdio.h>

int  main()

{

int m,s,i;

for(m=2;m<1000;m++)

{

s=0;

for(i=1;i<m;i++)

if((m%i)==0)

s+=i;

if(s==m)

{

printf("%d,its factors are",m);

for(i=1;i<m;i++)

if(m%i==0)

printf("%d",i);

printf("\n");

}

}

return 0;

}

八、 /*用二分法求方程2x^3-4x^2+3x-6=0在给定区间的根。*/

#include<stdio.h>

#include<math.h>

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<stdio.h>

int  main()

{

int n,i;

printf("n=?\n");

scanf("%d",&n);

for(i=2;i<n-1;i++)

if(n%i==0)

break;

if(i<n)

printf("%d is not\n",n);

else

printf("%d is\n",n);

return 0;

}

*/

#include<stdio.h>

#include<math.h>

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<k)

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<stdio.h>

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;

}

上一篇 下一篇

猜你喜欢

热点阅读