为什么该内存不能written

HQWEIEI 2010-04-09 10:42:10
#include<stdio.h>
#include<string.h>
char mycreat(char c);
int equ(char a,char b);
main()
{
char a[100]="0",b[100]="0";
int n=0;
printf("A\n");
a[0]=mycreat(a[0]);
printf("B\n");
b[0]=mycreat(b[0]);
if(a[0]<b[0])
{
printf("A<B\n");
}
else if(a[0]>b[0])

{
printf("A>B\n");
}
else
{
n=equ(a[0],b[0]);
}
if(n==-1)
{
printf("A<B\n");
}
if(n==1)
{
printf("A>B\n");
}
}
char mycreat(char c[])
{
int i=-1;
do
{
i++;
scanf("%c",c[i]); 执行到第三次循环时出现该内存不能written,为什么???
}
while(c[i]!='\n'&&i<100);
return c[0];
}
int equ(char a[],char b[])
{
int i=0,k=0,c[50]={0},max=-1,t=0,la_len=0,lb_len=0,n=0;
la_len=strlen(a);
lb_len=strlen(b);
while(i<=la_len||i<=lb_len)
{
k=0;
while(a[i]==b[i])
{
k++;
i++;
}
c[t]=k;
t++;
i++;

}
while(c[t])
{
if(c[0]>=c[t+1])
{
max=c[0];
}
else
{
max=c[t];
}
t++;
}
if(max==c[0])
{
if(a[max]<b[max])
{
n=-1;
}
else
{
n=1;
}

}
else
{
n=1;
}
return n;
}
...全文
159 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
HQWEIEI 2010-04-09
  • 打赏
  • 举报
回复
可以了
a7182388 2010-04-09
  • 打赏
  • 举报
回复
大概给你改了下,你试试!!
#include<stdio.h>
#include<string.h>
char mycreat(char c[]);
int equ(char a[],char b[]);
main()
{
char a[100]="0",b[100]="0";
int n=0;
printf("A\n");
a[0]=mycreat(a);
printf("B\n");
b[0]=mycreat(b);
if(a[0]<b[0])
{
printf("A<B\n");
}
else if(a[0]>b[0])

{
printf("A>B\n");
}
else
{
n=equ(a[0],b[0]);
}
if(n==-1)
{
printf("A<B\n");
}
if(n==1)
{
printf("A>B\n");
}
}
char mycreat(char c[])
{
int i=-1;
do
{
i++;
scanf("%c",&c[i]); 执行到第三次循环时出现该内存不能written,为什么???
}
while(c[i]!='\n'&&i<100);
return c[0];
}
int equ(char a[],char b[])
{
int i=0,k=0,c[50]={0},max=-1,t=0,la_len=0,lb_len=0,n=0;
la_len=strlen(a);//这里也是个危险,用strlen时,必须保证字符串以'\0'结尾,不然后果很严重!!
lb_len=strlen(b);//同上!
while(i<=la_len||i<=lb_len)
{
k=0;
while(a[i]==b[i])
{
k++;
i++;
}
c[t]=k;
t++;
i++;

}
while(c[t])
{
if(c[0]>=c[t+1])
{
max=c[0];
}
else
{
max=c[t];
}
t++;
}
if(max==c[0])
{
if(a[max]<b[max])
{
n=-1;
}
else
{
n=1;
}

}
else
{
n=1;
}
return n;
}
a7182388 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hqweiei 的回复:]

不用不好意思,我还要多谢您的提点,顺便问一下如果加入长度,系统会报错的
[/Quote]

不好意思,我刚才愚昧就是这点,不要加长度,汗~~,我的错!!
HQWEIEI 2010-04-09
  • 打赏
  • 举报
回复
不用不好意思,我还要多谢您的提点,顺便问一下如果加入长度,系统会报错的
ccnyou 2010-04-09
  • 打赏
  • 举报
回复
顶楼上的,我没什么好说了
a7182388 2010-04-09
  • 打赏
  • 举报
回复
愚昧了下,不好意思!!

说错了点!!嘿嘿!!太激动了!!
HQWEIEI 2010-04-09
  • 打赏
  • 举报
回复
那怎么改
huanmie_09 2010-04-09
  • 打赏
  • 举报
回复
上面主函数里还要改一个地方:
else
{
n=equ(a[0],b[0]);
}
--》
else
{
n=equ(a,b);
}
a7182388 2010-04-09
  • 打赏
  • 举报
回复
把问题全部列出:
1、char mycreat(char c); char mycreat(char c[]) 这两个明显不匹配!!!
2、scanf("%c",c[i]); 这个也是个问题!!没有取地址运算符!!!
3、char mycreat(char c[])这个里面的c必须指明数组长度!!
4、int equ(char a[],char b[]);int equ(char a,char b);也是类型不匹配,并且是错的!!
huanmie_09 2010-04-09
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<string.h>

char mycreat(char c[]);
int equ(char a[],char b[]);

int main()
{
char a[100] = "0", b[100]="0";
int n=0;
printf("A\n");
a[0]=mycreat(a);
printf("B\n");
b[0]=mycreat(b);
if(a[0]<b[0])
{
printf("A<B\n");
}
else if(a[0]>b[0])
{
printf("A>B\n");
}
else
{
n=equ(a[0],b[0]);
}
if(n==-1)
{
printf("A<B\n");
}
if(n==1)
{
printf("A>B\n");
}
}

char mycreat(char c[])
{
int i=-1;
do
{
i++;
//fflush(stdin);
scanf("%c",&c[i]); //执行到第三次循环时出现该内存不能written,为什么???
} while(c[i]!='\n'&&i<100);
return c[0];
}

int equ(char a[],char b[])
{
int i=0,k=0,c[50]={0},max=-1,t=0,la_len=0,lb_len=0,n=0;
la_len=strlen(a);
lb_len=strlen(b);
while(i<=la_len||i<=lb_len)
{
k=0;
while(a[i]==b[i])
{
k++;
i++;
}
c[t]=k;
t++;
i++;
}
while(c[t])
{
if(c[0]>=c[t+1])
{
max=c[0];
}
else
{
max=c[t];
}
t++;
}
if(max==c[0])
{
if(a[max]<b[max])
{
n=-1;
}
else
{
n=1;
}
}
else
{
n=1;
}
return n;
}
HQWEIEI 2010-04-09
  • 打赏
  • 举报
回复
依然不行
a7182388 2010-04-09
  • 打赏
  • 举报
回复
scanf("%c",c[i]); 这个也是个问题!!没有取地址运算符!!!
a7182388 2010-04-09
  • 打赏
  • 举报
回复
问题有:
char mycreat(char c); char mycreat(char c[]) 这两个明显不匹配!!!
stardust20 2010-04-09
  • 打赏
  • 举报
回复
scanf("%c",c[i]);
改成
scanf("%c",&c[i]);
昵称很不好取 2010-04-09
  • 打赏
  • 举报
回复
scanf("%c",c[i]); ——> scanf("%c",&c[i]);

69,382

社区成员

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

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