C语言上机实验思路分享4

2023-10-27

实验内容(方法和步骤):

1.输入 10 个整数,用选择法对这 10 个整数按从小到大的顺序排序并输出排序后的结

果。

程序代码:

#include <stdio.h>

int main()

{

   int a[10],i,j,t;

   printf("print 10 numbers");

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

  

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

   {

      for(j=0;j<9-i;j++)

      {

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

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

       }

   }

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

   {

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

   }

   return 0;

}

运行结果:

2.青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去

掉一个最高分和一个最低分)。

程序代码:

#include <stdio.h>

int main()

{

   int a[10],i,j,t,sum;

   printf("print 10 numbers");

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

  

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

   {

      for(j=0;j<9-i;j++)

      {

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

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

       }

   }

  

    for(i=1;i<9;i++)

   {

      sum=sum+a[i];

   }

   printf("%d",sum/8);

   return 0;

}

运行结果:

3.从键盘输入一整数,然后在一个整型一维数组 a[20]中,用折半查找法找出该数是数

组中第几个元素的值。如果该数不在数组中,则打印”No found”。

程序代码:

#include<stdio.h>

int Pos(int *a,int m,int n,int key)

{

    int i=(m+n)/2;

   if (key==a[i])return i;

   else if(m==n)return -1;

    if(key<=a[i])return Pos(a,m,i,key);

    else return Pos(a,i+1,n,key);

}

int main()

{

    int a[21];

    int i;

    int key;

    int res;

    for(i=1;i<=20;i++)

    {

        a[i]=i;

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

    }

    printf("print one number");

    scanf("%d",&key);

    res=Pos(a,1,20,key);

    if(res==-1)

        printf("No found");

    else printf("pos=%d\n",res);

    return 0;

}

运行结果:

4.为整型二维数组 b[3][4]输入 12 个数据,计算并输出数组中所有正数之和、所有负

数之和。

程序代码:

#include <stdio.h>

int main()

{

   int sumz=0,sumf=0,b[3][4],i,j;

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

   {

      for(j=0;j<4;++j)scanf("%d",&b[i][j]);

   }

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

   {

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

       {  

      if(b[i][j]<0)sumf+=b[i][j];

      else if(b[i][j]>0)sumz+=b[i][j];

       }

   }

   printf("the sum of fushu is%3d\nthe sum of zhengshu is%3d",sumf,sumz);

    return 0;

}

运行结果:

5.请找出二维数组 b[5][4]中的鞍点,鞍点指该位置上的元素值在该行中最大,且在该

列中最小。如果有鞍点,请输出其下标值;如果没有鞍点,请给出没有鞍点的提示信息。

程序代码:

#include <stdio.h>

#include <stdlib.h>

int main()

{

   int i, j, q, max, m, s, b[5][4];

   for (i=0, printf("Please enter b[5][4]:\n"); i<5; i++)

      for (j=0; j<4; scanf("%d", &b[i][j++]));

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

   {

      for (j=0, max=0; j<4; b[i][j]>max ? max=b[i][j], q=j++ : j++);  

      for (m=0, s=1; m<4; b[m][q]<max ? s=0, m++ : m++);             

      if (s){

         printf("%d is the point\n", b[i][q]);              

         break;

      }

   }

   if (!s) printf("There is no saddle point!\n");                   

   system("pause");

   return 0;

}

运行结果:

6.编程打印如下图形:

*

* *

* *

* *

*

程序代码:

#include <stdio.h>

int main()

{

   printf("    *  \n");

   printf("   *  *\n");

   printf("*     *\n");

   printf("   *  *\n");

   printf("    *  \n");

   return 0;

}

运行结果:

7.有一电文,已按下列规律译成译码:

A→Z a→z

B→Y b→y

C→X c→x

即第一个字母变成第 26 个字母,第 i 个字母变成第(26-i+1)个字母。非字母字符不

变。编写一个程序将密码译成原文,并输出密码和原文。

程序代码:

#include <stdio.h>

#include <string.h>

int main()

{

    char a[100],b[100];

    int len, i;

    printf("please input the key:\n");

    gets(a);

    strcpy(b, a);

    len = strlen(a);

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

    {

      if (a[i] >= 'a' && a[i] < 'z')

      {

        a[i] = 'a' + 'z' - a[i];

      }

      else if (a[i] >= 'A' && a[i] < 'Z')

      {

        a[i] = 'A' + 'Z' - a[i];

      }

      else;

    }

    printf("key:");puts(b);

    printf("real:");puts(a);

    return 0;

}

运行结果:

*8. (选做题)随机生成10个100内的正整数,用冒泡法排序后按从小到大顺序输出。

程序代码:

#include<stdio.h>

#include<stdlib.h>

int main()

{

   int a[10],i,j,t;

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

   a[i]=rand()%99+1;

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

   {

      for(j=0;j<9-i;j++)

      {

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

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

       }

   }

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

   {

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

   }

   return 0;

}

