1.一个数组中只有两个数字是出现一次,
其他所有数字都出现了两次。
找出这两个数字,编程实现。
#include <stdio.h>
#include <stdlib.h>
void found(int* num, int sz)
{
int i = 0;
int j = 0;
for (i = 0; i <= sz - 1; i++)
{
for (j = 0; j <= sz - 1; j++)
{
if (i == j)
{
j++;
}
if (num[i] == num[j])
{
break;
}
}
if (j > sz - 1)
{
printf("%d\n", num[i]);
}
}
}
int main()
{
int num[] = { 1, 2, 3, 4, 5, 3, 2, 1 };
found(num, sizeof(num) / sizeof(num[0]));
system("pause");
return 0;
}
2.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,
给20元,可以多少汽水。
编程实现。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int money = 20;
int count = 20;
int tmp = 20;
while (1)
{
count += tmp / 2;
tmp = tmp / 2 + tmp % 2;
if (tmp == 1 || tmp == 0)
break;
}
printf("可以喝%d瓶汽水\n", count);
system("pause");
return 0;
}
3.模拟实现strcpy
char* Strcpy(char* des, char* src)
{
assert(des);
assert(src);
char* a = des;
while (*des++ = *src++);
return a;
}
4.模拟实现strcat
char* Strcat(char* des, char* src)
{
assert(des);
assert(src);
char *a = des;
while (*++des);
while (*des++ = *src++);
return des;
}