最近的一個多星期

  最近的一個星期,其他的事情很多,恰逢考試周,本人身體也出現了一些問題,所以博客沒有更新。

  雖然博客沒有更新,但是我學習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;
}


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