首页
社区
课程
招聘
[旧帖] [求助]程序编译出错 0.00雪花
发表于: 2011-7-8 08:55 1413

[旧帖] [求助]程序编译出错 0.00雪花

2011-7-8 08:55
1413
源代码:
#include <stdio.h>
#include <string.h>
#define MAX_LEN_OF_STRING 50

int main()
{
  const int MIN_LEN_OF_NAME=10;
  const int MAX_LEN_OF_NAME=24;
  char name[MAX_LEN_OF_STRING]="";
  char sn[MAX_LEN_OF_STRING]="";
  char magicString[]="i am Bin Laden";
  int lenOfName,
    lenOfMagicString,
    lastCharIndex,
    lenOfSerial;
  int i,j;

  //录入用户名,确保符合长度
  do{
    printf("Plz input your name:");
    scanf("%s", name);
    lenOfName = strlen(name);
    if(lenOfName < MIN_LEN_OF_NAME)
      printf("Name should be at least %d characters!\r\n", MIN_LEN_OF_NAME);
    else if(lenOfName > MAX_LEN_OF_NAME)
      printf("Name should no more than %d characters!\r\n", MAX_LEN_OF_NAME);
    else
      goto goodway;
  }while(1);

goodway:
  strcat(name,magicString);

  //下面的计算保证10位的用户名对应17位的序列号
  lenOfMagicString = strlen(magicString);
  lastCharIndex = lenOfName+lenOfMagicString-3;
  for(i=0; i<26; i++)
  {//穷举得到序列号第一位
    if(((name[lastCharIndex]*(i+0x41)-i)%26)==0)
    {
      sn[0]=0x41+i;
      break;
    }
  }

  //每一位的计算都用到了第一位,然后用倒叙存储
  for(i=1,j=lastCharIndex-1;
    j>=5;
    i++,j--)
    sn[i]=((name[j]*sn[0])%26) + 0x41;
  lenOfSerial = lastCharIndex - 5 + 1;
  sn[lenOfSerial]='\0';

  printf("The serial number is %s .\r\n", sn);
  getch();
  return 0;
}
  代码的倒数第三句,getch();在编译时提示错误。

编译器我用的是《C—Free》

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
需要包含头文件

#include <curses.h> //linux 下

#include <conio.h> //window 平台
2011-7-8 09:35
0
雪    币: 132
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
gerchar() 少了个 r
2011-7-8 10:27
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
也有getch函数。
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回, getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行.
2011-7-8 11:12
0
雪    币: 449
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
应该是 _getch()吧,而且应该include conio.h
2011-7-8 12:43
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
非常感谢你们的回答,我先编译一下试试看
2011-7-8 14:29
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
各位大侠,还是不行啊。修改头文件以后出现6个错误。
2011-7-8 14:39
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我在winxp+vc6下加上

#include <conio.h> //window 平台

就可以编译运行了。
2011-7-8 14:50
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
为什么我的编译器就不能通过呢???
我用的是C-Free
2011-7-8 14:56
0
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我从绿盟下了个C-Free 3.5.2 试了下,是可以运行的。
2011-7-8 15:55
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我在重装一下编译器试试
2011-7-8 18:58
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
还是不行啊,  “getch();”还是这句错误,到底在源码中该如何书写呢???
2011-7-8 19:31
0
雪    币: 26
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
函数的用法,我确定没错!
getchar的用法在主函数结尾,return 0;之前加上getchar();
为什么编译还是出错,谁能告诉我答案啊!!!
气死人了,今天不弄好它,不睡觉!
郁闷中... ...
2011-7-8 19:39
0
游客
登录 | 注册 方可回帖
返回
//