>> 本文固定链接: http://www.vcgood.com/archives/322
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
你的老师布置的作业吗?
给大家找的练习的题目
要有点数据结构的基础哦!!!!!!!!
先谢了,
能过做练习才知道自己懂多少
不过有好多不会,
有答案码??
有答案没
谢谢了 有几个不会 你有答案吗?
请问如何才能发帖~~~~新手报道~~呵呵
想让大家帮我看看这个问题!!
前阵子做数据结构的最短路径,到现在都没做出来~~
下面是我的源程序,使用迪杰斯特拉算法,编译没错,可是运行不了。好像是分配空间的问题~~大家看看有什么问题?
在此先谢谢大家!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Max 65535
#define Maxvexnum 11
#define T 1
#define F 0
typedef int pathM[Maxvexnum][Maxvexnum];
typedef int spathTable[Maxvexnum];
typedef struct{
int weight;
}Adjmatrix[Maxvexnum][Maxvexnum];
typedef struct{
char *vexs[Maxvexnum]; //存储顶点的向量
Adjmatrix arcs;
int vexnum,arcnum;
}graph;
void spath(graph *G,int v0,pathM p,spathTable D){
//用Dijkstra算法求有向图G的v0顶点到其余顶点的最短路径p[v]及其带权长度D[v]
//若p[v][w]为true,则w是从v0到当前求得最短路径上的顶点
//final[v]为true当且仅当v属于s,即已经求得从v0到v的最短路径
int min,i,v,w;
int final[Maxvexnum];
for(v = 0; v < G->vexnum; ++v){
final[v] = F;
D[v] = G->arcs[v0][v].weight;
for(w = 0; w < G->vexnum; ++w)
p[v][w] = F;
if(D[v] < Max) {p[v][v0] = T; p[v][v] = T;}
}
D[v0] = 0; final[v0] = T;
for(i = 1; i < G->vexnum; ++i){
min = Max;
for(w = 0; w < G->vexnum; ++w)
if(!final[w] && D[w] < min)
{v = w; min = D[w];}
final[v] = T;
for(w = 0; w < G->vexnum; ++w)
if(!final[w] && (min + G->arcs[v][w].weight < D[w])){
D[w] = min + G->arcs[v][w].weight;
for(i = 0; i < G->vexnum; ++i)
p[w] = p[v];
p[w][w] = T;
}//if
}//for
}
int locatevex(graph *G,char *v){
int i;
for(i = 0; i < G->vexnum; ++i)
if(strcmp(v , G->vexs) == 0)
return i;
return -1;
}
void createDN(graph *G){
int i,j,k,w,count;
char *V1,*V2;
char temp[10];
printf(“请输入有向网G的顶点数,弧数!\n”);
scanf(“%d,%d”,&G->vexnum,&G->arcnum);
printf(“请输入%d个顶点的值:\n”,G->vexnum);
for(i = 0; i < G->vexnum; ++i){
scanf(“%s”,temp);
count = 0;
while(temp[count++] != ‘\0′)
G->vexs = (char *)malloc(count * sizeof(char)); //不知道这里是否正确分配空间??
}
for(i = 0; i < G->vexnum; ++i)
for(j = 0; j < G->vexnum; ++j)
G->arcs[j].weight = Max;
printf(“请输入%d条弧的弧尾 弧头(以空格作为间隔):\n”,G->arcnum);
for(k = 0; k < G->arcnum; ++k){
scanf(“%s%s%d”,&V1,&V2,&w); //输入是在这里出现问题的!!!
i = locatevex(G,V1);
j = locatevex(G,V2);
G->arcs[j].weight = w;
}
}
void display(graph *G){
int i,j;
printf(“%d个顶点%d条边或弧的有向网。顶点依次是: “,G->vexnum,G->arcnum);
for(i = 0; i< G->vexnum; ++i) // 输出G.vexs
printf(“%s “,G->vexs);
printf(“\nG.arcs.weight\n”); //输出G.arcs.weight
for(i = 0; i < G->vexnum; ++i){
for(j = 0; j < G->vexnum; ++j)
printf(“%10d”,G->arcs[j].weight);
printf(“\n”);
}
}
void main()
{
int i,j;
graph G;
pathM p;
spathTable D;
createDN(&G);
display(&G);
spath(&G,0,p,D);
printf(“the pathM p[j] are:\n”);
for(i = 0; i < G.vexnum; ++i){
for(j = 0; j < G.vexnum; ++j)
printf(“%4d”,p[j]);
printf(“\n”);
}
printf(“the shortest path weight of %s to every vex are:\n”,G.vexs[0]);
for(i = 0; i < G.vexnum; ++i)
if(i)
printf(“%s—-%s: %4d\n”,G.vexs[0],G.vexs,D);
}
多谢大家参看!!
在此谢谢!!
各位大侠帮忙做几道c语言的题可以吗?非常感谢啊!
1.输入任意三个数,输出这三个数之和。
如:输入7、8、16,则输出 7+8+16=31
2.输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。
如:输入a为10,b为5,则a+b的结果输出为 10+5=15
3.输入一个三位数,将其各位数字反序输出。
如:输入123,则输出 321
4.输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值从小到大的顺序输出这三个字符及其对应的ASCII码值。
如:输入字母C,则输出 B,66,C,67,D,68
5.输入一个正整数,判断能否同时被5和7整除,若能,则输出Yes,否则输出No。
如:输入77,则输出 No
6.输入一个三位数,判断是否是一个“水仙花数”。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。如:153=1*1*1+5*5*5+3*3*3。若是,则输出Yes,不是输出No。
如:输入153,则输出 Yes
7.输入任意三个数,输出这三个数之和。
如:输入7、8、16,则输出 7+8+16=31
8.输入两个整型变量a,b的值,输出a+b,a-b,a*b,a/b,(float)a/b,a%b的结果,要求连同算式一起输出,每个算式占一行。
如:输入a为10,b为5,则a+b的结果输出为 10+5=15
9.输入一个三位数,将其各位数字反序输出。
如:输入123,则输出 321
10.输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值从小到大的顺序输出这三个字符及其对应的ASCII码值。
如:输入字母C,则输出 B,66,C,67,D,68
11.输入一个正整数,判断能否同时被5和7整除,若能,则输出Yes,否则输出No。
如:输入77,则输出 No
12.输入一个三位数,判断是否是一个“水仙花数”。水仙花数是指三位数的各位数字的立方和等于这个三位数本身。如:153=1*1*1+5*5*5+3*3*3。若是,则输出Yes,不是输出No。
如:输入153,则输出 Yes
13.输入一个年份和一个月份,输出该年该月的天数。
如:输入2007、11,则输出 30 days
提示:2月天数的多少与该年是否为闰年有关,闰年2月有29天,非闰年有28天,因此首先要判断该年份是否为闰年;根据月份判断天数,可采用Switch语句。
14.已知一个圆,圆心坐标为(2,2),半径为1,输入一个点的坐标(x,y),判断该点与圆的位置,若在圆内则输出‘Inside’,若在圆外则输出‘Outside’,若在圆周上则输出‘On’。
如:输入坐标 1,1,则输出 Outside
提示:点到点的距离公式为sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)),根据该点到圆心的距离与圆半径的大小关系,判断点与圆的位置关系。
15.输入三个整数,判断用这三个数作为边长能否构成三角形,能则输出该三角形的类型编号(一般三角形编号为A,直角三角形编号为B、等腰三角形编号为C,等边三角形编号为D),不能则输出 No。
如:输入 3,4,5,则输出 B
16.求10!
17.求1-3+5-7+9-……+101
18.判定2000-2050年中的每一年是否为闰年,并将闰年输出,每输出5个换一行。
19.计算1-1/2+1/3-1/4+1/5-……+1/99-1/100
先谢了,
能过做练习才知道自
己懂多少
各位大侠 我是一个小小菜鸟 在教材抄的大侠在tc里面出问题了 请帮个忙怎么样可以修正啊!!main()
{int a,b,c;
scanf(“%d,%d,&a,&b,”);
c=max(a,b);
printf(“max=%d”,c);
}
int max (int x,int y);
{ int z ; 系统说这里说明出问题,怎么解决啊??
if(x>y) z=x;
else z=y;
returu(z);
}
把答案发上来看一下.
#include “stdio.h”
int main()
{int a,b,c;
scanf(“%d%d”,&a,&b); /*注意双引号括住的只是%d,还有两个%d之间不能有逗号*/
c=max(a,b);
printf(“max=%d”,c);
}
int max (int x,int y) /*这一句后面不能有分号*/
{ int z ;
if(x>y) z=x;
else z=y;
return z; /*return写错了*/
}
感谢楼主了啊
练习题有答案没有啊,照着学习一下啊
看了题,好多不会哦。希望LZ把答案弄上来。
[QUOTE=liuluoxuan]
各位大侠 我是一个小小菜鸟 在教材抄的大侠在tc里面出问题了 请帮个忙怎么样可以修正啊!!main()
{int a,b,c;
scanf(“%d,%d,&a,&b,”);
c=max(a,b);
printf(“max=%d”,c);
}
int max (int x,int y);
{ int z ; 系统说这里说明出问题,怎么解决啊??
if(x>y) z=x;
else z=y;
returu(z);
}
[/QUOTE]
#include<stdio.h>
void main()