千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > c语言经典练习题100道(八)

c语言经典练习题100道(八)

来源:千锋教育
发布人:syq
时间: 2022-07-29 17:49:27 1659088167

  【程序36】 题目:求100之内的素数

c语言经典练习题

  1.程序分析:

  2.程序源代码:

#include "stdio.h"

#include "math.h"

#define N 101

main(){

  int i,j,line,a[N];

  for(i=2;i<N;i++) a[i]=i;

    for(i=2;i<sqrt(N);i++)

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

      {

        if(a[i]!=0&&a[j]!=0)

          if(a[j]%a[i]==0)

            a[j]=0;

      }

  printf("\n");

  for(i=2,line=0;i<N;i++)

  {

    if(a[i]!=0)

    {

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

      line++;

    }

    if(line==10)

    {

      printf("\n");

      line=0;

    }

  }

  getch();

}

  ——————————————————————————————————————

  【程序37】 题目:对10个数进行排序

  1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

  2.程序源代码:

#include "stdio.h"

#include "conio.h"

#define N 10

main(){

  int i,j,min,tem,a[N];

  /*input data*/

  printf("please input ten num:\n");

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

  {

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

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

  }

  printf("\n");

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

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

  printf("\n");

  /*sort ten num*/

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

  {

    min=i;

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

      if(a[min]>a[j])

        min=j;

    tem=a[i];

    a[i]=a[min];

    a[min]=tem;

  }

  /*output data*/

  printf("After sorted \n");

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

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

  getch();

}

  ——————————————————————————————————————

  【程序38】 题目:求一个3*3矩阵对角线元素之和

  1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

  2.程序源代码:

#include "stdio.h"

#include "conio.h"

/* 如果使用的是TC系列编译器则可能需要添加下句 */

static void dummyfloat(float *x){ float y; dummyfloat(&y);}

main(){

  float a[3][3],sum=0;

  int i,j;

  printf("please input rectangle element:\n");

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

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

      scanf("%f",&a[i][j]);

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

    sum=sum+a[i][i];

  printf("duijiaoxian he is %6.2f",sum);

  getch();

}

  ——————————————————————————————————————

  【程序39】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

  1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

  2.程序源代码:

#include "stdio.h"

#include "conio.h"

main(){

  int a[11]={1,4,6,9,13,16,19,28,40,100};

  int temp1,temp2,number,end,i,j;

  printf("original array is:\n");

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

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

  printf("\n");

  printf("insert a new number:");

  scanf("%d",&number);

  end=a[9];

  if(number>end)

    a[10]=number;

  else

  {

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

    {

      if(a[i]>number)

      {

        temp1=a[i];

        a[i]=number;

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

        {

          temp2=a[j];

          a[j]=temp1;

          temp1=temp2;

        }

        break;

      }

    }

  }

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

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

  getch();

}

  ——————————————————————————————————————

  【程序40】 题目:将一个数组逆序输出。

  1.程序分析:用第一个与最后一个交换。

  2.程序源代码:

#include "stdio.h"

#include "conio.h"

#define N 5

main(){

  int a[N]={9,6,5,4,1},i,temp;

  printf("\n original array:\n");

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

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

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

  {

    temp=a[i];

    a[i]=a[N-i-1];

    a[N-i-1]=temp;

  }

  printf("\n sorted array:\n");

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

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

  getch();

}

  更多关于物联网培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT