谭浩强数组相关代码

简介: 谭浩强数组相关代码
#include <stdio.h>
int main()
{
  int arr[2][2] = { {1,2},{3,4} };//全体元素都赋值
  int i, j;
  for (i = 0; i < 2; i++)
  {
    for (j = 0; j < 2; j++)
    {
      if (j% 2 == 0)
        printf("\n");
      printf("%5d", arr[i][j]);
    }
  }
    return 0;
}
//转置数组的练习
int main()
{
  int arr1 [2] [3] = { {1,2,3},{4,5,6} };
  int arr2[3][2];
  int i, j;
  printf("arr1:\n");
  for (i = 0; i < 2; i++)
  {
    for (j = 0; j < 3; j++)
    {
      if (j % 3 == 0)
        printf("\n");
      printf("%7d", arr1[i][j]);
      arr2[j][i] = arr1[i][j];
    }
  }
  printf("\n");
  printf("arr2(转置后):\n");
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 2; j++)
    {
      if (j % 2 == 0)
        printf("\n");
      printf("%7d", arr2[i][j]);
    }
  }
  return 0;
}
//利用擂台算法来找出数组中最大值,并给出其row,column;
int main()
{
  int arr[4][5] = { {12,23,31,26,11},{10,11,56,67,79} ,{64,65,98,90,35 },{10,20,30,40,50} };
  int i, j,row,column;
  int max;
  max = arr[0][0];//定义一个最大值,并使数组第一个元素为擂主
  for (i = 0; i < 4; i++)
  {
    for (j = 0; j < 5; j++)
    {
      if (arr[i][j] > max)
      {
        max = arr[i][j];
        row = i;
        column = j;
      }
    }
  }
  printf("max=%d\nrow=%d\ncolumn=%d\n" ,max,row,column);
  return 0;
}
                                                   //练习使用字符数组
#include <stdio.h>
int main()
{
  char ch[3][3] = { {' ','*',' '},{'*',' ','*'},{' ','*',' '} };
  int i, j;
  for (i = 0; i < 3; i++)
  {
    for (j = 0; j < 3; j++)
    {
      printf("%c", ch[i][j]);
    }
    printf("\n");//循环一次,换行一次
  }
  return 0;
}
#include <stdio.h>
int main()
{
    printf("love\0you");//字符串的结束标志为\0,这个程序的只会输出love;对于一般情况下,系统会自动在字符串末尾添加\0,作为结束标志;
    return 0;
}
                                        //字符数组的输入与输出
#include <stdio.h>
#include <string.h>
int main()
{
    char ch[100];
    fgets(ch, 99, stdin);
    printf("%s", ch);
    return 0;
}
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
strcat(str1, str2);//表示将字符串2连接到字符串1;
char str1[] = "i and";
char str2 [] = "you";
printf("%s", strcat_s(str1, str2));
    return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//实现0—9的逆序输出
#include <stdio.h>
int main()
{
  int arr[10];
  int i;
  for (i = 0; i <= 9; i++)//先把0-9这十个数字存到数组中;
  {
    arr[i] = i;
  }
  for (i = 9; i >= 0; i--)
  {
    printf("%d ", arr[i]);
  }
  return 0;
}
//解决数组中与斐波那契数列有关的问题
//输出数列中前25号元素,并每行5个数字打印出来
#include <stdio.h>
int main()
{
  int arr[25] = { 1,1 };//将前25号元素存到数组中
  int i;
  for (i = 2; i <= 24; i++)
  {
    arr[i] = arr[i - 1] + arr[i - 2];//利用数列性质
  }
  for (i = 0; i <= 24; i++)      //存储完毕,接下来按要求输出
  {
    if (i % 5 == 0)
      printf("\n");    //利用if语句实现换行printf("\n")系统会自动换行
    printf("%12d  ", arr[i]);
  }
  return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//利用折半查找法判断用户输入的数字是否在数组1-10;
#include <stdio.h>
int main()
{
  int k = 10;
  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  int left = 0;
  int right = sz - 1;
  while (left <= right)
  {
    int mid = (left + right) / 2;
    if (arr[mid] < k)
    {
      left = mid + 1;
    }
    else if (arr[mid] > k)
    {
      right = mid - 1;
    }
    else;
    {
      printf("查到了,下标为:%d\n", mid);
      break;
    }
  }
  if (left > right)
  {
    printf("查无此数");
  }
  return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//练习使用冒泡排序法,输入10个整数,最终使其升序排序。
//冒泡排序法就是两两比较,将较大的数字通过比较移动到后面,实现升序处理;
#include <stdio.h>
int main()
{
  int arr[10];
  int i, j, t;
  printf("请输入十个数字:\n");
  for (i = 0; i <= 9; i++)
  {
    scanf("%d", &arr[i]);//将输入的十个数字存到数组中;
  }
  for (j = 0; j < 9; j++)//十个数字,第一趟需要比较九次,第二趟需要比较八次;以此类推
  {
    for (i = 0; i < 9 - j; i++)
    {
      if (arr[i] > arr[i + 1]) //接下来进行比较
      {
        t = arr[i + 1]; arr[i + 1] = arr[i]; arr[i] = t;
      }//交换前后两个数字顺序
    }
  }
  for (i = 0; i < 10; i++)
  {
    printf("%d ", arr[i]);
  }
  printf("\n");//一定要注意循环{}的对应
  return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
//利用折半查找法判断用户输入的数字是否在数组1-10;
#include <stdio.h>
int main()
{
  int k;
  int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
  int sz = sizeof(arr) / sizeof(arr[0]);
  printf("请输入一个数字: ");
  scanf("%d", &k);
  int left = 0;
  int right = sz - 1;
  while (left <= right)
  {
    int mid = (left + right) / 2;
    if (arr[mid] < k)
    {
      left = mid + 1;
    }
    else if (arr[mid] > k)
    {
      right = mid - 1;
    }
    else
    {
      printf("查到了,下标为:%d\n", mid);
      break;
    }
  }
  if (left > right)
  {
    printf("查无此数");
  }
  return 0;
}


目录
相关文章
|
10天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
9天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
417 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
3天前
|
存储 安全 前端开发
如何将加密和解密函数应用到实际项目中?
如何将加密和解密函数应用到实际项目中?
199 138
|
9天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
381 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
3天前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
199 136
|
21天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1356 8
|
8天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
20天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1471 87