简单c语言程序设计 要求80到 100行。。

不能跟网上的重复。。改动的也可以。。要能运行的。。。
在 说一下 设计思路 以及 运用到得知识点(比如while函数,if语句等等)
。谢谢啦。

第1个回答  2011-06-08
计算n的n次方:
#include<stdio.h>
int a[300000],a1[300000];b[100];

void fwa()
{
int i=0;
for(i=0;i<300000;i++)
a[i]=-1;

}

void fwa1()
{
int i=0;
for(i=0;i<300000;i++)
a1[i]=-1;
}

void fwb()
{
int i=0;
for(i=0;i<100;i++)
b[i]=-1;
}

void fl(int x)
{
int i=0;
fwb();
if(x==0)
b[i]=0;
else
for(i=0;x!=0;i++)
{
b[i]=x%10;
x=x/10;
}
}
main()
{
int i=0,j=0,n,m=0,k;
for(;;)
{
fwa();
fwa1();
printf("请输入n值:\n");
scanf("%d",&n);
fl(n);
for(i=0;b[i]!=-1;i++)
a[i]=b[i];
for(m=0;m<n-1;m++)
{
for(i=0;a[i]!=-1;i++)
{
a1[i]=a[i]*n;
}
fwa();

for(i=0;a1[i]!=-1;i++)
{
fl(a1[i]);
for(j=0;b[j]!=-1;j++)
{
if(a[i+j]!=-1)
{
if(b[j]+a[i+j]<10)
a[i+j]=b[j]+a[i+j];
else
{
k=b[j]+a[i+j];
a[i+j]=k%10;
if(a[i+j+1]!=-1)
a[i+j+1]=1+a[i+j+1];
else
a[i+j+1]=1+a[i+j+1]+1;
}
}
else
{
if(b[j]+a[i+j]<10)
a[i+j]=b[j]+a[i+j]+1;
else
{
k=b[j]+a[i+j];
a[i+j]=k%10+1;
if(a[i+j+1]!=-1)
a[i+j+1]=1+a[i+j+1];
else
a[i+j+1]=1+a[i+j+1]+1;
}
}
}
}
}
for(i=0;a[i]!=-1;i++);
j=i;
for(i--;i>=0;i--)
{
printf("%d",a[i]);
}
printf("\n一共%d位\n",j);

}
}追问

能不能 说一下 这个题目的设计思路 以及 运用到的知识点?》??谢谢

追答

几年前编的程序,已经记不清思路了。总体就是一位一位的乘,然后错位相加。就是乘法的最原始算法

追问

我运行了一下。。这个程序有错误啊。好像是5个地方。不过也谢谢了。。

本回答被提问者采纳
相似回答