您的位置:

c语言的权重,C语言权值

本文目录一览:

用C语言编写以下算法: 一个5个节点的有向图,有向线段上有权重即T[i][j],它表示节点i对节点j的信任度。

写C程序,随机给出n*n的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每个顶点的度,并判断该图中是否存在Euler回路: (1)如果为n阶,则随机产生一个n*n的邻接矩阵; (2)输出邻接矩阵,边的个数,每个顶点的度以及图中是否存在Euler回路。 这个题目涉及到了两个主要的知识点,一个是数据结构中的有向图的邻接矩阵的创建,还有就是离散数学中的Euler回路的判定定理。

#includestdio.h

#includestdlib.h

#includetime.h

#includemath.h

#define n 5 //定义矩阵的阶数n

typedef int ver;

typedef int edg; //定义有向图的顶点和边值为整形

typedef struct{

ver v[n]; //顶点

edg e[n][n]; //边权

}graph; //定义邻接矩阵的数据结构

void printgraph (graph G) //打印输出邻接矩阵

{

int i,j;

printf("顶点");

for(i=0;in;i++)

printf("%3d",i);

printf("\n");

for(i=0;in;i++)

{

printf("%4d",i);

for(j=0;jn;j++)

printf("%3d",G.e[i][j]);

printf("\n");

}

}

void countD (graph G) //判断有向图的顶点的度,并判断Euler回路

{

int i,j,l;

int e=0,count=0;

int k; //计数器赋0

int c[n],d[n];

for (i=0;in;i++){

c[i]=0;

for (j=0;jn;j++){

if (G.e[i][j]!=0)

c[i]=c[i]+1;

}

printf("顶点 %d 的出度为: %d \n",i,c[i]); //有向图的任意顶点i的出度为邻接矩阵中第i行不为0的数的个数

}

printf("\n");

for (j=0;jn;j++){

d[j]=0;

for (i=0;in;i++){

if (G.e[i][j]!=0)

d[j]=d[j]+1;

}

printf("顶点 %d 的入度为: %d \n",j,d[j]); //有向图的任意顶点j的入度为邻接矩阵中第j列不为0的数的个数

}

for (l=0;ln;l++){

if (c[l]==d[l])

count++;

else {

if (c[l]-d[l]==1)

e++;

else{

if (d[l]-c[l]==1)

e++;

}

}

}

k=0;

if (count==n) //判断Euler回路: 1:所有顶点的出度等于入度;

//2:有且仅有两个点度数为奇数,且一个出度比入度大一

k=1; //另一个入度比出度大一,其他的顶点出度等于入度

else {

if (e==2 count==n-2)

k=1;

}

if (k==1)

printf("有向图中存在Euler回路\n");

else

printf("有向图中不存在Euler回路\n");

}

void main() //主函数

{

int i,j,temp;

graph G;

srand(time (NULL)); //随机种子

for (i=0;in;i++){

for (j=0;jn;j++)

G.e[i][j]=0;

}

for (i=0;in;i++)

G.v[i]=0;

for (i=0;in;i++){

for (j=0;jn;j++){

do

{

temp = rand()%n; //随机建造邻接矩阵

if (G.v[i]n)

{

G.e[i][j] = temp;

G.v[i]++;

break;

}

}

while (1);

}

}

printf("生成的有向图邻接矩阵为: \n");

printgraph(G);

countD (G); //调用子函数

printf("有向图的边数为:%d\n",n*(n-1)/2);

}

另外,团IDC网上有许多产品团购,便宜有口碑

C语言 关于权重的 问题

唉,你这错误也太多了吧。

   /****考生在以下空白处写入执行语句******/

for(i=0;in;i++)

{

a[i] = (i+1) * ((int)s[i]);

printf("%d\n",a[i]);

}

 

   /****考生在以上空白处写入执行语句******/

c语言 要为产生的随机数加上权重 如在6-18内产生100个随机数,6-9出现频率为25%,10-14为50%,15-18为25%

这样改吧:

#includestdlib.h

#includestdio.h

#includetime.h

void main()

{

   int i,j; 

   srand((unsigned)time(NULL)); 

   for(i=0;i100;i++) 

   {   

        j=rand()%100;

  if(j25)     //6到10的25%

  {

   j=rand()%10;

   while(j6)

    j=rand()%10;

  }

  else if(j75)    //11到14的50%

  {

   j=rand()%15;

   while(j10)

    j=rand()%15;

  }

  else      //15到18的25%

  {

   j=rand()%19;

   while(j15)

     j=rand()%19;

  }

        printf("%d\t",j);

   }

}

C语言写权重的问题

int A[100]

for(int i=0;i<100;i++)

if(i<3||i>96)//判断前后够不够3个 不够输出权值为0

printf("a[%d]=%d的元素权值为0\n",i,a[i]);

}

else

{

int b=abv(a[i]-a[i-1]);//找出差的绝对值最小的

if(abv(a[i]-a[i-2])b) b=abv(a[i]-a[i-2]);

if(abv(a[i]-a[i-3])b) b=abv(a[i]-a[i-3]);

if(abv(a[i]-a[i+1])b) b=abv(a[i]-a[i+1]);

if(abv(a[i]-a[i+2])b) b=abv(a[i]-a[i+2]);

if(abv(a[i]-a[i+3])b) b=abv(a[i]-a[i+3]);

printf("a[%d]=%d的元素权值为%d\n",i,a[i],b);

}

C语言中,每位上都有一定的“权”是什么意思?

简单地讲,每一位的“权”就是这1位表示多少个基本单位,比如:123456,

6是个位,基本单位是1,它表示6个1;

5是十位,基本单位是10,它表示5个10;

4是百位,基本单位是100,它表示4个100;

......

用C语言计算加权分数

本人(无界)用C-Free亲手编写的,亲测可运行

# include stdio.h

struct stu{ //用结构体数组储存学生的成绩和学分 

float score; //成绩

float credit; //学分

}Stu[100];

int main()

{

unsigned int x=1,y=0;

//y用于结构体数组Stu,同时用于循环计算该学生成绩 

double sxcsum=0,csum=0,sum; 

//sxcsum记录所有成绩乘以学分之和

//csum学分之和 

//sum加权成绩 

printf("提示:输入完后按回车键结束,输入负数代表学生成绩输入完成\n"); 

while(1) //循环用户输入成绩,直到用户输入完成后结束 

{

printf("请输入第%d门课程的成绩:",x);

scanf("%f",Stu[y].score);  

getchar(); //吸收回车键字符

if(Stu[y].score0) break; //输入负数结束循环,结束学生输入成绩操作 

printf("请输入第%d门课程的学分:",x++);

scanf("%f",Stu[y++].credit);

getchar();

if(Stu[y-1].credit0) break;

}

printf("---输入成绩结束---\n");

for(x=0;xy;x++) //循环计算成绩,直到算完所有课程 ,y变量储存共有多少门课程 

{

sxcsum+=Stu[x].score*Stu[x].credit;

csum+=Stu[x].credit;

}

sum=sxcsum/csum;

printf("该学生的加权成绩为:%g\n",sum);

return(0);

}

---“无界”回答---