工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
楼主: xyqguo

c语言的考题有没有人帮忙做做啊 !!!!

[复制链接]
发表于 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[6],str2[6],str3[11];
        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 编辑 ]
回复

使用道具 举报

发表于 2006-5-1 22:27 | 显示全部楼层
第二道题:
#include<stdio.h>
void ss(int data[],int n);
void main()
{
        int d[10];
        int c;
        for(c=0;c<10;c++)
                scanf("%d",&d[c]);
    ss(d,c);
    for(c=0;c<10;c++)
        printf("%d\n",d[c]);

}

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[j]<data[k])
                                k=j;
                        if(k!=i)
                        {
                                e=data;
                                data=data[k];
                                data[k]=e;
                        }
        }
}
回复

使用道具 举报

发表于 2006-5-1 22:29 | 显示全部楼层
至于第三和第四道题,应该不用做了吧?
记得书上有。
回复

使用道具 举报

发表于 2006-5-1 22:32 | 显示全部楼层
版主同志,怎么帖子稍微长那么一点儿,后面的字体就会变啊?
回复

使用道具 举报

 楼主| 发表于 2006-5-1 23:19 | 显示全部楼层
多谢  gyCai 大哥   你简直是我们c语言盲的救星
  明天的太阳 比毛主席还要毛泽东啊
谢谢   
我的再生父母啊
回复

使用道具 举报

发表于 2006-5-1 23:32 | 显示全部楼层
对最后一题有兴趣!
回复

使用道具 举报

 楼主| 发表于 2006-5-1 23:32 | 显示全部楼层
能顺便告诉下第4题在第几页抄吗??????????????
实在是找不到啊
回复

使用道具 举报

发表于 2006-5-1 23:44 | 显示全部楼层
回复

使用道具 举报

发表于 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");
        }
}
回复

使用道具 举报

发表于 2006-5-2 00:49 | 显示全部楼层
呵呵,同志,你热情过度了,我也是建院的。
回复

使用道具 举报

 楼主| 发表于 2006-5-2 09:09 | 显示全部楼层
老哥!!!你没骗我吧!!!
建院的C语言如此厉害!!!
小弟佩服得五体投地再五体投地
回复

使用道具 举报

 楼主| 发表于 2006-5-2 23:18 | 显示全部楼层
谢谢咯   各位大哥
回复

使用道具 举报

发表于 2006-5-5 23:53 | 显示全部楼层
路过。。。。。。。。。。。。。

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

使用道具 举报

发表于 2006-5-6 01:17 | 显示全部楼层
第一题没必要用栈来实现吧~~~随便写个子程序给你吧~~是高位开始输出的
aa(long  x)                           
{ int indiv;
            while(x>0)
             {
indiv=x%10;
               x=x/10;
               printf("%d",indiv);
}
}
回复

使用道具 举报

发表于 2006-5-6 01:45 | 显示全部楼层
这样的话,两个数合并以后就要用atoi()转换,也可以的。

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

使用道具 举报

发表于 2006-5-6 16:03 | 显示全部楼层
不用啊。结果就先aa(b)再aa(a)就可以啦~~~~
回复

使用道具 举报

发表于 2006-5-6 16:23 | 显示全部楼层
原来是选修的,那天帮同学做了一道
回复

使用道具 举报

 楼主| 发表于 2006-5-7 12:41 | 显示全部楼层
求救  第三题啊
回复

使用道具 举报

发表于 2006-5-9 01:53 | 显示全部楼层
joe我想不到第三题,其他三题有人做了,第三题你做。。。。
回复

使用道具 举报

发表于 2006-5-9 03:25 | 显示全部楼层
把第一题稍微改动一下即可。以输入的数字不断mod8,把得数依次压入栈,便可得到。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-17 05:30

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表