运行结果:

*9. (选做题)编写一个程序,将两个字符串连接,并输出连接后的结果。(要求:将

第二个字符串连入第一个字符串,不要用 strcat 函数)

程序代码:

#include <stdio.h>

#include <string>

#include <iostream>

using namespace std;

void compound(char str1[], char str2[]);

int main()

{

    char s1[20], s2[20];

    printf("Please enter string 1: ");

    cin>>s1;

    printf("Please enter string 2: ");

    cin>>s2;

    compound(s1, s2);

    cout<<s1<<endl;

    system("pause");

    return 0;

}

void compound(char str1[], char str2[])

{

    int i, j;

    for (i=0; str1[i]!='\0'; i++);

    for (j=0; str2[j]!='\0'; str1[i++]=str2[j++]);

    str1[i]='\0';

}

运行结果:

*10. (选做题)输出以下杨辉三角形(要求输出 10 行):

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

… … … … … … …

程序代码:

#include <stdio.h>

int main()

{

   int i,j;

   int b[11][11]={{0,0,0,0,0}};

   b[1][1]=1;b[2][1]=1;b[2][2]=1;

   printf("%d\n",b[1][1]);

   printf("%d %d\n",b[2][1],b[2][2]);

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

   {

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

      {

         b[i][j]=b[i-1][j-1]+b[i-1][j];

         printf("%d ",b[i][j]);

      }

      printf("\n");

   }

   return 0;

}

运行结果:

*11. (选做题)有一篇文章,共 3 行文字,每行 80 个字符。要求分别统计出英文大写

字母、小写字母、数字、空格,以及其他字符的个数。提示:可用二维字符数组(3 行 80

列)存放该文章。

程序代码:

#include <stdio.h>

#include <string>

int main()

{

   char b[3][80];

   int big,small,number,space,others;

   printf("please input the article with 3*80:\n");

    gets(b);

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

    {

       for(j=0;j<=80,j++)

       {

          if('a'<=b[i][j]&&b[i][j]<='z')small+=1;

          else if('A'<=b[i][j]&&b[i][j]<='Z')big+=1;

          else if('0'<=b[i][j]&&b[i][j]<='9')number+=1;

          else if(b[i][j]==20)number+=1;

          else others+=1;  

      }

   }

    print("big=%d\nsmall=%d\nnumber=%d\nspace=%d\nothers=%d\n" big,small,number,space,others);

   return 0;

}

运行结果:

*12. (选做题)输入一个正整数 n,输入 n 个数,生成一个 n*n 的矩阵,矩阵中第 1 行

是输入的 n 个数,以后每一行都是上一行循环左移一个元素。 输入/输出示例:

input n:5↙

input number:2 5 8 4 9↙

The matrix is:

2 5 8 4 9

5 8 4 9 2

8 4 9 2 5

4 9 2 5 8

9 2 5 8 4

程序代码:

#include<stdio.h>

int main()

{

  int i,j,k=0,n,a[100][100];

  scanf("%d",&n);

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

  for(i=1;i<n;i++)

  {

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

    {

      k++;

      a[i][j]=a[0][k%n];

    }

    k++;

  }

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

  {

    printf("\n");

    for(j=0;j<n;j++)printf("%d ",a[i][j]);

  }

  return 0;

}

运行结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言上机实验思路分享4 的相关文章

  • 在Windows下编译VLC并实现播放视频

    在Windows下编译VLC并实现播放视频 一 编译Win版的VLC真麻烦 二 获取VLC的SDK 1 下载VLC播放器 2 库文件 3 头文件 三 调用VLC实现播放视频 1 拷贝头文件和库文件 2 修改pro文件 3 封装播放器类VLC
  • 前端模块化!

    模块化 1 简介 模块化产生的背景 随着网站逐渐变成 互联网应用程序 嵌入网页的Javascript代码越来越庞大 越来越复杂 Javascript模块化编程 已经成为一个迫切的需求 理想情况下 开发者只需要实现核心的业务逻辑 其他都可以加
  • 基于微信小程序的电影院买票选座系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端工具 微信小程序工具 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • 借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题

    借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题 文章目录 借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题 问题出现Exception stack EspEx
  • eclipse中文注释缩进问题

    1 问题 中文注释的缩进有问题 英文注释没有问题 2 查看当前字体 3 修改字体 改为宋体或其他字体 就没有该问题了 也可以选择系统字体

