做了一道题目,但是会出错.不知道应该怎么改,# include int main (){\x05int a[1],b[1],i,j;int max;\x05 scanf("%d,%d",&i,&j);\x05max=a[1];\x05if(max>b[1]) max=a[1];\x05printf("Max =%d",a[1]);\x05else \x05\x05if(max==b[1]) max=a[1];max=b[
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/20 05:52:39
![做了一道题目,但是会出错.不知道应该怎么改,# include int main (){\x05int a[1],b[1],i,j;int max;\x05 scanf(](/uploads/image/z/14456499-51-9.jpg?t=%E5%81%9A%E4%BA%86%E4%B8%80%E9%81%93%E9%A2%98%E7%9B%AE%2C%E4%BD%86%E6%98%AF%E4%BC%9A%E5%87%BA%E9%94%99.%E4%B8%8D%E7%9F%A5%E9%81%93%E5%BA%94%E8%AF%A5%E6%80%8E%E4%B9%88%E6%94%B9%2C%23+include+int+main+%28%29%7B%5Cx05int+a%5B1%5D%2Cb%5B1%5D%2Ci%2Cj%3Bint+max%3B%5Cx05+scanf%28%22%25d%2C%25d%22%2C%26i%2C%26j%29%3B%5Cx05max%3Da%5B1%5D%3B%5Cx05if%28max%3Eb%5B1%5D%29+max%3Da%5B1%5D%3B%5Cx05printf%28%22Max+%3D%25d%22%2Ca%5B1%5D%29%3B%5Cx05else+%5Cx05%5Cx05if%28max%3D%3Db%5B1%5D%29+max%3Da%5B1%5D%3Bmax%3Db%5B)
做了一道题目,但是会出错.不知道应该怎么改,# include int main (){\x05int a[1],b[1],i,j;int max;\x05 scanf("%d,%d",&i,&j);\x05max=a[1];\x05if(max>b[1]) max=a[1];\x05printf("Max =%d",a[1]);\x05else \x05\x05if(max==b[1]) max=a[1];max=b[
做了一道题目,但是会出错.不知道应该怎么改,
# include
int main ()
{
\x05int a[1],b[1],i,j;
int max;
\x05 scanf("%d,%d",&i,&j);
\x05max=a[1];
\x05if(max>b[1]) max=a[1];
\x05printf("Max =%d",a[1]);
\x05else
\x05\x05if(max==b[1]) max=a[1];max=b[1];
\x05printf("Max=%d=%d",a[1],b[1]);
\x05else max=b[1];
\x05printf("%d",b[1]);
\x05printf("\n");
\x05return 0;
}
做了一道题目,但是会出错.不知道应该怎么改,# include int main (){\x05int a[1],b[1],i,j;int max;\x05 scanf("%d,%d",&i,&j);\x05max=a[1];\x05if(max>b[1]) max=a[1];\x05printf("Max =%d",a[1]);\x05else \x05\x05if(max==b[1]) max=a[1];max=b[
你没弄懂数组,你定义的a[1],中间的1在定义时是数组的长度.而在使用时,数组是在0开的计数的,比如你定义的int a[1]说明长度是1.数组时从零开始计数的而不是从1开始,所以数组a[]里面的元素只有a[0],二不是a[1],如果定义的int a[2],那a[]里面的元素就是a[0],a[1];
下面你的主函数中
a[1],b[1]中的元素只有a[0]和b[0],而没有a[1]和b[1],所以你在赋值时a[1],b[1]中的都是随机数,结果当然不对.一般我觉得是编译不过的哈.不是else 和if位置的问题,而是你把if 和else 用混了.你看你第一个if和最近的else 匹配 ,而且一个判断语句如果执行语句超过一句就要用{}括起来,不然计算机只会执行一句.把所有的a[1],b[1],改成a[0]
b[0].再说说你是想求两数的最大值吧.其实不用这么多的.你看你输入的是i和j,用的却是a[]和b[]数组,可是你却没有给这个数组赋值,没赋值怎么比较大小.而且你也不需要用两个数组,定义一个a[2]就好了,一个赋值给a[0],一个赋值给a[2].可以不定义数组都是可以实现的,这些都是程序简洁性的问题,多编编程就好了.关键是概念性的东西不能错.我帮你稍微改下,你参考参考.简洁性的问题要靠自己多编程的.
# include
int main ()
{
\x05int a[1],b[1],i,j;
int max;
\x05scanf("%d,%d",&i,&j);
a[0]=i;
b[0]=j;
\x05max=a[0];
\x05if(max>=b[0])
{
\x05 printf("Max =%d",a[0]);
}
\x05else
{
max=b[0];
\x05 printf("Max=%d“,b[0]);
}
\x05printf("\n");
\x05return 0;
}
a,b是数组,长度只有1;因此里面的元素只有a[0],b[0];不存在a[1],b[1]
且使用a,b数组之前没有初始化,对其赋值。那他系统为什么只说了 else 没有匹配 if 啊那就是无法编译咯。 if(max>b[1]) max=a[1]; ----- if 到此结束; printf("Max =%d",a[1]); else --- 这个else 没有对应的if ...
全部展开
a,b是数组,长度只有1;因此里面的元素只有a[0],b[0];不存在a[1],b[1]
且使用a,b数组之前没有初始化,对其赋值。
收起