C语言求助

1. 编写程序计算下列表达式:s=1!+2!+3!+4!
2.找出一个二维数组的鞍点,即该位置上的元素在该行最大,在该列最小。也可能没有鞍点。要求:
(1)整个程序由两个函数组成,一个为主函数,一个为求鞍点的函数;
(2)找鞍点函数的函数头为 int Andian(int b[ ][4],int n),该函数的返回值为所找到鞍点所在位置的数组元素值(对该元素的行列号不予考虑,也不返回);
(3)主函数中输出鞍点所在位置的数组元素值。主函数的部分语句如下:
int num,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};//定义整型变量num,并对数组赋初值
num=Andian(a,3); //主函数中的函数调用语句,其中实参3表示该二维数的行数
3.判断长整型s各位上的是否都是素数。
(1)编写函数int prime(long s)。
函数功能:判断s的各位上的数是否都是素数。若是,函数返回值为1;否则,函数返回值为0。
(2)编写main函数。从键盘输入测试数据,调用prime函数,将判断结果输出到屏幕。
4.计算数组周边元素之和。
(1)编写函数int fun(int xx[M][N]),
函数功能:是计算二维数组xx周边元素之和,并通过函数值返回。
(2)编写main函数。函数功能:声明一个长度为3X4的二维数组a,用数组初始化方式将测试数据保存在数组中,输出a数组全部元素,输出格式为"%4d",调用fun函数对数组a周边元素之和,在屏幕上输出元素之和。
测试数据:0、1、2、3、4、5、6、7、8、9、10、11

第1个回答  2010-05-12
1. 编写程序计算下列表达式:s=1!+2!+3!+4!
#include<stdio.h>
int main(){
int s=0,c=1;
for(int i=1;i<=4;i++,c=1){
for(int j=1;j<=i;j++){
c=j*c;
}
s=s+c;
}
printf("%d\n",s);
return 0;
}
2.找出一个二维数组的鞍点,即该位置上的元素在该行最大,在该列最小。也可能没有鞍点。要求.......

#include<stdio.h>
int Andian(int b[][4],int n){
int max,i,j,m;
for(i=0;i<n;i++){
max=b[i][0];
for(j=1;j<n;j++){
if(b[i][j]>max){
max=b[i][j];
}
}
for(m=1;m<4;m++){
if(max>b[m][j]){
break;
}
}
if(m==4){
return max;
}
}
return -1;
}
int main(){
int num,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
num=Andian(a,3);
if(num!=-1){
printf("%d\n",num);
}
else{
printf("NO found.\n");
}
return 0;
}

3.判断长整型s各位上的是否都是素数......
#include<stdio.h>
#include<stdlib.h>
int prime(long s){
int i=0,j,m,a[100];
do{
a[i]=s%10;
s/=10;
i++;
}while(s>0);
for(j=0;j<i;j++){
for(m=2;m<=a[j]/2;m++){
if(a[j]%m==0){
return 0;
}
}
}
return 1;
}
int main(){
long a;
scanf("%ld",&a);
if(prime(a)){
printf("IS PRIME.");
}
else{
printf("IS NOT PRIME");
}
return 0;
}

4.计算数组周边元素之和......
#include<stdio.h>
#define M 3
#define N 4
int fun(int xx[M][N]){
int sum=0,i;
for(i=0;i<4;i++){
sum=sum+xx[0][i]+xx[2][i];
}
sum=sum+xx[1][0]+xx[1][3];
return sum;
}
int main(){
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
printf("%4d",a[i][j]);
}
}
printf("\nSUM:%d\n",fun(a));
return 0;
}
第2个回答  2010-05-11
1.#include<stdio.h>
int main(){
int s=0,c=1;
for(int i=1;i<=4;i++,c=1){
for(int j=1;j<=i;j++){
c=j*c;
}
s=s+c;
}
printf("%d\n",s);
return 0;
}
2.#include<stdio.h>
int Andian(int b[][4],int n){
int max,i,j,m;
for(i=0;i<n;i++){
max=b[i][0];
for(j=1;j<n;j++){
if(b[i][j]>max){
max=b[i][j];
}
}
for(m=1;m<4;m++){
if(max>b[m][j]){
break;
}
}
if(m==4){
return max;
}
}
return -1;
}
int main(){
int num,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
num=Andian(a,3);
if(num!=-1){
printf("%d\n",num);
}
else{
printf("NO found.\n");
}
return 0;
}
3.#include<stdio.h>
#include<stdlib.h>
int prime(long s){
int i=0,j,m,a[100];
do{
a[i]=s%10;
s/=10;
i++;
}while(s>0);
for(j=0;j<i;j++){
for(m=2;m<=a[j]/2;m++){
if(a[j]%m==0){
return 0;
}
}
}
return 1;
}
int main(){
long a;
scanf("%ld",&a);
if(prime(a)){
printf("IS PRIME.");
}
else{
printf("IS NOT PRIME");
}
return 0;
}
4.#include<stdio.h>
#define M 3
#define N 4
int fun(int xx[M][N]){
int sum=0,i;
for(i=0;i<4;i++){
sum=sum+xx[0][i]+xx[2][i];
}
sum=sum+xx[1][0]+xx[1][3];
return sum;
}
int main(){
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
for(int i=0;i<3;i++){
for(int j=0;j<4;j++){
printf("%4d",a[i][j]);
}
}
printf("\nSUM:%d\n",fun(a));
return 0;
}
第3个回答  2010-05-11
//1. 编写程序计算下列表达式:s=1!+2!+3!+4!
#include<stdio.h>
#include<stdlib.h>
main()
{int s=0,i,n=1;
for(i=1;i<=4;i++)
{n=n*i;
s=s+n;
}
printf("%d\n",s) ;
system("pause");
}

