實驗源代碼
//Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("請輸入矩陣第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可傳遞閉包關系矩陣是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元關系的可傳遞閉包\n"); void warshall(int,int); int k , n; printf("請輸入矩陣的行數 i: "); scanf("%d",&k);
四川大學實驗報告 printf("請輸入矩陣的列數 j: "); scanf("%d",&n); warshall(k,n); }
標簽:
warshall
離散
實驗
上傳時間:
2016-06-27
上傳用戶:梁雪文以
#include <stdlib.h>
#include<stdio.h>
#include <malloc.h>
#define stack_init_size 100
#define stackincrement 10
typedef struct sqstack
{
int *base;
int *top;
int stacksize;
} sqstack;
int StackInit(sqstack *s)
{
s->base=(int *)malloc(stack_init_size *sizeof(int));
if(!s->base)
return 0;
s->top=s->base;
s->stacksize=stack_init_size;
return 1;
}
int Push(sqstack *s,int e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base)
return 0;
s->top=s->base+s->stacksize;
s->stacksize+=stackincrement;
}
*(s->top++)=e;
return e;
}
int Pop(sqstack *s,int e)
{
if(s->top==s->base)
return 0;
e=*--s->top;
return e;
}
int stackempty(sqstack *s)
{
if(s->top==s->base)
{
return 1;
}
else
{
return 0;
}
}
int conversion(sqstack *s)
{
int n,e=0,flag=0;
printf("輸入要轉化的十進制數:\n");
scanf("%d",&n);
printf("要轉化為多少進制:\n"); scanf("%d",&flag);
printf("將十進制數%d 轉化為%d 進制是:\n",n,flag);
while(n)
{
Push(s,n%flag);
n=n/flag;
}
while(!stackempty(s))
{
e=Pop(s,e);
switch(e)
{
case 10: printf("A");
break;
case 11: printf("B");
break;
case 12: printf("C"); break;
case 13: printf("D"); break;
case 14: printf("E"); break;
case 15: printf("F"); break;
default: printf("%d",e); }
}
printf("\n");
return 0;
}
int main()
{
sqstack s;
StackInit(&s);
conversion(&s);
return 0;
}
標簽:
整數
棧
基本操作
十進制
轉化
進制
上傳時間:
2016-12-08
上傳用戶:愛你198
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
#include "Stud.h"
Stud::Stud(){}
char *Stud::getno() //獲取學號
{
return no;
}
char *Stud::getname() //獲取姓名
{
return name;
}
char *Stud::getsex() //獲取性別
{
return sex;
}
char *Stud::getminzu() //獲取民族
{
return minzu;
}
char *Stud::getaddress() //獲取出生地
{
return address;
}
char *Stud::getbirth() //獲取出生年月
{
return birth;
}
int Stud::gettag() //獲取姓名
{
return tag;
}
void Stud::changeno(char n[]) //設置學號
{
strcpy(no,n);
}
void Stud::changename(char na[]) //設置姓名
{
strcpy(name,na);
}
void Stud::changesex(char s[]) //設置性別
{
strcpy(sex,s);
}
void Stud::changeminzu(char m[]) //設置民族
{
strcpy(minzu,m);
}
void Stud::changeaddress(char a[]) //設置出生地
{
strcpy(address,a);
}
void Stud::changebirth(char b[]) //設置出生年月
{
strcpy(birth,b);
}
void Stud::addstudent(char *rn,char *rna) //增加學生
{
strcpy(no,rn);
strcpy(name,rna);
}
void Stud::addstudent(char *rn,char *rna,char *rs,char *rm,char *ra,char *rb) //增加學生
{
tag=0;
strcpy(no,rn);
strcpy(name,rna);
strcpy(sex,rs);
strcpy(minzu,rm);
strcpy(address,ra);
strcpy(birth,rb);
}
void Stud::delstud() //設置刪除標記
{
tag=1;
}
void Stud::disp() //輸出學生信息
{
cout<<setw(15)<<no<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<minzu<<setw(10)<<address<<setw(10)<<birth<<endl;
}
void Stud::display() //輸出學生信息
{
cout<<setw(15)<<no<<setw(10)<<name;
}
標簽:
學生
上傳時間:
2016-12-29
上傳用戶:767483511