全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

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

发布时间:2022-07-29 17:49:27
发布人:syq

  【程序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培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。

相关文章

OKR与自驱力的关系是什么?

OKR与自驱力的关系是什么?

2023-10-14
office是什么软件类型?

office是什么软件类型?

2023-10-14
Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取