| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 589 人关注过本帖
标题:编了一个小程序,请高手看看!
取消只看楼主 加入收藏
yrj007
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-3-17
收藏
 问题点数:0 回复次数:0 
编了一个小程序,请高手看看!
//求两多位数相乘结果,用DEV编译通过
//方法不是很好,请高手提提意见
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
int main()
{
int tra(char ch);
char *num1;
char *num;
int *num2;
int *temp={0};
int sum[1000]={0};
int num3;
int i=0;
int n=0,m=0;
int t=0,r=0;
int len1=0,len2=0;
int k=0;
int w=0;
int h=0,x=0,j=0;
int e1=0,e2=0,e3=0;
printf("Input number\n");
num1=(char *)malloc(1000);//前乘数分配大小
gets(num1);
fflush(stdin);
num=(char *)malloc(1000);//后乘数分配大小
gets(num);
fflush(stdin);
num2=(int *)malloc(1000);//记录数分配大小
temp=(int *)malloc(1000);//记录数分配大小
len1=strlen(num1);
len2=strlen(num);
for(j=len2-1;j>=0;j--) //后乘数从尾到头
{
k++;
t=0;
num3=tra(num[j]); //转为整数
printf("%d\n",num3);
for(w=k;w>1;w--)
num2[t++]=0;
x=0;
for(i=len1-1;i>=0;i--)//前乘数从尾到头
{
m=tra(num1[i]);//转为整数
printf("%d\n",m);
n=num3*m; //后数乘以前数
h=(n+x)%10; //取个位
x=(n+x)/10; //取十位
num2[t++]=h; // 记录位数
}
if(x!=0)
num2[t++]=x;
num2[t]='\0';
temp=num2;
for(w=t-1;w>=0;w--)
printf("%d",temp[w]);
printf("\n");
e3=0;e2=0;e1=0;
for(w=0;w<t;w++)
{
e1=temp[w]+sum[w]+e3;
e2=e1%10;
e3=e1/10;

sum[w]=e2;

}
if(e3!=0)
sum[w++]=e3;
sum[w]='\0';

}
int p=0;
for(p=w-1;p>=0;p--)
printf("%d",sum[p]);
getch();
return 0;
}
int tra(char ch)
{
char *str;
int m;
str=(char *)malloc(6);
str[0]=ch;
str[1]='\0';
m=atoi(str);
return m;
}
搜索更多相关主题的帖子: include 
2007-10-06 22:19
快速回复:编了一个小程序,请高手看看!
数据加载中...
 
   



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

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