最近的一个多星期

  最近的一个星期,其他的事情很多,恰逢考试周,本人身体也出现了一些问题,所以博客没有更新。

  虽然博客没有更新,但是我学习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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章