调试
第一题 C
第二题 A
第三题 C
第四题 C
第五题 D
release不可以调试
第六题
越界访问访问到了i的地址
编程题
模拟strcpy
void my_strcpy(char*arr1,char*arr2)
{
while (*arr2)
{
*arr1++ = *arr2++;
}
}
int main()
{
char arr1[50] = {0};
char arr2[] = "hello sakdjksjword";
my_strcpy(arr1,arr2);
printf("%s",arr1);
return 0;
}
调整奇数偶数顺序
void move(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
//从左向右找到一个偶数停下来
while (left<right)
{
while ((left<right)&&(arr[left] % 2 == 1))//防止都是奇数时越界访问
{
left++;
}
//从右向左找到一个奇数停下来
while ((left < right) && (arr[right] % 2 == 0))
{
right--;
}
if (left < right)
{
int emp = arr[left];
arr[left] = arr[right];
arr[right] = emp;
left++;
right--;
}
}
}
int main()
{
int arr[10] = { 0 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);//arr+i
}
move(arr,sz);
for (i = 0; i < sz; i++)
{
printf("%d", arr[i]);//arr+i
}
return 0;
}
有序序列合并
//有序序列合并
int main()
{
int n = 0;
int m = 0;
scanf("%d %d",&n,&m);
int arr1[20];
int arr2[20];
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d",&arr1[i]);
}
for (i = 0; i < m; i++)
{
scanf("%d", &arr2[i]);
}
int j = 0;
int k = 0;
while (j < n && k < m)
{
if (arr1[j] < arr2[k])
{
printf("%d",arr1[j]);
j++;
}
else
{
printf("%d",arr2[k]);
k++;
}
}
if (j < n)
{
for (; j < n; j++)
{
printf("%d", arr1[j]);
}
}
else
{
for (; k < m; k++)
{
printf("%d",arr2[k]);
}
}
return 0;
}