| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:[求助]看看我编的C语言有什么不对的哈。
只看楼主 加入收藏
wq55564835
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-29
收藏
 问题点数:0 回复次数:3 
[求助]看看我编的C语言有什么不对的哈。

请问一下C语言程序。
我自己编了一个,感觉没什么错误,但是就是运行不起,那位蝈蝈知道下哈。程序的思想是一个数形如题目中的9.5565657,,先计算出有几个数用j表示,,然后将这个数变成小数,,0.95565657(无论这个数是什么,,都将它变成小于1的小数);
然后,将这个数*10,,变成9.5565657,,得到整数部分的9,给函数存入out数组..9.5565657这个数减它的整数部9,得到0.5565657,,,,然后*10,,如上述过程,,直到j(这个数的长度)变成0;
最后结果在out数组中,程序的目的是将把一个有整数和小数部分的一个数(如123.456789)。把每位数(如首位的1)所对应的ASC码的八位二进制位依次放到一个数组中
#include <stdio.h>

int out[128];
int *p;

void put(int *,int );
long sq(int );
void main(void)
{
int i=1,length,j=1;
long temp;
double x=9.5565657,y;
p=&out[0];
temp=(int) x;
y=x;
while(1)
{
y=x*sq(j++);
if(y==(int) y)
break;
}
while(temp!=0)
{
temp=temp/sq(i++);
x=x/sq(--i);}
while(j--)
{
x=x*10;
temp=(int) x;
put(p,temp);
x=x-temp;
}

}


long sq(int i)
{
int j;
long k;
if(i==1) return(10);
for(j=i,k=1;j>0;j--)
k=10*k;
return(k);
}
void put(int *q,int temp)
{
int i=0;
int *pp;
p=q;
int g1[8]={0,0,1,1,0,0,0,0};
int g2[8]={0,0,1,1,0,0,0,1};
int g3[8]={0,0,1,1,0,0,1,0};
int g4[8]={0,0,1,1,0,0,1,1};
int g5[8]={0,0,1,1,0,1,0,0};
int g6[8]={0,0,1,1,0,1,0,1};
int g7[8]={0,0,1,1,0,1,1,0};
int g8[8]={0,0,1,1,0,1,1,1};
int g9[8]={0,0,1,1,1,0,0,0};
int g10[8]={0,0,1,1,1,0,0,1};
if(temp==0)
pp=&g1[0];
else if(temp==1)
pp=&g2[0];
else if(temp==2)
pp=&g3[0];
else if(temp==3)
pp=&g4[0];
else if(temp==4)
pp=&g5[0];
else if(temp==5)
pp=&g6[0];
else if(temp==6)
pp=&g7[0];
else if(temp==7)
pp=&g8[0];
else if(temp==8)
pp=&g9[0];
else if(temp==9)
pp=&g10[0];
while(i<8)
{
*p=*pp;
p++;
pp++;
i++;
}
}
知道的蝈蝈可以站内PM我,或者和我QQ联系,我QQ号是:55564835

搜索更多相关主题的帖子: C语言 
2006-06-05 14:14
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 

//Let me help you:
#include<stdio.h>
int main( )
{
double x;
char s[80];
int i=0,n;
long ix,base=1;

printf("Input a double: ");
scanf("%lf",&x);

if(x<0)//负数处理
{
s[i++]='-';
x=-x;
}
ix=(long)x;//截整
if(x-ix>=1)//滤掉绝对值太大的数
{
printf("Sorry,|x| is too large...\n");
return -1;
}
for(n=1; ;n++)//确认整数部分有几位
{
ix/=10;
if(!ix)break;
base*=10;
}
ix=(long)x;//再次恢复ix
while(n--) //获取整数区的字符
{
s[i++]=ix/base%10+'0';
base/=10;
}
x-=ix;//获得纯小数
if(x)s[i++]='.';//插入小数点
while(x)//获取小数区的字符串
{
x*=10;
ix=(long)x;
s[i++]=ix+'0';
x-=ix;
}
s[i]='\0';//添加串尾标志
puts(s);
return 0;
}


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-05 16:55
秦始皇
Rank: 1
等 级:新手上路
威 望:1
帖 子:941
专家分:0
注 册:2006-5-26
收藏
得分:0 

程序之精不在于器,而在于心也


普天之下 皆朕之子民也 汝知乎?
2006-06-05 17:55
漂亮衣裳
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-2-21
收藏
得分:0 
不太会呀! 等一等别人做一下! 我也是才学! 不好意思!
2006-06-06 22:24
快速回复:[求助]看看我编的C语言有什么不对的哈。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025139 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved