1.一个数组中只有两个数字是出现一次,
其他所有数字都出现了两次。
找出这两个数字,编程实现。
#include<stdio.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,6,7,8,9,10,8,7,6,5,4,3,2,1 };
found(num, sizeof(num) / sizeof(num[0]));
return 0;
}
2.喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,
给20元,可以多少汽水。
编程实现。
#include <stdio.h>
int main()
{
int money = 20, count = 20,bottle = 20;
while (1)
{
count += bottle / 2;
bottle = bottle / 2 + bottle % 2;
if (bottle == 1 || bottle == 0)
break;
}
printf("共喝了%d瓶", count);
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;
}