#include<stdio.h>
#include<stdlib.h>

int Andian(int a[3][4],int n)
{int i,j,k,x,y,max;
for(x=0;x<3;x++)
{i=0;
for(y=i+1;y<4;y++)
if(a[x][y]>a[x][i])
i=y;max=a[x][i];
for(k=0;k<3;k++)
{if(k==x)
continue;
if(max>a[k][i])
break; }
if(k==3)
return max;
}
return 0;
}

main()
{int num,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
num=Andian(a,3);
if(num!=0)
printf("%d",num);
else
printf("no!");
system("pause");
}

int prime (long s)
{int i;
while(s)
{i=s%10;
if(i==0||i==2||i==4||i==6||i==8||i==9)
return 0;
s=s/10;
}
return 1;
}

#include<stdio.h>
#include<stdlib.h>
main()

{long n;
scanf("%ld",&n);
if(prime(n)==1)
printf("全是素数");
else
printf("不全是素数");
system("pause");
}

int fun (int a[3][4])
{int i,j,s=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(i==0||i==2||j==0||j==3)
s=s+a[i][j];

return s;
}

#include<stdio.h>
#include<stdlib.h>
main()

{int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11},i,j;
for(i=0;i<3;i++,printf("\n"))
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("%d",fun(a));
system("pause");
}
第4个回答  2010-05-12
1、
#include"stdio.h"
int jiecheng(int n)
{
if(n==1||n==0)return 1;
return n*jiecheng(n-1);
}
void main()
{
int sum=0;
for(int i=1;i<5;i++)
sum+=jiecheng(i);
printf("1!+2!+3!+4!=%d\n",sum);
}

2、
#include"stdio.h"
void AnDian(int A[][4])
{
int i,j,a;
for(i=0;i<3;i++)
{
for(j=1;j<4;j++)
{
a=A[i][0];
if(a<A[i][j]) a=A[i][j];
}
for(j=1;j<4;j++)
{
int c=1;
if(a==A[i][j])
{
for(int k=0;k<3&&c;k++)
if(a>A[k][j]) c=0;
if(c)printf("有鞍点:%d\n\t 位置为:(%d,%d)\n",a,i,j);
}
}
}
}
void main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,j;
printf("这是一个3*4的矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
AnDian(a);
}

3、
#include"stdio.h"
int Prime(long s)
{
while(s)
{
int n=s%10;
for(int i=2;i<n/2;i++)
{
if(n%i==0)return 0;
}
s/=10;
}
return 1;
}
void main()
{
long s;
scanf("%l",&s);
printf("%d\n",Prime(s));
}

4、
#include"stdio.h"
const int M=3;
const int N=4;
int fun(int xx[M][N])
{
int sum=0;
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
if(i==0||j==0||i==M-1||j==N-1)
sum+=xx[i][j];
}
return sum;
}
void main()
{
int a[M][N]={0,1,2,3,4,5,6,7,8,9,10,11};
printf("Sum is :%4d\n",fun(a));
}本回答被网友采纳
第5个回答  2010-05-11
第一题:
#include"stdio.h"
int jiecheng(int n)
{
if(n==1||n==0)return 1;
return n*jiecheng(n-1);
}
void main()
{
int sum=0;
for(int i=1;i<5;i++)
sum+=jiecheng(i);
printf("1!+2!+3!+4!=%d\n",sum);
}
第二题:
#include"stdio.h"
void AnDian(int A[][4])
{
int i,j,a;
for(i=0;i<3;i++)
{
for(j=1;j<4;j++)
{
a=A[i][0];
if(a<A[i][j]) a=A[i][j];
}
for(j=1;j<4;j++)
{
int c=1;
if(a==A[i][j])
{
for(int k=0;k<3&&c;k++)
if(a>A[k][j]) c=0;
if(c)printf("有马鞍点:%d\n\t位置为:(%d,%d)\n",a,i,j);
}
}
}
}
void main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int i,j;
printf("这是一个3*4的矩阵:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
AnDian(a);
}
第三题:
#include"stdio.h"
int Prime(long s)
{
while(s)
{
int n=s%10;
for(int i=2;i<n/2;i++)
{
if(n%i==0)return 0;
}
s/=10;
}
return 1;
}
void main()
{
long s;
scanf("%l",&s);
printf("%d\n",Prime(s));
}
第四题;
#include"stdio.h"
const int M=3;
const int N=4;
int fun(int xx[M][N])
{
int sum=0;
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
if(i==0||j==0||i==M-1||j==N-1)
sum+=xx[i][j];
}
return sum;
}
void main()
{
int a[M][N]={0,1,2,3,4,5,6,7,8,9,10,11};
printf("和为:%4d\n",fun(a));
}
应该可以满足要求,请查看
相似回答