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

c语言编程练习(一)

2015-04-03 23:11 281 查看
/*
*文件中有一组整数,要求排序后输出到另一个文件中
*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);}

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