鱼C论坛

 找回密码
 立即注册
查看: 2332|回复: 2

麻烦大家啦

[复制链接]
发表于 2012-4-26 13:40:40 | 显示全部楼层 |阅读模式
1鱼币
麻烦帮我看看为什么有这个错误、  就是一个仿射密码的程序:
#include <stdio.h>
struct affine
{
  char letter[26];
  int num[26];
};
struct affine aff[26]={
{'a',0},{'b',1},{'c',2},{'d',3},{'e',4},{'f',5},{'g',6},{'h',7},{'i',8},{'j',9},{'k',10},{'l',11},{'m',12},{'n',13},
  {'o',14},{'p',15},{'q',16},{'r',17},{'s',18},{'t',19},{'u',20},{'v',21},{'w',22},{'x',23},{'y',24},{'z',25}
};
void main()
{
char plaintext[100],cipher[100];
int k1,k2,k,i,j,l,len=0,num=0;
int number[26];
char c;
printf("Please input plaintext and end with '#':\n");
c=getchar();
  
while(c!='#')
{
  plaintext[num]=c;
  num++;
       c=getchar();
}
plaintext[num]='\0';
len=num;
printf("The key is: \n");
scanf("%d%d",&k1,&k2);

//仿射操作
for(i=0,k=0;i<num;i++,k++)
{
  for(j=0;j<26;j++)
  {
   if(plaintext==aff[j].letter)
   {
    number[k]=(aff[j].num*k1+k2)%26;//出错的地方、
   }
  }
}
for(k=0,l=0;k<num;k++,l++)
{
  for(j=0;j<26;j++)
  {
   if(number[k]==aff[j].num)
   {
    cipher[l]=aff[j].letter;
   }
  }
}
//转换成大写字母并输出密文
printf("The cipher is :");
for(l=0;l<num;l++)
{
      cipher[l]=cipher[l]-32;
   printf("%c",cipher[l]);
}
printf("\n");
}
C:\Documents and Settings\Administrator\桌面\affine\affine.c(43) : error C2296: '*' : illegal, left operand has type 'int [26]'

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-5-1 13:52:50 | 显示全部楼层
这么长的代码,鱼币太少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-7 22:50:22 | 显示全部楼层
非常有用,谢谢了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 22:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表