北理工C语言3

2019-04-23 10:14

3-1. 编程,任意输入10个整数,按从小到大的顺序输出。 结果:

输入: 9、7、8、6、7、5,

输出: 5、6、7、7、8、9。 分析:用选择法排序。 main()/* sj1-3-1 */ {int j,k,e,t,a[10];

for(j=0;j<10;j++) scanf(\ for(j=0;j<9;j++) {t=j;

for(k=j+1;k<10;k++) if(a[t]>a[k]) t=k; e=a[t];a[t]=a[j];a[j]=e; } for(k=0;k<10;k++) printf(\ printf(\ }

3-2. 编程,任意输入10个人的成绩,按从大到小的顺序排列。运行程序时,只要输入名次,

计算机就能输出该名次对应的成绩。 结果:

输入: 4、7、3、6、1、5,12,0,23,-1 输入: 4

输出: The 4th is 6

分析:用选择法排序。第n名是a[n-1]。 main()/* sj1-3-2 */ {int j,k,e,t,n,a[10];

for(j=0;j<10;j++) scanf(\printf(“nput a number:\\n”); scanf(“%d”,&n); for(j=0;j<9;j++) {t=j;

for(k=j+1;k<10;k++) if(a[t]>a[k]) t=k; e=a[t];a[t]=a[j];a[j]=e; }

printf(“The %dth is %d\\n”,n,a[n-1]); for(k=0;k<10;k++) printf(\ printf(\ }

3-3. 编程,输入10个人的序号和成绩,对成绩从小到大排序,输出排序后的序号和成绩。 结果:

输入: 1,10 2,9 3,8 4,7 5,6 6,7 7,8 8,9 9,12 10,0

输出:10: 0

5: 6 4: 7 6: 7 3: 8 7: 8

2: 9 8: 9 1: 10 9: 12。

分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。 main()/* sj1-3-3 */

{int j,k,e,t,a[10][2];

for(j=0;j<10;j++) scanf(\ for(j=0;j<9;j++) {t=j;

for(k=j+1;k<10;k++) if(a[t][1]>a[k][1]) t=k; e=a[t][0];a[t][0]=a[j][0];a[j][0]=e; e=a[t][1];a[t][1]=a[j][1];a[j][1]=e;

}

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

printf(\ printf(\ }

3-4. 编程,输入10个人的序号和成绩,对成绩从从大到小进行排序,输出排序后的序号和

成绩。 结果:

输入: 1,10 2,9 3,8 4,7 5,6 6,7 7,8 8,9 9,12 10,0

输出:9: 12。

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

分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。 main()/* sj1-3-4 */

{int j,k,e,t,a[10][2];

for(j=0;j<10;j++) scanf(\ for(j=0;j<9;j++) {t=j;

for(k=j+1;k<10;k++) if(a[t][1]

}

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

printf(\ printf(\ }

3-5. 编程,输入10个整数及其序号,求出10个整数的最大值、次大值、最小值和次小值,

并输出它们原来输入时的序号。

结果:输入:1,15 2.11 3,0 4,7 5,1 6,5 7,7 8,40 9,2 10,23

输出:8: 40 10: 23 3: 0 5: 1

分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。交换时a[j][0]、a[j][1]一起交换。 main()/* sj1-3-5 */

{int j,k,e,t,a[10][2];

for(j=0;j<10;j++) scanf(\ for(j=0;j<9;j++) {t=j;

for(k=j+1;k<10;k++) if(a[t][1]

}

printf(\ printf(\ }

3-6. 编程,输入10个整数,然后进行查找。输入要查找的整数,若找到,则输出该数在数组

中的下标位置,否则输出“can not found!”。

结果:输入:12 23 43 21 56 7 9 4 33 67(a数组的内容) 56(要找的数) 输出:56=a[4]

65(要找的数) 输出:65 can not found!

分析:用数组存放10个整数,对10个整数循环,输出找到的整数及其在数组中的下标。 main()/* sj1-3-6 */ {int j,n,a[10];

for(j=0;j<10;j++) scanf(\printf(“nput a number:\\n”); scanf(“%d”,&n); for(j=0;j<10;j++)

if(n==a[j]) {printf(“%d=a[%d]\\n”,n,j);break;} if(j>=10) printf(“ %d can not found!\\n”,n);

} 3-7.编程,输入一个字符串并删除其中的指定字符。例如,对于字符串abcdcf,指定删除c,

则结果为:abdf。 结果:输入:abcdcf和c 输出:abdf

分析:输入一个字符串s和要删除的字符ch,从字符串首开始逐个字符检查,每遇ch则将

后面的字符向前移动一个位置覆盖要删字符ch. #include \#include \main()/* sj1-3-7 */ {int j,k;

char a[80],ch; gets(a);

printf(\ scanf(\ j=0;

while(a[j]!='\\0') {if(ch==a[j])

for(k=j;a[k]!='\\0';k++) a[k]=a[k+1]; j++; }

puts(a); }

3-8. 编程,输入一行字符,将其反序后再输出。 结果:输入abcdefg, 输出:gfedcba

分析:输入n个字符到a数组,a[j]与a[n-j-1]互换(j=0,1,2,…,n/2-1)。 #include \#include \main()/* sj1-3-8 */ {int j,k,n; char a[80],ch; gets(a); n=strlen(a);

for(j=0;j

a[j]=a[n-1-j]; a[n-1-j]=ch; }

puts(a); }

3-9. 编程,输入一行字符,将其中的每个字符从小到大排列后输出。 结果:输入:china 输出: achin 分析:用选择法对字符数组进行排序。 #include \#include \main()/* sj1-3-9 */

{int j,k,t,n; char a[80],e;

printf(\ n=strlen(a);

for(j=0;j

for(k=j+1;ka[k]) t=k; e=a[t];a[t]=a[j];a[j]=e; } printf(\ }

3-10. 编程,输入一行字符,将其中的每个字符从大到小排列后输出。 结果:输入:china 输出: nihca 分析:用选择法对字符数组进行排序。

#include \#include \main()/* sj1-3-10 */

{int j,k,t,n; char a[80],e;

printf(\ n=strlen(a);

for(j=0;j

for(k=j+1;k3-11. 编程,找出一个二维数组中的鞍点,即该位置上的元素是该行上的最大值,是该列上

的最小值。二维数组也可能没有鞍点。 结果:⑴ 输入 n=4,m=4 1 2 3 4 5 5 5 5 5 5 5 5

5 5 5 5

输出: 鞍点为a[0][3]=4。 (2)输入 n=4,m=4 5 5 5 5 5 5 5 5

5 5 5 5 0 3 2 1

输出: 鞍点为a[3][1]=3。

分析:找出i行最大值所在的列号k(i=0,1,…,n), 若a[i][k]是k列最小,则a[i][k]是

鞍点。也可能没有鞍点。 main()/* sj1-3-11 */

{ int i,j,l,n,m,k,a[20][20]; printf(\ scanf(\输入数组的行数n和列数m */ for(i=0;ia[i][k]) k=j; * 找出i行最大值所在的列号k */ for(l=0;l


北理工C语言3.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏维埃的兴亡

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

马上注册会员

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