可以初始化两个字符串数组,然后通过while循环赋值,则可以输出一个菱形。
#include
void up_diamond(int left, int right)
{
char str1[] = "*************";
char str2[] = " ";
while ((left > 1) && (right < 12))
{
str2[left] = str1[left];
str2[right] = str1[right];
left--;
right++;
printf("%s\n", str2);
}
}
void down_diamond(int left, int right)
{
char str1[] = "*************";
char str2[] = " ";
while (left != right)
{
str1[left] = str2[left];
str1[right] = str2[right];
left++;
right--;
printf("%s\n", str1);
}
}
int main()
{
up_diamond(6, 6);
down_diamond(0, 12);
return 0;
}#include
int binary_search(int arr[],int left,int right,int key)
{
while (left <= right)
{
int mid = (left + right) / 2;
if (key > arr[mid])
{
left = mid + 1;
}
else if (key < arr[mid])
{
right = mid - 1;
}
else
{
return mid;
}
}
if (left > right)
{
return -1;
}
return 0;
}
//
int main()
{
int key = 100;
scanf("%d", &key);
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
int temp = binary_search(arr, left, right, key);
if (temp == -1)
{
printf("没找到\n");
}
else
{
printf("是第%d 位\n", temp);
}
return 0;
}