最近的一個星期,其他的事情很多,恰逢考試周,本人身體也出現了一些問題,所以博客沒有更新。
雖然博客沒有更新,但是我學習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;
}