谭浩强数组相关代码

简介: 谭浩强数组相关代码
#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;
}


目录
相关文章
|
JavaScript 前端开发
牛客最新笔试题解析(二)原型与原型链题目
牛客最新笔试题解析(二)原型与原型链题目
601 0
牛客最新笔试题解析(二)原型与原型链题目
|
3月前
|
存储 编译器 C语言
烫烫烫手的结构体大小计算来咯,很烫哦,慢慢消化。自定义类型(一)
烫烫烫手的结构体大小计算来咯,很烫哦,慢慢消化。自定义类型(一)
22 2
|
5月前
|
Java
Java数组几道练习题
Java数组几道练习题
47 11
|
8月前
|
C语言
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(二)
我们可以通过创建并定义符号常量NUMBER,来作为判断是否胜利的标准。如三子棋中,令NUMBER为3,则这八个方向中有任意一个方向达成3子连珠,则连珠的这个棋子所代表的玩家获胜。
84 1
|
8月前
|
算法 C语言 C++
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(一)
三子棋游戏设计的核心是对二维数组的把握和运用。
101 1
|
8月前
|
存储 人工智能 程序员
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
149 0
|
算法
编程之美 -2.17数组循环移位
编程之美 -2.17数组循环移位
75 0
|
C语言
C语言程序设计(王立柱)第三章答案 指针和数组
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
98 0
|
C语言
C语言程序设计(王立柱)第九章答案 二维数组和指针
只有聪明人才能看见的摘要~( ̄▽ ̄~)~
82 0
|
C语言
【维生素C语言】数组笔试题(附答案+详解)(二)
本章为数组部分的练习章节,一共八个大题。配备答案+详细画图解析。
51 0
【维生素C语言】数组笔试题(附答案+详解)(二)