【C语言新手问题】我这个程序为什么结果不对
#include<stdio.h>voidmain(){inta[3][3],i,j,n=0,s=0,x,y,q=999,p=999;for(i=0;i<3;i++){f...
#include<stdio.h>
void main()
{
int a[3][3],i,j,n=0,s=0,x,y,q=999,p=999;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);//输入9个整数
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(y=0;y<3;y++)
{
if(a[i][j]<=a[i][y] && j!=y)//先判断它是不是一行中最大的数
break;
n=y;//作为第一个条件满足的标志
}
if(n==y-1)//满足了第一个条件再判断下一个
for(x=0;x<3;x++)
{
if(a[i][j]>=a[x][j] && i!=x)//再判断他是不是一行中最小的数
break;
q=i+1;
p=j+1;
}
}
}
if(q==999 & p==999)
printf("-1");
else
printf("%d %d",q,p);
} 展开
void main()
{
int a[3][3],i,j,n=0,s=0,x,y,q=999,p=999;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);//输入9个整数
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(y=0;y<3;y++)
{
if(a[i][j]<=a[i][y] && j!=y)//先判断它是不是一行中最大的数
break;
n=y;//作为第一个条件满足的标志
}
if(n==y-1)//满足了第一个条件再判断下一个
for(x=0;x<3;x++)
{
if(a[i][j]>=a[x][j] && i!=x)//再判断他是不是一行中最小的数
break;
q=i+1;
p=j+1;
}
}
}
if(q==999 & p==999)
printf("-1");
else
printf("%d %d",q,p);
} 展开
3个回答
展开全部
你这个写的有点乱,你直接告诉我你要做什么。以上你的程序有很多问题:循环太多,我们尽量要结构化,不要多个循环然在一起,这是新手最需要注意的,我们一般都是双重循环,再多的话就是程序结构设计的有问题,你告诉我你要写一个什么程序,我会抽时间,按照你的思路给你改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(j=0; j<3; j++)
这层循环不应该出现吧
你应该先判断第i行最大的数是哪个,for(y)实现,然后是在最大的那一列遍历,通过for(x)实现,告诉我j是干啥的?
for(i)
for(0<y<3)
p=y;//找到最大的,记下列数
tmp = a[i][y];//记下临时存储的该行最大值
for(0<x<3,y)
a[x][y]....
q=x;//如果a[i][y](也就是tmp)最小,则记下行数,否则跳出循环
for(i)循环到末尾还没有找到就返回-1
呃,我没试哈,你试试,应该没错。
这层循环不应该出现吧
你应该先判断第i行最大的数是哪个,for(y)实现,然后是在最大的那一列遍历,通过for(x)实现,告诉我j是干啥的?
for(i)
for(0<y<3)
p=y;//找到最大的,记下列数
tmp = a[i][y];//记下临时存储的该行最大值
for(0<x<3,y)
a[x][y]....
q=x;//如果a[i][y](也就是tmp)最小,则记下行数,否则跳出循环
for(i)循环到末尾还没有找到就返回-1
呃,我没试哈,你试试,应该没错。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是做系统任务的,不会你的啊。sorry。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询