谭浩强数组相关代码

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


目录
相关文章
|
C语言 数据建模
《C语言及程序设计》实践参考——一副扑克牌
返回:贺老师课程教学链接   项目要求 【项目4- 一副扑克牌】 下面的程序,输出了52张扑克牌(如图),请补充完整程序。 #include &lt;stdio.h&gt; int main( ) { char c[4]= {'H','S','D','C'}; int v[13]= {1,2,3,4,5,6,7,8,9,10,11,12,13}; int i,j
1244 0
|
8月前
|
C语言
C语言学习记录——找数组中的鞍点
C语言学习记录——找数组中的鞍点
90 0
|
C语言
C语言数组第十课---------------三子棋-------数组经典练手题
C语言数组第十课---------------三子棋-------数组经典练手题
|
9月前
|
存储 人工智能 程序员
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
爱上C语言:超详细讲解数组,学数组看这一篇就够了(数组篇)
187 0
|
C语言
【维生素C语言】画图解析C语言指针笔试题
C语言指针笔试题,建议做完后再看答案。本篇博客有详细的解析部分,对每一道题进行深度的画图解析。
83 0
【维生素C语言】画图解析C语言指针笔试题
|
存储 C语言 C++
【C语言初阶】指针数组or数组指针!又被这些命名搞蒙了?
【C语言初阶】指针数组or数组指针!又被这些命名搞蒙了?
95 0
|
9月前
|
存储 算法 Java
初学者对C语言中指针的爱恨情仇
初学者对C语言中指针的爱恨情仇
66 0
AcWing语法基础课笔记 第七章 类、结构体、指针、引用
类可以将变量、数组和函数完美地打包在一起。 ——闫学灿
137 0
|
C语言
c语言学习第二十一课-指针和数组笔试题解析
c语言学习第二十一课-指针和数组笔试题解析
99 0

热门文章

最新文章