c语言实验报告函数选作,C语言-实验报告

1、求一个数 10的阶乘。#include

int main() {

int i,sum=1;

for(i=1;i<=10;i++)sum*=i;

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

}

运行结果:3628800

2、选择排序(10个数从小到大)。#include

int main()

{

int i,j,iTemp,iPos,a[10]={23,4,5,6,3,7,1,8,19,56};

/*从低到高排序*/

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

{

iTemp = a[i]; /*设置当前元素为最小值*/

iPos = i; /*记录元素位置*/

/*当前元素跟后面其他元素进行比较,找出比当前元素还小的元素*/

for(j=i+1;j<10;j++)

{

/*如果当前元素比最小的值还小*/

if(a[j]

{

iTemp = a[j]; /*重新设置最小元素*/

iPos = j; /*记录元素位置*/

}

}

/*交换两个元素值*/

a[iPos] = a[i];

a[i] = iTemp;

}

/* 输出数组*/

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

{

printf("%d ",a[i]); /* 输出每一个元素*/

}

}

运行结果:1 3 4 5 6 7 8 19 23 56

3、选择排序(10个数从大到小)。#include

int main()

{

int i,j,iTemp,iPos,a[10]={23,4,5,6,3,7,1,8,19,56};

/*从低到高排序*/

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

{

iTemp = a[i]; /*设置当前元素为最大值*/

iPos = i; /*记录元素位置*/

/*当前元素跟后面其他元素进行比较,找出比当前元素还大的元素*/

for(j=i+1;j<10;j++)

{

/*如果当前元素比最大的值还大*/

if(a[j]>iTemp)

{

iTemp = a[j]; /*重新设置最大元素*/

iPos = j; /*记录元素位置*/

}

}

/*交换两个元素值*/

a[iPos] = a[i];

a[i] = iTemp;

}

/* 输出数组*/

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

{

printf("%d ",a[i]); /* 输出每一个元素*/

}

}

运行结果:56 23 19 8 7 6 5 4 3 1

4、求主次对角线元素之和。#include

int main() {

int a[3][3]={1,2,3,5,6,7,7,8,5},sumr=0,sumc=0,i;

for(i=0;i<3;i++){

sumr+=a[i][i];

sumc+=a[i][3-i];

}

printf("主对角线=%d,次对角线=%d\n",sumr,sumc);

}

运行结果:主对角线=12,次对角线=20

5、分段函数计算 (当x<1时,y=2x-1;当 1<=x<4时,y=x+2;当x>=4时,y=3x+6) 。#include

int main()

{

int x,y;

printf("x:");

scanf("%d",&x);

if(x<1)

{

y=2*x-1;

}else if(x>=1 && x<4)

{

y=x+2;

}

else if(x>=4)

{

y=3*x+6;

}

printf("y=%d\n",y);

}

输入的内容:5

运行结果:y=21

6、圆柱的体积计算(从键盘输入半径和高,输出体积)。#include

#define PI (3.14)

int main()

{

double r,h,v;

printf("r:");

scanf("%lf",&r);

printf("h:");

scanf("%lf",&h);

v=PI*r*r*h;

printf("v:%.2lf\n",v);

}

输入的内容:r:3

输入的内容:h:3

运行结果:v:84.78

7、求x的n次方(通过函数调用实现)。#include

long power_nth(int x,int n){

int i;

long sum=1;

for(i=1;i<=n;i++) sum=sum*x;

return sum;

}

int main()

{

int a,b;

long s;

printf("输入x,n\n");

scanf("%d,%d",&a,&b);

s=power_nth(a,b);

printf("%d^%d=%ld\n",a,b,s);

}

输入的内容:3,2

运行结果:3^2=9

8、将一个二维数组行列互换(同过两个数组实现)。#include

int main()

{

int a[3][4]={{1,3,4,5},{4,6,7,8},{3,0,7,4}}, b[4][3], i, j;

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

for (j = 0; j <4; j++)

b[j][i] = a[i][j];

printf("a:\n");

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

{

for (j = 0; j < 4; j++)

printf("%4d", a[i][j]);

printf("\n");

}

printf("b:\n");

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

{

for (j = 0; j <3; j++)

printf("%4d", b[i][j]);

printf("\n");

}

}运行结果:

a:

1 3 4 5

4 6 7 8

3 0 7 4

b:

1 4 3

3 6 0

4 7 7

5 8 4

9、判断从键盘输入的数是不是素数,如果是则输出“y"。#include

int main()

{

int i,y,s=1;

printf(" 随便输入一个整数:");

scanf("%d",&y);

for(i=2;i

{

if(y%i==0)

{

s=0;

break;

}

}

if(s)printf("y\n");

else printf("不是素数\n");

}

输入的内容:随便输入一个整数:7

运行结果:y

10、判断从键盘输入的字符串是不是回文。#include

#include

int main() {

char str[100];

int i,j;

printf("输入字符串:");

gets(str);

i=0;

j=strlen(str)-1;

while(i

i++;

j--;

}

if(i>=j)

printf("是回文\n");

else

printf("不是回文\n");

}

输入的内容:输入字符串:asbsa

运行结果:是回文

11、输出直角三角形*图案。#include

int main() {

int i,j,k;

for(i=1;i<=4;i++){

for(j=0;i>j;j++){

printf("#");

}

printf("\n");

}

}运行结果:

#

##

###

####

12、10个数求最大值。#include

int main() {

int a[10]={22,30,5,7,9,34,4,8,6,90},max=a[0];

int i;

for(i=0;i<10;i++){

if(a[i]>max) {

max=a[i];

}

}

printf("最大值:%d\n",max);

}

运行结果:最大值:90

13、将一个正整数逆序输出。#include

int main()

{

int num;

printf("输入一个正整数:");

scanf("%d",&num);

int a,i;

for(i = 0;num > 0;i++)

{

a = num % 10;

printf("%d",a);

num = num/10;

}

}

输入的内容:输入一个正整数:45678

运行结果:87654

14、编程输出斐波那契数列的前25项。#include

int main(){

long fib[25]={1,1};

int i;

for(i=2;i<=25;i++)

fib[i]=fib[i-1]+fib[i-2];

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

printf("第%d位数是 %ld\n",i+1,fib[i]);

}运行结果:

第1位数是 1

第2位数是 1

第3位数是 2

第4位数是 3

第5位数是 5

第6位数是 8

第7位数是 13

第8位数是 21

第9位数是 34

第10位数是 55

第11位数是 89

第12位数是 144

第13位数是 233

第14位数是 377

第15位数是 610

第16位数是 987

第17位数是 1597

第18位数是 2584

第19位数是 4181

第20位数是 6765

第21位数是 10946

第22位数是 17711

第23位数是 28657

第24位数是 46368

第25位数是 75025

本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: Jun 16, 2019 at 05:21 pm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值