当前位置: 代码迷 >> C语言 >> 哪位好心的大伯大妈GGMM帮忙做考试题啊
  详细解决方案

哪位好心的大伯大妈GGMM帮忙做考试题啊

热度:358   发布时间:2008-06-05 21:03:45.0
哪位好心的大伯大妈GGMM帮忙做考试题啊

哪位好心的大伯大妈爷爷奶奶哥哥姐姐给小弟做出这4道题目啊???!!最好有注释的,只能用c语言,不能用C++。谢谢了!!!
1.编制一个自定义函数,函数的形参为字符数组s1和s2,函数功能是将字符串s1中的所有数字字符取出,存入另一字符数组s2中,使s2成为一个新的字符串,并在函数中将字符串s2输出。
2.不使用库函数,实现strlen函数的编写:形参类型为字符数组或字符串,要求统计字符串str中字符的个数。返回字符个数。函数原型为:unsigned int strlen (char *str)。
3.实现任意输入数值,建立一个单向链表,并按反向进行输出。
4.已知某数列前两项分别为2和3,其后继项根据数列最后两项的乘积,按下列规则生成:
    (1)若乘积为一位数,则该乘积即为数列的后继项;
    (2)若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的两个后继项。
    编制程序计算数列前20 项之和并输出数列中的各项(要求将数列前20项保存在数组中且不可多存)。
   (例如,数列前10项为:2,3,6,1,8,8,6,4,2,4)
搜索更多相关的解决方案: 大伯大妈  GGMM  字符  乘积  函数  

----------------解决方案--------------------------------------------------------
第1题
#include "stdio.h"
#include "string.h"
void fun(char s1[],char s2[])
{
    char s1[300],s2[300];
    int i,j=0;
    gets(s1);
    for(i=0;i<strlen(s1);i++)
        if(s1[i]>='0'&&s1[i]<='9')
            s2[j++]=s1[i];
            s2[j]='\0';
    puts(s2);
}
----------------解决方案--------------------------------------------------------
改下第1题是
#include "stdio.h"
#include "string.h"
void fun(char s1[],char s2[])
{
    int i,j=0;
    gets(s1);
    for(i=0;i<strlen(s1);i++)
        if(s1[i]>='0'&&s1[i]<='9')
            s2[j++]=s1[i];
            s2[j]='\0';
    puts(s2);
}
----------------解决方案--------------------------------------------------------
这个是第2题目
#include "stdio.h"
unsigned int strlen (char *str)
{
    
    int i=0,length=0;
    while(str[i]!=256&&str[i]!='\0')
    {
        length++;
             i++;
    }
    printf("%d\n",length);
}
----------------解决方案--------------------------------------------------------
谢谢这位大侠了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
----------------解决方案--------------------------------------------------------
程序代码:
/*******************************************************************************

    已知某数列前两项分别为2和3,其后继项根据数列最后两项的乘积,按下列规则生成:
    (1)若乘积为一位数,则该乘积即为数列的后继项;
    (2)若乘积为二位数,则该乘积的十位数字和个位数字依次作为数列的两个后继项。
    编制程序计算数列前20 项之和并输出数列中的各项(要求将数列前20项保存在数组中且
不可多存)。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``

    作一程序,不太成熟,谨作参考。

    这是第4题。

*******************************************************************************/
#include<stdio.h>
#define N 20
int main(void)
{
        int i,sum=0;
        int a[N]={2,3,0};
        for(i=0;i<N-2;i++)
        {
                a[i+2]=a[i]*a[i+1];
                if(a[i+2]>9)
                {
                        a[i+3]=a[i+2]%10;
                        a[i+2]=a[i+2]/10;
                        i++;
                }
        }
        for(i=0;i<N;sum+=a[i],i++)
                printf("%2d",a[i]);
        printf("\n%d\n",sum);

        getch();
}



----------------解决方案--------------------------------------------------------
程序代码:
/*******************************************************************************

        这是第一题的变异,呵,作着玩儿的,谨作参考。

*******************************************************************************/
#include<stdio.h>
void x(char a[])
{
        int i=0,j;
        puts(a);
        while(a[i])
        {
                if(a[i]<'0'||a[i]>'9')
                {
                        j=i;
                        while(a[j])
                        {
                                a[j]=a[j+1];
                                j++;
                        }
                        i--;
                }
                i++;
        }
        puts(a);

}
void main(void)
{
        char a[100];
        gets(a);
        x(a);
        getch();
}

----------------解决方案--------------------------------------------------------
这是第4题
#include "stdio.h"
void main()
{
    int a[20]={2,3},i=0,k;
    while(i<20)
    {
        if((a[i]*a[i+1])/10==0)
        {
            a[i+2]=(a[i]*a[i+1]);
            i++;
        }
        else {
               a[i+2]=((a[i]*a[i+1])/10);
               a[i+3]=((a[i]*a[i+1])%10);
               i=i+2;
        }
    }
    for(i=0;i<20;i++)
    printf(" %d",a[i]);
    
}
----------------解决方案--------------------------------------------------------
  相关解决方案