/*
*文件中有一组整数,要求排序后输出到另一个文件中
*author:jxb
*date:2015\4\3
*/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int num ;
char c;
FILE *fd;
void get_data(int *scr,int *len)
{
*len = 0;
num = 0;
fd = fopen("1.txt","r"); /*r该文件必须存在;w若文件不存在则建立该文件*/
while((c=fgetc(fd))!=EOF) /*当读到文件末尾或者读取出错时返回EOF*/
{
if((c>=48)&&(c<=57))
{
num = num*10+c-48; /*字符转为十进制数*/
}
else
{
scr[(*len)++] = num;
num = 0;
while((c=fgetc(fd))!=EOF)
{
if(!((c>=48)&&(c<=57))) /*剔除非数字*/
continue;
else
{
num = num*10+c-48;
break;
}
}
}
}
if(num>0)
scr[(*len)++] = num;
fclose(fd);
}
int compar(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
void output(int *scr,int *len)
{
int i;
fd = fopen("2.txt","w");
for(i=0;i<(*len);i++)
{
fprintf(fd,"%d",*scr++);
fprintf(fd,"%c",' ');
}
fclose(fd);
}
void main()
{
int j,len;
int scr[100];
get_data(scr,&len);
qsort(scr,len,sizeof(int),compar); /* 比较函数compar的作用就是给qsort指明 元素的大小是怎么比较的*/
//printf("%d\n",len); /*http://www.cnblogs.com/syxchina/archive/2010/07/29/2197382.html*/
//for(j=0;j<len;j++)
//printf("%d\n",scr[j]);
output(scr,&len);
}
/*总结:函数参数的传递最好用指针传递*/
<pre name="code" class="cpp">/*
*查看一个字符中1的个数
*author:jxb
*date:2015\4\3
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
char a;
int string[8]={0,0,0,0,0,0,0,0};
int j;
printf("please input:\n");
scanf("%c",&a);
printf("%o\n",a); /*该字符的8进制输出*/
char b = a;
for(j=7;b;j--) /*二进制转换*/
{
string[j] = b%2;
b = b >> 1;
}
for(j=0;j<8;j++)
{
printf("%d",string[j]);
}
printf("\n");
int i=0;
while (a) /*打印1的个数*/
{
i += a&1;
a >>=1;
}
printf("%d\n",i);
}