二维数组的输入和输出
#include<stdio.h>
int main()
{
int j = 0;
int i = 0;
int arr[3][5] = { 0 };
for (i = 0; i < 3; i++)//产生行号
{
for (j = 0; j < 5; j++)//产生列号
{
scanf("%d", &arr[i][j]);
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", arr[i][j]);
}
}
printf("\n");
return 0;
}
多个字符从两边移动,向中间汇聚
#include<stdio.h>
#include<stdlib.h>
int main()
{
char arr1[] = "The moon is beautiful today and so are you";
char arr2[] = "******************************************";
int lefe = 0; //最左侧的字符
int right = strlen(arr1) - 1;//最右侧的字符,字符与下标之间差1,所以减一
while (lefe <= right)
{
Sleep(500); //延迟打印,单位毫秒
arr2[lefe] = arr1[lefe];
arr2[right] = arr1[right];
lefe++;
right--;
system("cls"); //清除屏幕上信息
printf("%s\n",arr2);
}
return 0;
}
二分查找
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int mid = 0; //中间元素下标
int key = 0; //要找的数字
int i = 0;
printf("请输入要找的数字:\n");
scanf("%d", &key);
while (left <= right)
{
mid = (left + right) / 2;//取中间数
if (arr[mid] > key)
{
right = mid - 1;
}
else if (arr[mid] < key)
{
left = mid + 1;
}
else
{
printf("找到了下标是%d", mid);
break;
}
}
if (i != 0)
{
printf("没找到\n");
}
return 0;
}