| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1110 人关注过本帖
标题:边锋的密码保护用的计算器源代码--无法执行的问题
只看楼主 加入收藏
Hunt
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:9
注 册:2004-11-23
收藏
 问题点数:0 回复次数:3 
边锋的密码保护用的计算器源代码--无法执行的问题

以下源代码我是从网上摘录下来的,无法编译,请大家看看,问题出在哪里,


#include <stdio.h>
#include <conio.h>

/*本程序是为边锋的密码保护用的计算器,第一行是两步结果,第二行是四步结果*/
/*程序中有一个goto语句,在main函数里完全可以去掉,这样程序运行一次只能计算一次*/
/*这个程序最主要的是程序的完整性,程序运行后不管你输入什么非法字符,都会有相应的语句,还支持退格*/
/*progammed by 旧爱最美*/


void thenumber(int g[]) /*取20位基数,输入20位后自动弹出,无需敲回车*/
{
int i,c,lenth,y;
char pr[30]="\nplease input the number:";
lenth=strlen(pr);
for(i=0;i<20;i++)g[i]=0;
printf(pr);
for(i=0;i<20;i++)
{
c=getche();
if(c==8)
{
i-=2;
printf(" \b");
if(i<-1)
{
printf(":");
i++;}
continue;
}
g[i]=(c-48);
if(g[i]>10 || g[i]<0)
{
printf("\a");
if(g[i]==-35) /*对回车的抵御*/
{
y=wherey();
gotoxy(lenth+i,y);
}
else printf("\b \b"); /*其余非法字符*/
i--;
continue;

}
}
}


void cryptogram(int g[]) /*取得密码,密码会被*覆盖*/
{
int i,c,k=0,h[20]; /*k是计数器*/
for(i=0;i<20;i++){g[i]=0;h[i]=0;}
printf("\nplease input your cryptogram:");
for(i=0;i<20;i++)
{
c=getche();
k++;
if(c==8) /*对退格键的处理*/
{
i-=2;
printf(" \b");
if(i<-1) /*如果还没敲数字就退格就会发生错误,这是对这种情况的处理*/
{
printf(":");
k++;
i++;
}
k-=2;
continue;
}
if(c==13){k=k-1;break;} /*回车,输入完毕*/
if(c>58 || c<48) /*对非数字的处理*/
{
k--;
i--;
printf("\b \b");
continue;
}
g[i]=c-48;
printf("\b*"); /*这个就是用*覆盖密码*/
}
for(i=(20-k);i<20;i++)h[i]=g[i+k-20];
for(i=0;i<20;i++)g[i]=h[i];
}


void twoadd(int g[],int h[]) /*(因为20位数太长了,只能放在数组里了),是两个20位数组相加,结果放在第一个数组里*/
{
int y[21],i; /*y[]是进位存储器*/
y[20]=0;
for(i=19;i>=0;i--)
{
g[i]=g[i]+h[i]+y[i+1];
y[i]=g[i]/10;
g[i]%=10;
}
}

void tenadd(int g[],int h[]) /*两个10位数组相加*/
{
int z[11],i; /*z[]是进位存储器*/
z[10]=0;
for(i=9;i>=0;i--)
{
g[i]=g[i]+h[i]+z[i+1];
z[i]=g[i]/10;
g[i]%=10;
}
}

void newone(int g[],int h[]) /*生成新的20位数组*/
{
int i;
for(i=0;i<20;i++)
{
if(!g[i])
g[i]=10;
g[i]=h[g[i]-1];
}
}


void main()
{
int i,l,a,b;
int m[20],n[20],x[10],y[10];
next:
for(i=0;i<20;i++)
{
m[i]=0;
n[i]=0;
}
for(i=0;i<10;i++)
{
x[i]=0;
y[i]=0;
}
thenumber(m);
printf("\n\n");
cryptogram(n);
twoadd(m,n);
for(i=0;i<10;i++)
{
x[i]=m[i];
y[i]=m[i+10];
}
tenadd(x,y);
printf("\n\n\n");
for(i=0;i<10;i++)
printf("%d",x[i]);
printf("\n\n\n");
newone(m,x);
for(i=0;i<10;i++)
{
x[i]=m[i];
y[i]=m[i+10];
}
tenadd(x,y);
printf("\n\n");
for(i=0;i<10;i++)
printf("%d",x[i]);
printf("\n\n\n");
printf("press any two same keys to exit\nor press Esc to exit\npress Enter to continue\n");
a=getche();
if(a==27)exit();
if(a==13)goto next;
b=getche();
if(a-b)goto next;
}

搜索更多相关主题的帖子: 源代码 计算器 边锋 密码 
2006-07-22 19:05
Hunt
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:9
注 册:2004-11-23
收藏
得分:0 
这里的高手们看看啊

程序人生最高境界:“我就是程序,程序就是我。”
2006-07-23 20:33
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 

我用 TC 能正常的便宜运行
但是不知道这个东西的具体作用是什么 ??边锋的密码保护,难道密码保护要
计算器的 !!!!!!!


~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2006-08-03 23:20
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
什么叫为边锋的密码保护用的计算器?
实在不懂。

倚天照海花无数,流水高山心自知。
2006-08-04 15:34
快速回复:边锋的密码保护用的计算器源代码--无法执行的问题
数据加载中...
 
   



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

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