欢迎光临散文网 会员登陆 & 注册

C语言练习

2022-10-20 23:24 作者:沐笙--ms  | 我要投稿


[例6.11] 选择法排序:将键盘输入的10个数据从大到小排序。


#define  N  10

main()

{ int a[N],p,i,j,t;

printf("请输入%d个整数:\n",N);

for(i=0;i<N;i++)scanf("%d",&a[i]); /* 读入数据 */

for(i=0;i<N-1;i++)

{    p=i; /* 假定第i个数据最大,让p记录最大元素所在的位置 */

for(j=i+1;j<N;j++) /* 与剩余的数据进行比较 */

    if(a[p]<a[j]) /* 若发现它比数组中的某元素还小,即它不是最大的 */

p=j; /* 记录最大元素的位置 */


if(p!=i) /* 剩余数据中有比i处的数据大,交换i、p两处的数据 */

{  t=a[i];  a[i]=a[p];  a[p]=t;  }


}

printf("排序之后:");

for(i=0;i<N;i++) /* 输出排序之后的数据 */

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

printf("\n");

}

[例6.12] 气泡法排序:将给定的数据按从小到大排序。


气泡法排序的基本思想是将两个相邻的数据进行比较,把小的调放到前头。


#define  N  6

main()

{ int a[N],i,j,t;

printf("请输入%d个整数:\n",N);

for(i=0;i<N;i++) scanf("%d",&a[i]);

for(i=1;i<N;i++) /* 比较遍数:1~N-1 */

  for(j=0;j<N-i;j++) /* 下标变化:0~N-i-1 */

    if(a[j]>a[j+1])

{   t=a[j];  a[j]=a[j+1];  a[j+1]=t;  }

printf("排序后:");

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

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

printf("\n");

}

[例6.13] 顺序查找:从键盘上输入学生姓名,显示他的分数。


#include <string.h>

#define  COUNTS  5 /* 学生总数 */

main()

{ char student_name[COUNTS][20]={"zhanshan","lishi","wangwu","zhaoliu","tianqi"};

int student_score[COUNTS]={80,85,92,75,69};

int i,find;

char name[20];

printf("请输入要查找的学生姓名:");

gets(name);

for(i=find=0;i<COUNTS; i++)

if(strcmp(name,student_name[i])==0)

{ find=1;

break;

}

if(find)

printf("%s 的成绩为:%d分。\n",student_name[i],student_score[i]);

else

printf("系统没有 %s 同学的成绩。\n",name);

}

[例6.14] 折半查找:从键盘上输入一个数据,在一有序数据(如从小到大排列)中进行查找。


#defin N 8

main()

{ int a[N]={5,13,17,42,46,55,70,94};

int left,right,mid;

int x;

printf("请输入要查找的数据:");

scanf("%d",&x);

left=0;right=N-1;

while(left<=right)

{ mid=(left+right)/2;

if(a[mid]>x)right=mid-1;

else if(a[mid]<x)left=mid+1;

else break;

}

if(left<=right) printf("已找到,它的位置是%d。\n",mid);

else printf("未找到。\n");

}

[例8.1] 无参数宏的使用


#define  PI  3.14

main()

{ float r,s;

scanf("%f",&r);

s=PI*r*r;

printf("PI=%f,r=%f,s=%f\n",PI,r,s);

}

[例8.2] 多层次的宏


#define R 2.0

#define PI 3.14

#define S PI*R*R

main()

{

printf("S=%f\n",S);

}


C语言练习的评论 (共 条)

分享到微博请遵守国家法律