1.一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
找出这两个数字,编程实现。
#include<stdio.h>
#include<stdlib.h>
int find_double(int arr[], int len)
{
int i, j, k;
for (i = 0; i<len; i++)
{
k = 0;
for (j = 0; j<len; j++)
{
if (arr[j] == arr[i])//如果两个相等,k会自增两次
{
k++;
}
}
if (k == 1)//说明自增一次说明只出现一次
{
printf("%d ", arr[i]);
}
}
printf("\n");
}
int main()
{
int arr[] = { 1, 2, 3, 4, 1, 2,};
int sz = 0;
sz = sizeof(arr) / sizeof(arr[0]);
find_double(arr, sz);
system("pause");
return 0;
}
2. 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。
#include "stdio.h"
int main()
{
int m = 20;
int sum = m;
int tmp = m;
while (tmp >= 2)
{
sum = sum + (tmp / 2);
tmp = tmp - (tmp / 2);
}
return sum;
system("pause");
}
3. 模拟实现strcpy
#include"stdio.h"
#include "assert.h"
#include "windows.h"
#include "string.h"
char* my_strcpy(char *str, char*as)//将china复制到str数组中
{
char *p = str;
assert(str);
assert(as);
while (*as)
{
*str++=*as++;
}
return p;
}
int main()
{
char str[100] = { 0 };
printf("%s\n", my_strcpy(str, "china"));
system("pause");
return 0;
}
C语言编程挑战
9万+

被折叠的 条评论
为什么被折叠?



