急求C语言程序设计答案!题目如下(两道题)!!重金答谢!回答运行正确可加赏金。在线等高手江湖救急!

1、以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
  #define N 3
  #define M 3
  select(int a[N][M],int *n)
  { int i,j,row=1,colum=1;
   for(i=0;i<N;i++)
   for(j=0;j<M;j++)
   if(a[j]>a[row][colum]){row=i;colum=j;}
   *n= 【 】;
   return 【 】;
  }
  main()
  { int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
   max=select(a,&n);
   printf("max=%d,line=%d\n",max,n);
  }

2、编程题:输出小于1000的最大5个素数
感谢各位高手鼎力相助!!但是这么多人只能选择一个,我也只能随便挑一个。所以只能抱歉了

第一题:首先值得说明的是,你的题目有点儿问题应该是: if(a[i][j]>a[row][colum]){row=i;colum=j;}
然后,答案是:row
a[row][colum]

第二题:素数的问题,也就是质数,解题思路就是,如果这个数不能够被2~这个数的开根号整除的话,那么这个数就是素数。
【苍狼涯】的答案是正确的。
我修改一下。
如下:
#include<stdio.h>
#include<math.h>
bool IsPrime(int x);
int main()
{
int num[5]={0,0,0,0,0};

int temp=0;
for(int i=1000;i>=2;i--)
{
if (IsPrime(i))
{
num[temp]=i;
temp++;
if (temp==5)
break;
}
}

printf("结果如下:\n");
for (int k=0;k<5;k++)
{
printf("%d\t",num[k]);
}
printf("\n");
return 0;
}
bool IsPrime(int x)
{
for(int i = 2; i <= (int)sqrt(x); i++)
{
if((x % i) == 0)
return false;
}

return true;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-11
#include <stdio.h>
#define N 3
#define M 3

int select(int a[][M],int *n) {
int i,j,row = 1,colum = 1;
for(i = 0;i < N;i++)
for(j = 0;j < M;j++)
if(a[i][j] > a[row][colum]) {
row = i;
colum = j;
}
*n = row;
return a[row][colum];
}
int main() {
int a[N][M] = {9,11,23,6,1,15,9,17,20},max,n;
max = select(a,&n);
printf("max = %d,line = %d\n",max,n);
return 0;
}

/*
997 991 983 977 971
请按任意键继续. . .
*/
#include <stdio.h>

int main() {
int i,j,count = 0,flag;
for(i = 999; i > 0; i -= 2) {
flag = 1;
for(j = 2; j * j <= i; ++j) {
if(i % j == 0) {
flag = 0;
break;
}
}
if(flag == 1) {
count++;
printf("%d ",i);
}
if(count == 5) break;
}
printf("\n");
return 0;
}
第2个回答  2012-05-11
第一题:仅填空不行啊,题干里都有错。
#include<stdio.h>
#define N 3
#define M 3
int select(int a[N][M],int *n)
{
int i,j,row=0,colum=0;
int max = a[row][colum];
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
if(a[i][j] > max)
{
max = a[i][j];
*n = i;
}
}
}
return max;
}
void main()
{
int a[N][M]={9,11,23,6,1,15,9,17,20}, max, n;
max = select(a, &n);
printf("max=%d,line=%d\n",max,n);
}
第二题:
#include<stdio.h>
#include<math.h>
void main()
{
int i, j, count = 0;
for(i = 1000; i > 1; i--)
{
for(j = 2; j < sqrt((double)i); j++)
{
if(i % j == 0)
break;
}
if(j >= sqrt((double)i))
{
printf("%5d",i);
count++;
}
if(count == 5)
break;
}
printf("\n");
}
第3个回答  2012-05-11
*n= row;
return a[row][colum];追问

这答案跟网上的答案一样啊!网上那道题跟这我的这道题有一点不一样的,运行不了

追答

你的题目就有错,怎么能运行。我改成这样能运行了,行么?

#include
#define N 3
#define M 3
int select(int a[N][M],int *n)
{
int i,j,row=0,colum=0;
for(i=0; ia[row][colum])
{
row=i;
colum=j;
}
*n= row;
return a[row][colum];
}
main()
{
int a[N][M]= {9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}

第4个回答  2012-05-11
哥们儿,上面那么多答案各有各的特色,我正对第二题发表下我的观点。只说明一点,素数你知道不???就好似只能被1和他本身整除的数。。。
第5个回答  2012-05-11

你的程序可能存在一点小问题,现改正如下,运行结果如图