Problem Description
potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。
“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。
“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。
嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。
说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out!
由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪...
面试那天,刚好来了m*n个MM,站成一个m*n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。
Input
输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。
Output
对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。
note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。
Sample Input
2 3
1 4 -3
-7 3 0
Sample Output
2 1 -7
#include <stdio.h>
int f(int b)
{
if(b>0)return b;
else return -b;
}
int main(int argc, char *argv[])
{
__int64 max,i,j,x,y,n,m,a[100][100];
while(scanf("%I64d%I64d",&n,&m)!=EOF)
{
scanf("%I64d",&a[0][0]);
max=a[0][0];
for(i=0;i<m;i++)
{
for(i==0?j=1:j=0;j<n;j++)
{
scanf("%I64d",&a[i][j]);
if(f(max)<f(a[i][j]))
{
max=a[i][j];
x=i,y=j;
}
}
}
printf("%d %d %d\n",x+1,y+1,a[x+1][y+1]);
}
return 0;
}
问题有一些,主要是变量类型用得不匹配,另外,最后输出也有点问题,看注释。
#include <stdio.h>为什么scanf()先输m和先输n结果会不一样
追答这个是按照你下面的两层for循环的意义决定的,外层i处理的是行,里层j处理的是列,a[i][j]这种表达方式,i就是行,j就是列。
那不是的,while百分百对,就是这么写的
追答x=i,y=j;这个中间是个逗号吧
本回答被网友采纳C语言菜鸟级问题,本人新手,编程不会,请高手帮我看看下面哪里出了问题...
1.每个程序必须有一个主函数:main()(这是程序的入口,即你运行程序的时候,它先从这个函数开始执行,这句话希望能对你有所帮助)2.也是新手的通病,即是参数的问题,即函数的传参,对于刚接触两个函数的新手俩说,真是纠结的要死,我要告诉你,传参的时候,传的一个参数的是一个值,别想太多...
我是c语言小白,问问大神帮我看看编写的简单程序这哪里出错了?_百度...
表面上看没有任何问题,但是实际上输入代码时有没有注意过全角,半角方面的问题:同样的代码:#include<stdio.h> 输入代码时忽视输入法隐藏的错误 表面上看都是一样的代码,但是第二行就有错误,是全角和半角的不同,再看:正确编译运行 所以你的代码没有任何问题,但是要注意代码输入的方法。以前回答...
请c语言大神帮我看看程序哪里出了问题,好像是max那个函数出了问题可是找...
include "stdio.h"struct student { int num[20]; char name[10]; float point1; float point2; float point3; double aver; };void main(){ int max(struct student stu[]); void print(struct student stu); int j; struct student p,stu[10]; ...
帮忙看一下这个C语言代码哪里出了问题?将数从小到大排序的。
include<stdio.h>void fun(int b[],int n) \/\/先定义一个fun函数,目的是将一串数从小到大排序{ int i,j; int t; for(i=0;i<=n-1;i++){ for(j=0;j<=n-i-1;j++){ if(b[j]>b[j+1]){ t=b[j]; b[j]=b[j+1]; b[j+1]=t;}} } }int main()\/\/主函数{ ...
C语言简单数学问题,求大神,详细解析,给出分析步骤
一直到哥哥追上弟弟,所以实际上就是计算哥哥啥时候追上弟弟。哥哥追上弟弟需要的时间,实际上是追及问题。两个人距离差为 X*M ,速度差为 Y-X 所以哥哥追上弟弟耗时为 X*M*(Y-X)所以狗就是跑了 Z*X*M*(Y-X)如果是C语言程序题的话,应该不会有 X>Y 这种不合题意的情况吧。。。
C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因..
第一项的结果不正确。第二项和第四项结果等同都是指向指针的指针操作。可以将二维数组看成一个双重指针,第一个中括号是一个一重指针。比如说a[n][m]中a[0]是一个指向a[0][m]数组首位a[0][0]的指针,而a则是指向指针数组*a[n]的首位a[0]的指针。这样我们来看B选项,*(a+2)表示一...
一个简单的c语言程序(组成10元的方法),各位高手帮忙看看错哪儿了!
7,8,9 元应该也有问题吧? for循环如果后面不加大括号{}的话,他只循环后面的第一条语句 你的for(z) 循环大括号忘加了吧,改成这样 for (z = 0; z <= 2; z++){ a = x + 2 * y + 5 * z;if (a == sum){ printf("%d个一元,%d个两元,%d个五元可以组成%d元\\n", x...
有一个c语言的问题不会,求大神指教!!
break是跳出当前的包含 break的最近的一层循环。循环就是,因为a=1,已经赋值了,所以for的第一个没有,只写了一个分号,表示从a=1 开始,进行循环体的内容,如果a是偶数,则跳出for循环。如果不是偶数,则b=b+a,然后a= a+1,继续循环,这一次,a是偶数了,跳出for循环,所以后面那个b+=a就...
求会C语言的大神看看哪出错了题目:,输入一数,为正求平方根,为负求绝对...
你的这个语句应该是这样的:if(x>0){a=sqrt(x);printf("%f",a);}else if(x<0){a=abs(x);printf("%f,a");}else printf("Bey,Bey");如果if else 语句下面没有带括号包含语句体的话,那么默认执行完if 判断后只执行紧挨着的第一个语句,然后顺序执行下一条语句。也就是说,如果你的if...
一个C语言的问题,求大神解答原因!
1、sub1中的变量a,b是其所在文件中定义的,其中a是静态全局变量,b是全局变量 a会默认初始化为0,因此第一次执行sub1()时输出结果中a=0+2=2, b=3+3=6。sub2中的变量a是其所在文件中定义的静态全局变量,因为与sub1()所处不同文件,因此变量a是不同的;而变量b是与另一个文件共享的全局...