跪求高人帮忙做一下 小弟以高分做报答 这是C语言的题目 会做的帮下忙哈 急急急急急急~~~~~~~~~~~~~~~~~~~~
说明:以下作业题是第3-4次上机练习中的编程题,要求每道编程题单独写一个.c文件,可以用题号命名。3个.c文件打成一个rar压缩包,在截止日期前提交到作业系统中(其他实验...
说明:以下作业题是第3-4次上机练习中的编程题,要求每道编程题单独写一个.c文件,可以用题号命名。3个.c文件打成一个rar压缩包,在截止日期前提交到作业系统中(其他实验程序不用提交)。
1、给定程序中函数fun的功能是:输出M行M列的整数方阵,然后求两条对角线上的元素之和,要求返回此和数。同时,在函数中需完整输出整数方阵和对角线上元素之和。因此,编写程序时需注意方阵元素的排列顺序和求对角线元素之和时不要漏项。
注意:切勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的语句。
程序如下:
#include <conio.h>
#include <stdio.h>
#define M 5
int fun(int n,int xx[M][M]
{
……
}
main()
{int aa[M][M] = {{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
printf(“\nThe sum of all elements on 2 diagnals is %d.“,fun(M,aa));
}
2、使用递归方法求解斐波那契数列的前30项。其中,斐波那契数列由以下公式定义:
0 (n=0)
Fib(n)= 1 (n=1)
Fib(n-2)+Fib(n-1) (n>1)
从上述公式可以看出:斐波那契数列的第1个数是0,第2个数是1,从第3个数开始,以后每个数都是前两个数之和(请用递归法和递推法两种方法编程)。
3、使用指针编写程序,从键盘输入一个字符串,然后统计字符串中字符的个数。
做好的请发到我的邮箱84131851@163.com 谢谢 展开
1、给定程序中函数fun的功能是:输出M行M列的整数方阵,然后求两条对角线上的元素之和,要求返回此和数。同时,在函数中需完整输出整数方阵和对角线上元素之和。因此,编写程序时需注意方阵元素的排列顺序和求对角线元素之和时不要漏项。
注意:切勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的语句。
程序如下:
#include <conio.h>
#include <stdio.h>
#define M 5
int fun(int n,int xx[M][M]
{
……
}
main()
{int aa[M][M] = {{1,2,3,4,5},{4,3,2,1,0},{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
printf(“\nThe sum of all elements on 2 diagnals is %d.“,fun(M,aa));
}
2、使用递归方法求解斐波那契数列的前30项。其中,斐波那契数列由以下公式定义:
0 (n=0)
Fib(n)= 1 (n=1)
Fib(n-2)+Fib(n-1) (n>1)
从上述公式可以看出:斐波那契数列的第1个数是0,第2个数是1,从第3个数开始,以后每个数都是前两个数之和(请用递归法和递推法两种方法编程)。
3、使用指针编写程序,从键盘输入一个字符串,然后统计字符串中字符的个数。
做好的请发到我的邮箱84131851@163.com 谢谢 展开
2个回答
展开全部
题一答案:
int fun(int n,int xx[M][M]
{
int i,j,sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t",xx[i][j]);
if(i==j||i==n-j)
sum+=xx[i][j];
}
printf("\n");
}
return sum;
}
题二:递归法
int Fib(int n)
{
if(n==0||n==1)
return n;
else
{
return Fib(n-2)+Fib(n-1);
}
}
递推法:
int Fib(int n)
{
int i,sum1,sum2,sum;
sum1=0;
sum2=1;
if(n==0||n==1)
return n;
else
{
for(i=0;i<n-1;i++)
{
sum=sum1+sum2;
sum1=sum2;
sum2=sum;
}
return sum;
}
}
题3:
#include "stdafx.h"
#include<stdio.h>
#include<memory.h>
void main(int argc, char* argv[])
{
char buf[1024];
memset(buf,0,1024);
printf("please input string:");
scanf("%s",buf);
for(int i=0;i<1024;i++)
{
if(buf[i]==0)
{
printf("the number is:%d\n",i);
return;
}
}
}
int fun(int n,int xx[M][M]
{
int i,j,sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t",xx[i][j]);
if(i==j||i==n-j)
sum+=xx[i][j];
}
printf("\n");
}
return sum;
}
题二:递归法
int Fib(int n)
{
if(n==0||n==1)
return n;
else
{
return Fib(n-2)+Fib(n-1);
}
}
递推法:
int Fib(int n)
{
int i,sum1,sum2,sum;
sum1=0;
sum2=1;
if(n==0||n==1)
return n;
else
{
for(i=0;i<n-1;i++)
{
sum=sum1+sum2;
sum1=sum2;
sum2=sum;
}
return sum;
}
}
题3:
#include "stdafx.h"
#include<stdio.h>
#include<memory.h>
void main(int argc, char* argv[])
{
char buf[1024];
memset(buf,0,1024);
printf("please input string:");
scanf("%s",buf);
for(int i=0;i<1024;i++)
{
if(buf[i]==0)
{
printf("the number is:%d\n",i);
return;
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-12-12
展开全部
请问楼上题2的main呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询