C语言基础(5)

2019-07-13 18:44

//3573

#include int is(int n); int main(void){ intn,m; while(~scanf(\ inti,j; for(i=m;i<=n;i++) if(i==is(i)) printf(\ printf(\ } return 0; }

int is(int n) { int s=0,t; for(;n!=0;n=n/10){ t=n; s+=t*t*t; } return s; }

3577

Description

调用自定义后移函数move(int *a, int n, int m)来进行循环移位,对n(n<20)个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数,如下: n=10, m=3时:输入:1 2 3 4 5 6 7 8 9 10,输出:8 9 10 1 2 3 4 5 6 7

Input

输入多组测试数据,每组先输入n(n < 20)和m(m < n),再输入n个整数。

Output

输出循环移动m个数后的序列,数据间空格隔开。

Sample Input

10 4

1 2 3 4 5 6 7 8 9 10 7 2

1 2 3 4 5 6 7

Sample Output

7 8 9 10 1 2 3 4 5 6 6 7 1 2 3 4 5

Source

详情见代码,这题不难,就是要考虑好数组的重新赋值过程 #include

void move(int *a, int n, int m); int main(){ intn,m,i,a[20]; while(scanf(\ for(i=1;i<=n;i++) scanf(\ move(a,n,m); for(i=1;i

void move(int *a, int n, int m) { inti,j,c[20]; for(i=n-m+1,j=1;i<=n;i++,j++) c[j]=a[i];//将后m个数存到c数组中 for(j=m+1,i=1;j<=n;j++,i++) c[j]=a[i];//再将前n-m个元素存到c数组中,之后c就是要求的数组了 for(i=1;i<=n;i++)//c数组的值全部赋给a a[i]=c[i]; }

3584

Description

输入10个整数存储到数组a,再输入一个整数x,在数组a中查找x,若找到则输出相应的下标,否则显示\。要求定义和调用函数search(int list[], int n, int x),在数组list中查找元素x,若找到则返回相应下标,否则返回-1.

Input

多组测试数据,每组先输入10个整数,再输入一个x

Output

输出x在数组中的下标或\

Sample Input

1 2 3 4 5 6 7 8 9 10 5 1 2 3 4 5 6 7 8 9 10 20

Sample Output

4

Not found

Source

这道题目没什么好说的,就这样。 #include

int search(int a[], int n, int x);

//这边提一下,这个语句并不一定要放这个位置,只需要在第一次用到的地方之前就行 int main(void){ int a[10]i,t,x; while(~scanf(\ for(i=1;i<=9;i++) scanf(\

scanf(\ t=search(a,10,x); if(t==-1) printf(\ else printf(\ } return 0; }

int search(int a[], int n, int x) { int i; for(i=0;i

练习3586 3580 3579 3564 3568 3569

第五部分综合篇

如果你觉得,前面的题目都没问题了的话,就可以开始看下面的题目了。下面的题目总的来说,算C语言中不用算法的题目中比较难的题目了。

2473

Description

还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

Input

输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示将要输出的杨辉三角的层数。

Output

对应于每一个输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开,每一个杨辉三角后面加一个空行。

Sample Input

2 3

Sample Output

1 1 1 1 1 1 1 2 1

分析:杨辉三角的递推公式大家都知道,没什么好说的。 代码

#include #include int main(){ intn,a[31][31],i,j; memset(a,0,sizeof(a));//教给你一个函数,初始化数组a,使其每一个元素的值都为0,你可以不用,用for循环也可以 for(i=1;i<=30;i++) a[i][1]=1;//令第一列都为1 for(i=2;i<31;i++) for(j=2;j<31;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];//递推式每个数都是它上面的那个数和它左边的数的和 while(scanf(\ for(i=1;i<=n;i++){//i为行号,j为列号 for(j=1;j


C语言基础(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:国际经济学试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: