求助!!!!!昨天的编程题,有一个warnings, 高手看一下,会不会给分啊

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:10:46
我把str=strlen(xx[i]);放在了{}大括号的外面,所以有个格式警告,但是可以运行出结果。不知道会怎么给分啊?
{
uninsigned int val;
int i,j;
for(i=0;i<maxline;i++)
str=strlen(xx[i]);
{
for(j=0;j<=str-1;j++)
val=(xx[i][j]*11)%256;
if((val<=32)||(val>='A'&&val<='Z'))
{
}
else
{xx[i][j]=val;
}
}
}

你这样做不行
{
uninsigned int val;
int i,j;
for(i=0;i<maxline;i++)
str=strlen(xx[i]); 大括号不包括进来的话会导致你的这个循环先执行“maxline”次,也就是str被连续赋值maxline次,将等于最后行的字符个数,然后下边的str就不变了,所以大括号必须把这句话包括进来
{
for(j=0;j<=str-1;j++)
val=(xx[i][j]*11)%256;
if((val<=32)||(val>='A'&&val<='Z'))
{
}
else
{xx[i][j]=val;
}
}
}

1.
for(i=0;i<;i++)
str=strlen(xx[i]);
最后,str得到的值是:strlen(xx[maxline])

2.
for(j=0;j<=str-1;j++)
val=(xx[i][j]*11)%256;
if((val<=32)||(val>='A'&&val<='Z'))
{
}
else
{xx[i][j]=val;
}

代码段1执行之后, i=maxline, 也就是说,代码段2每次都判断的是xx[maxline][j], j 的范围是(0,strlen(xx[maxline])-1)

实话告诉你吧,不想骗人

你这样做完全改变了原意,肯定没多少分,甚至有可能是0分,因为考的人太多了,没人会去仔细看你的程序,首先运行答案,如果不正确,基本就没戏了

你的这种写法语法上是半错,就是警告级别的,但逻辑上是完错!结果是完全不对的!!!!程序根本就得不到要求的结果!!真的

!!!!!
大括号外面。。。。。。。。唉!<