1.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
找出这两个数字,编程实现。
#define _CRT_SECURE_NO_WARNINGS 0
找出这两个数字,编程实现。
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
int one(int arr[], int sz)
{
int m = 0;
int n = 0;
int k = 0;
for (; m < sz; m++)
{
for (k=0,n=0;n < sz; n++)
{
if (arr[m] == arr[n])
{
k++;
}
}
if (k == 1)
return arr[m];
}
}
{
int m = 0;
int n = 0;
int k = 0;
for (; m < sz; m++)
{
for (k=0,n=0;n < sz; n++)
{
if (arr[m] == arr[n])
{
k++;
}
}
if (k == 1)
return arr[m];
}
}
int sum(int arr[], int sz)
{
int m = 0;
int n = 0;
for (; m < sz; m++)
{
n ^= arr[m];
}
return n;
}
{
int m = 0;
int n = 0;
for (; m < sz; m++)
{
n ^= arr[m];
}
return n;
}
int main()
{
int arr[] = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7 };
int sz = sizeof(arr) / sizeof(arr[0]);
int m = one(arr, sz);
int n = sum(arr, sz);
int k = n^m;
printf("两个单独的数字是%d和%d,\n", m, k);
system("pause");
return 0;
}
{
int arr[] = { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7 };
int sz = sizeof(arr) / sizeof(arr[0]);
int m = one(arr, sz);
int n = sum(arr, sz);
int k = n^m;
printf("两个单独的数字是%d和%d,\n", m, k);
system("pause");
return 0;
}
2.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
int num(int money)
{
int he = 0;
int kong = 0;
for (; money >0; money--)
{
he++;
if ((++kong) % 2 == 0)
{
he++;
kong++;
}
}
return he;
}
{
int he = 0;
int kong = 0;
for (; money >0; money--)
{
he++;
if ((++kong) % 2 == 0)
{
he++;
kong++;
}
}
return he;
}
int main()
{
int money = 0;
printf("请输入你的的钱数:——>:");
scanf("%d", &money);
printf("%d", num(money));
system("pause");
return 0;
{
int money = 0;
printf("请输入你的的钱数:——>:");
scanf("%d", &money);
printf("%d", num(money));
system("pause");
return 0;
}
3.模拟实现strcpy
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
3.模拟实现strcpy
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strcpy(char *arr1, char *arr2)
{
assert(arr1 != NULL);
assert(arr2 != NULL);
char *ret = arr1;
while (*arr1++ = *arr2++)
{
;
}
return ret;
}
{
assert(arr1 != NULL);
assert(arr2 != NULL);
char *ret = arr1;
while (*arr1++ = *arr2++)
{
;
}
return ret;
}
int main()
{
char *p = "qwertyui";
char arr[20] = { 0 };
my_strcpy(arr, p);
printf("%s\n", arr);
printf("%s", my_strcpy(arr, "hello!"));
system("pause");
return 0;
}
4.模拟实现strcat
{
char *p = "qwertyui";
char arr[20] = { 0 };
my_strcpy(arr, p);
printf("%s\n", arr);
printf("%s", my_strcpy(arr, "hello!"));
system("pause");
return 0;
}
4.模拟实现strcat
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char * my_strcat(char *arr, char *brr)
{
assert(arr != NULL);
assert(brr != NULL);
char *scr = arr;
while (*arr)
{
arr++;
}
while (*arr++ = * brr++)
{
;
}
return scr;
}
{
assert(arr != NULL);
assert(brr != NULL);
char *scr = arr;
while (*arr)
{
arr++;
}
while (*arr++ = * brr++)
{
;
}
return scr;
}