随机推荐

  • 【Markdown】 实现上角标和下角标的两种方法(详细讲解!!!)

    作者 MiTu 本帖内容著作权归作者所有 转载请务必保留本文链接 Markdown实现上下角标的两种方法 第一种 使用Markdown自带的代码格式 下标 内容 例 H2O H 2 O 上标 内容 例 210 2 10 第二种 使用 HTM
  • 又发现一个好玩的 Pycharm 插件,通过AI自动生成代码块注释

    经常在开发代码块的过程中都需要写大量的注释来完成对代码块的说明 作为一名程序猿可能经常在抱怨别人开发的代码块没有注释或是注释不清楚 但我们自己又不想把大量的时间花费在代码块注释的编写上面 今天要说的这款插件是Mintlify Doc Wri
  • Go工程化 - 依赖注入

    在微服务框架kratos v2的默认项目模板中kratos layout使用了google wire进行依赖注入 也建议开发者在维护项目时使用该工具 wire 乍看起来比较违反直觉 导致很多同学不理解为什么要用或不清楚如何用 也包括曾经的我
  • 利用react基础编写案例---【求和】

    案例图 redux方法 代码 index js import React from react import ReactDOM from react dom import App from App ReactDOM render
  • [vue3+ts]方法一:使用vuex的mapState和mapGetters

    src下新建hooks useState js import computed from vue import mapState useStore from vuex mapper是存在state中的数据 export function u
  • UDP协议的详细解析

    UDP数据报 一 UDP的概述 User Datagram Protocol 用户数据报协议 UDP是传输层的协议 功能即为在IP的数据报服务之上增加了最基本的服务 复用和分用以及差错检测 UDP提供不可靠服务 具有TCP所没有的优势 UD
  • 关于java.lang.NullPointerException报错的原因和解决方法

    空指针异常 某个对象为null 对该对象的访问就会抛出空指针异常 解决 需找到该异常位置并在处理或调用对象的时候需要判断是否为null 如 Long echostr null String str echostr toString 当ech
  • R语言中将hello打印10次的两种方法

    我们有两种方法来做这件事情 1 for结构 for循环重复的执行一个语句 直到某个变量的值不再包含在序列seq中为止 语法 for var in seq statement 例如 gt for i in 1 10 print Hello 1
  • lumen ”Cannot declare class Event“ 错误解决方法

    在安装php event扩展的服务器上运行lumen框架是会报错 ErrorException Cannot declare class Event because the name is already in use 详细错误信息如下图所
  • Flink 报错:写入数据到流加载失败

    近年来 随着大数据技术的飞速发展 Apache Flink 成为了一个广泛应用的流式处理框架 然而 在使用 Flink 进行数据处理时 有时候我们可能会遇到一些错误和异常 其中一种常见的问题是 Writing records to stre
  • mfc 一些杂七杂八的东西

    cstring CString Left int nCount const 从左边1开始获取前 nCount 个字符 CString Mid int nFirst const 从左边第 nCount 1 个字符开始 获取后面所有的字符 CS
  • Qt多个ui界面,如何建立联系

    https blog csdn net qq 41399894 article details 87460230 一 最简单的方法 无非就是你建了多个ui界面 然后你只需要new它 获得它的地址信息 就可以建立联系了 如下 在MainWin
  • 酒浓码浓 - React事件阻止浏览器默认行为/冒泡

    React事件行为 React中无法用return false去阻止事件的默认响应行为 必须用 event preventDefault 阻止浏览器默认行为 例如标签不跳转 注 IE不认 在IE下需要用window event return
  • java的图片背景透明及透明度处理

    如题 以下为通过java实现的针对图片的背景透明及透明度处理 供大家需要时参考 设置源图片为背景透明 并设置透明度 param srcFile 源图片 param desFile 目标文件 param alpha 透明度 param for
  • activex控件 InvokeHelper

    当你调用关于activex控件中的相关方法时 你要导入此控件到程序中 此时就会在工程中生成一个关于此控件调用的一个伪调用类 其中的cpp中调用每 个方法都是通过InvokeHelper调用其中的dwDispID值来定位方法的地址的 因此 可
  • exports is not defined

    若是babel 6 可以看这位同仁的文章 https www cnblogs com vickya p 8645061 html 若是babel 7 设置 https www babeljs cn docs babel preset env
  • 【Python】文件操作 r+ 的问题

    问题背景 想用 python 实现文件的读取 并修改部分内容 再写回去 r 是最符合的权限 可读写 并且可以覆盖文件之前的内容 但是实际使用时 发现修改后的内容是追加的方式 而不是覆盖 with open gitignore r as f
  • CENTOS上的网络安全工具(二十四)Windows下的Hadoop+Spark编程环境构建

    前面我们搭建了hadoop集群 spark集群 也利用容器构建了spark的编程环境 但是一般来说 就并行计算程序的开发 一刚开始一般是在单机上的 比如hadoop的single node 但是老师弄个容器或虚拟机用vscode远程访问式开
  • MFC定时器SetTimer函数

    一 SetTimer表示的是定义个定时器 根据定义指定的窗口 在指定的窗口 CWnd 中实现OnTimer事件 这样 就可以相应事件了 SetTimer有两个函数 一个是全局的函数 SetTimer UINT SetTimer HWND h
  • C语言上机实验思路分享4

    实验内容 方法和步骤 1 输入 10 个整数 用选择法对这 10 个整数按从小到大的顺序排序并输出排序后的结 果 程序代码 include