最近的一个星期,其他的事情很多,恰逢考试周,本人身体也出现了一些问题,所以博客没有更新。
虽然博客没有更新,但是我学习c语言的脚步并没有停下来。今天时间总算空出来了,所以来做一个总结。
我学习了指针的用法,指针和数组的区别,还有其他数据类型,比如结构体、共同体等,浮点数在内存中的储存形式。
还有就是我写的几个代码。
1.编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
#include<stdio.h>
int find_dif(int i,int j)
{
int count = 0;
unsigned int tmp = 0;
tmp = i^j;
while (tmp)
{
if (tmp % 2 == 1)
{
count++;
}
tmp /= 2;
}
return count;
}
int main()
{
int m = 1, n = 2;
printf("m=");
scanf("%d", &m);
printf("n=");
scanf("%d", &n);
int ret = find_dif(m, n);
printf("dif=%d\n", ret);
system("pause");
return 0;
}
2.字符串替换空格:
请实现一个函数,把字符串中的每个空格替换成“%20”。
例如输入“we are happy.”,则输出“we%20are%20happy.”。
#include<stdio.h>
#include<string.h>
void change(char *p,char *len)
{
char *start = (char *)p;
int i = 0;
char tmp[]= " ";
while (*start != '\0')
{
if (*start != ' ')
{
tmp[i] =(char) *start;
start++;
i++;
}
else
{
start++;
tmp[i] = '%';
i++;
tmp[i] = '2';
i++;
tmp[i] = '0';
i++;
}
}
i = 0;
while (tmp[i] != '\0')
{
*p = tmp[i];
*p++;
i++;
}
}
int main()
{
char arr[20] = "we are happy";
int len = strlen(arr);
change(arr,arr+len-1);
printf("%s\n", arr);
system("pause");
return 0;
}
3.每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水。
(编程实现)。
#include<stdio.h>
int many_cole(int count)
{
int sum = 0;
while (count)
{
sum += count;
count /= 2;
}
return sum;
}
int main()
{
int count = 20;
int ret = many_cole(count);
printf("%d\n", ret);
system("pause");
return 0;
}