gyCai 发表于 2006-5-1 22:26

第一道题:我是用栈实现的。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct snode{
        char data;
        struct snode * next;
}snode;

typedef struct{
        int len;
        snode * top;
}stack;

void ins(stack * s){
        s->top=NULL;s->len=0;
}

int push(stack * s, char e){
        snode *p;
        p=(snode * )malloc(sizeof(snode));
        if(!p) return(-1);
        p->data=e;p->next=s->top;
        s->top=p;s->len++;
        return(0);
}

int pop(stack *s, char *e){
        snode *p;
        if(s->top==NULL) return(-1);
        p=s->top; *e=p->data;
        s->top=p->next; s->len++;
        return(0);
}

void main()
{
        char str1,str2,str3;
        int i=0;
        stack s;
        ins(&s);
        gets(str1);
        gets(str2);
                     strcpy(str3,str1);
        strcat(str3,str2);
                     puts(str1);
                     puts(str2);
        while(str3!='\0')
        {
                if(push(&s,str3)==-1){
                        printf("error\n");
                        return;
                }
                i++;
        }
        while(pop(&s,&str3)!=-1)
        {
                printf("%c",str3);
                i++;
        }
}

[ 本帖最后由 gyCai 于 2006-5-2 00:48 编辑 ]

gyCai 发表于 2006-5-1 22:27

第二道题:
#include<stdio.h>
void ss(int data[],int n);
void main()
{
        int d;
        int c;
        for(c=0;c<10;c++)
                scanf("%d",&d);
    ss(d,c);
    for(c=0;c<10;c++)
        printf("%d\n",d);

}

void ss(int data[],int n)
{
        int i,j,k,e;
        for(i=0;i<n-1;i++)
        {
                k=i;
                for(j=i+1;j<n;j++)
                        if(data<data)
                                k=j;
                        if(k!=i)
                        {
                                e=data;
                                data=data;
                                data=e;
                        }
        }
}

gyCai 发表于 2006-5-1 22:29

至于第三和第四道题,应该不用做了吧?
记得书上有。

gyCai 发表于 2006-5-1 22:32

版主同志,怎么帖子稍微长那么一点儿,后面的字体就会变啊?

xyqguo 发表于 2006-5-1 23:19

多谢gyCai 大哥   你简直是我们c语言盲的救星
明天的太阳 比毛主席还要毛泽东啊
谢谢   
我的再生父母啊

powerwind 发表于 2006-5-1 23:32

对最后一题有兴趣!

xyqguo 发表于 2006-5-1 23:32

能顺便告诉下第4题在第几页抄吗??????????????
实在是找不到啊

powerwind 发表于 2006-5-1 23:44

https://www.gdutbbs.com/viewthread.php?tid=59075&highlight=

gyCai 发表于 2006-5-2 00:19

第四道题:
#include<stdio.h>
void main()
{
        int i,j;
        for(i=1;i<=9;i++)
        {
                for(j=1;j<=i;j++)
                        printf("%d*%d=%d\t",j,i,j*i);
                printf("\n");
        }
}

gyCai 发表于 2006-5-2 00:49

呵呵,同志,你热情过度了,我也是建院的。

xyqguo 发表于 2006-5-2 09:09

老哥!!!你没骗我吧!!!
建院的C语言如此厉害!!!
小弟佩服得五体投地再五体投地

xyqguo 发表于 2006-5-2 23:18

谢谢咯   各位大哥

iptton 发表于 2006-5-5 23:53

路过。。。。。。。。。。。。。

中国为什么总是让学生学不想学的东东……

andylan 发表于 2006-5-6 01:17

第一题没必要用栈来实现吧~~~随便写个子程序给你吧~~是高位开始输出的
aa(longx)                           
{ int indiv;
            while(x>0)
             {
indiv=x%10;
               x=x/10;
               printf("%d",indiv);
}
}

gyCai 发表于 2006-5-6 01:45

这样的话,两个数合并以后就要用atoi()转换,也可以的。

[ 本帖最后由 gyCai 于 2006-5-6 03:18 编辑 ]

andylan 发表于 2006-5-6 16:03

不用啊。结果就先aa(b)再aa(a)就可以啦~~~~

海上飞洪 发表于 2006-5-6 16:23

原来是选修的,那天帮同学做了一道

xyqguo 发表于 2006-5-7 12:41

求救第三题啊

jinry 发表于 2006-5-9 01:53

joe我想不到第三题,其他三题有人做了,第三题你做。。。。

gyCai 发表于 2006-5-9 03:25

把第一题稍微改动一下即可。以输入的数字不断mod8,把得数依次压入栈,便可得到。
页: 1 [2]
查看完整版本: c语言的考题有没有人帮忙做做啊 !!!!