您的位置:首页 > 编程语言 > C语言/C++

C语言中的经典小程序1

2013-09-05 23:23 387 查看
首先声明所写的这些函数都是本人自己实践过的,每一个程序都是能够实际运行的。

1.将一个十进制的无符号整型数据转换成二进制形式表示,用C语言实现。

我写了一个程序,经过运行能够实现:

#include<stdio.h>

void funcint_to_ox(unsigned int a);
int main(void)
{
unsigned int m;
printf("please input an unsigned int number:\n");
scanf("%d",&m);

printf("转换前数字为%d\n",m);
printf("转换后数字为:\n");
funcint_to_ox(m);
return 0;
}

void funcint_to_ox(unsigned int a)
{
int i = 32;
while(i-->=1)
{
if(a&(1<<i))
{
printf("1");
}
else
{
printf("0");
}

}
printf("\n");
}
其实这个程序不仅仅是实现十进制转二进制的表示,当然也可以实现八进制转二进制的表示。

2.用C语言实现将整数转换成字符串数(即自己实现itoa这个函数)。

#include<stdio.h>

void i_to_a(int m);

int main(void)
{
int a ;
printf("please input an int number:\n");
scanf("%d",&a);
printf("转换之前的整数为:%d\n",a);
i_to_a(a);

return 0;
}

void i_to_a(int m)
{
int i = 0, j = 0, k = 0;
char str[32],temp[32];

while(m)
{
temp[i] = m%10+'0';
m = m/10;
i = i++;
}

temp[i]='\0';
printf("the temp is %s\n",temp);

while(i>=0)
{
str[j] = temp[i-1];
j++;
i--;
}
str[j-1]= '\0';
printf("转换成字符串之后为:%s\n",str);
}

3.用C语言实现字符串转化成整数(即自己实现atoi这个函数)。

#include<stdio.h>

void a_to_i(char * m);

int main(void)
{
char b[32];
printf("please input a string:\n");
scanf("%s",b);
printf("转换前的字符为:%s\n",b);
a_to_i(b);

return 0;
}
void a_to_i(char *m)
{
int i = 0, j = 0, k = 0,sum = 0;
char str[32],temp[32];

while(*(m+j)!='\0')
{
temp[i]=*(m+j);
i++;
j++;
}

temp[i]='\0';
printf("the temp is :%s\n",temp);

while(k<i)
{
sum = sum *10+(temp[k]- '0');
k++;
}
printf("转换成整型数之后为:%d\n",sum);

}

4.用C语言实现冒泡排序。

#include <stdio.h>

void inputarr(int *arr,int n);

void outputarr(int *arr,int n);

void bubblesort(int *sort,int n);

int main(void)

{

int sort[5];

printf("请输入五个数字\n");

inputarr(sort,5);

bubblesort(sort,5);

outputarr(sort,5);

return 0;

}

void inputarr(int *arr,int n)

{

int i;

for(i = 0; i<n; i++)

{

scanf("%d",(arr+i));

}

}

void outputarr(int *arr,int n)

{

int i;

for(i= 0; i<n; i++)

{

printf("%d ",*(arr+i));

}

printf("\n");

}

void bubblesort(int *sort, int n)

{

int i,j,t;

for(i=0; i<n-1;i++)

{

for(j= 0;j<n-1-i;j++)

{

if(*(sort+j)>*(sort+j+1))

{

t = *(sort+j);

*(sort+j)= *(sort+j+1);

*(sort+j+1)= t;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: