火速求解以下代码出现的问题

mengdejietiancai 2011-04-06 03:54:25
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int k0,k1;
int encryption(char *p,int len){
int count;
int a;
char j;
while(count<len){
a=atoi(p)-65;
j=(k0+a*k1)%26;
p++;
printf("%s",j);
count++;
}
return 0;
}
int chance(char *p,int len){
int sum,i,l,count;
float chance[26];
while(count<len){
sum++;
l=atoi(p)-65;
chance[l]++;
p++;
count++;
}
for(i=0;i<26;i++){
chance[i]=chance[i]/sum;
printf("%s的出现概率是%d",i+65,chance[i]);
}
return 0;
}
int prime(){
if(k1%2==0){
return 0;}
if(k1%13==0){
return 0;}
else{
return 1;}
}
int main(){
char a;
int i,len;
printf("请给k1赋值,k1必须与26互素\n");
scanf("%d",&k1);
i=prime();
if(i=1){
printf("请给k0赋值\n");
scanf("%d",&k1);
printf("请输入明文,无标点无空格\n");
scanf("%s",&a);
len=strlen(&a);
encryption(&a,len);
chance(&a,len);
}
return 0;
system("pause");
}
出现的问题是访问冲突,我估计是越界或者什么的,求高手指点!!!!!
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengdejietiancai 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 c395565746c 的回复:]
printf("%s",j);
改为
printf("%c",j);
[/Quote]


我想问一下,就是如果我的一个字符型指针指向一个字符串里的一个字符,我想把这个字符转换成它的ASCII码的形式再赋值给一个整型,请问怎么做?
CppCoder 2011-04-06
  • 打赏
  • 举报
回复
这样写运行不会溢出,不知道是不是楼主要的结果

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

int k0,k1;
int encryption(char *p,int len){
int count = 0;
int a;
char j;
while(count<len){
a=int(*p)-65;
j=(k0+a*k1)%26;
p++;
printf("%c",j);
count++;
}
return 0;
}

int chance(char *p,int len){
int sum,i,l,count = 0;
float chance[26];
while(count<len){
sum++;
l=int(*p)-65;
chance[l]++;
p++;
count++;
}
for(i=0;i<26;i++){
chance[i]=chance[i]/sum;
printf("%c的出现概率是%d",char(i+65),chance[i]);
}
return 0;
}

int prime()
{
if(k1%2==0){
return 0;}
if(k1%13==0){
return 0;}
else{
return 1;}
}
int main(){
char a;
int i,len;
printf("请给k1赋值,k1必须与26互素\n");
scanf("%d",&k1);
i=prime();
if(i=1){
printf("请给k0赋值\n");
scanf("%d",&k1);
printf("请输入明文,无标点无空格\n");
scanf("%s",&a);
len=strlen(&a);
encryption(&a,len);
chance(&a,len);
}
system("pause");
return 0;
}
pathuang68 2011-04-06
  • 打赏
  • 举报
回复
1. count没有初始化

2. 类似scanf("%s",&a);要改成scanf("%c",&a);
「已注销」 2011-04-06
  • 打赏
  • 举报
回复
printf("%s的出现概率是%d",i+65,chance[i]);
改为
printf("%c的出现概率是%d",i+65,chance[i]);
「已注销」 2011-04-06
  • 打赏
  • 举报
回复
printf("%s",j);
改为
printf("%c",j);

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