两个C语言题目 帮忙解解

来源:百度知道 编辑:UC知道 时间:2024/09/21 04:37:48
1、 编写一个递归函数,返回形参n的阶乘,在主调函数中测试这个递归函数的正确性。
#include<stdio.h>
long func(unsigned int n)
{
if(n==0) return ;
else return ;
}
void main()
{
int n;
printf("请输入非负数n:");
scanf("%d", &n);
if(n<0) printf("输入错误。\n");
else printf("%d的阶乘为%ld。\n", n, );
}

2、一个字符串文本中可能包含多个圆括号对,例如:adfd(siog(js)dsafs)d。请编写一个函数,测试一个文本中的圆括号对是否匹配。如果一个文本的圆括号对匹配,必须满足下面的要求:(1)每一个左圆括号都有一个与之配对的右圆括号,每一个右圆括号也要有一个左圆括号与之配对,左圆括号的数量要和右圆括号的数量相等;(2)文本第一个出现的圆括号,必须是左圆括号,最后一个出现的圆括号,必须是右圆括号;(3)文本可以不出现圆括号对;(4)对于每一对嵌套的圆括号对,左圆括号都应该出现在右圆括号的前面。
#include <stdio.h>
#include <string.h>
int Check(char *str)
{
int i=0, j, len;
len = ; /*计算str所指向字符串的长度,存入n*/
for( ; j<len; j++)
{
if(str[j]=='(') i++;
else if( )
{

/*
1、 编写一个递归函数,返回形参n的阶乘,在主调函数中测试这个递归函数的正确性。
*/
#include<stdio.h>
long func(unsigned int n)
{
if(n==0) return 1;
else return n*func(n-1);
}
void main()
{
int n;
printf("请输入非负数n:");
scanf("%d", &n);
if(n<0) printf("输入错误。\n");
else printf("%d的阶乘为%ld。\n", n, func(n));
}

/*
2、一个字符串文本中可能包含多个圆括号对,例如:adfd(siog(js)dsafs)d。请编写一个函数,测试一个文本中的圆括号对是否匹配。如果一个文本的圆括号对匹配,必须满足下面的要求:(1)每一个左圆括号都有一个与之配对的右圆括号,每一个右圆括号也要有一个左圆括号与之配对,左圆括号的数量要和右圆括号的数量相等;(2)文本第一个出现的圆括号,必须是左圆括号,最后一个出现的圆括号,必须是右圆括号;(3)文本可以不出现圆括号对;(4)对于每一对嵌套的圆括号对,左圆括号都应该出现在右圆括号的前面。
*/
#include <stdio.h>
#include <string.h>
int Check(char *str)
{
int i=0, j, len;
len = strlen(str); /*计算str所指向字符串的长度,存入n*/
for(j=0 ; j<len; j++)
{
if(str[j]=='(') i++;
else if(str[j]==')')
{
i--;