c语言程序翻译,急

c语言程序翻译,急,第1张

学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:

钱:星期一、星期六

赵:星期二、星期四

孙:星期三、星期日

李:星期五

周:星期一、星期四、星期六

吴:星期二、星期五

陈:星期三、星期六、星期日

运行结果:

Solution: 1 赵 钱 孙 李 周 吴 陈 =============================================================

星期四 星期一 星期三 星期五 星期六 星期二 星期日

Solution: 2 赵 钱 孙 李 周 吴 陈 =============================================================

星期四 星期一 星期日 星期五 星期六 星期二 星期三

Solution: 3 赵 钱 孙 李 周 吴 陈 =============================================================

星期四 星期六 星期三 星期五 星期一 星期二 星期日

Solution: 4 赵 钱 孙 李 周 吴 陈 =============================================================

星期四 星期六 星期日 星期五 星期一 星期二 星期三

#include <stdio.h>

int n = 0

int rest[7][7]

void swap(int *a, int *b)

{

int m

m = *a

*a = *b

*b = m

}

void perm(int list[], int k, int m)

{

int i

int j

if(k >m)

{

for (i=0i<7i++)

{

for (j=0j<7j++)

{

if (rest[i][j] == -1)

return

if (rest[i][j] != list[i])

continue

if (rest[i][j] == list[i])

break

}

}

n++

printf("Solution: %d\n", n)

printf("赵 钱 孙 李 周 吴 陈\n")

printf("=============================================================\n")

for(i = 0i <= mi++)

{

switch (list[i])

{

case 1: printf("星期一 ")

break

case 2: printf("星期二 ")

break

case 3: printf("星期三 ")

break

case 4: printf("星期四 ")

break

case 5: printf("星期五 ")

break

case 6: printf("星期六 ")

break

case 7: printf("星期日 ")

break

default:

break

}

}

printf("\n\n\n")

}

else

{

for(i = ki <= mi++)

{

swap(&list[k], &list[i])

perm(list, k + 1, m)

swap(&list[k], &list[i])

}

}

}

int main()

{

int list[] = {1, 2, 3, 4, 5, 6, 7}

int i, j

for(i = 0i <7i++)

{

printf("Enter the day of %d people rests:\n", i+1)

for(j = 0j <7j++)

{

scanf("%d", &rest[i][j])

if(rest[i][j] == -1)

break

}

}

printf("\n\n\n")

perm(list, 0, 6)

printf("total:%d\n", n)

getchar()

getchar()

return 0

}

学校实验楼有7名保安人员:。钱,赵,孙,李,周,吴,陈由于工作需要进行轮休制度,一星期中每人休息一天预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案当然使每个人都满意,例如每人选择的休息日如下:

钱:星期一,星期六

赵:星期二,星期四

孙:星期三,星期日

李:星期五

周:星期一,星期四,星期六

吴:星期二,星期五

陈:星期三,星期六,星期日

运行结果:

解决方案:1赵钱孙李周吴陈================================== =====================

星期四星期一星期三星期五星期六星期二星期日

解决方案:2赵钱孙李周吴陈================================== =====================

星期四星期一星期二星期五

解决方案:3赵钱孙李周吴陈================================== =====================

星期四星期六星期三星期五星期一星期二星期日

解决方案:4赵钱孙李周吴陈================================== =====================

星期四星期六星期二星期五星期一星期二星期三

#include <stdio.h>

int n = 0

休息[7] [7]

void swap(int * a,int * b)

{

int m

m = * a

* a = * b

* b = m

}

void perm(int list [],int k,int m)

{

int i

int j

如果(k>m)

{

for(i = 0i <7i ++)

{

for(j = 0j <7j ++)

{

if(rest [i] [j] == -1)

返回

if(rest [i] [j]!= list [i])

继续

if(rest [i] [j] == list [i])

打破

}

}

的n ++

printf(“解决方案:%d \ n”,n)

printf(“赵钱孙李周吴陈\ n”)

的printf(“=============================================== ============== \ n“)

for(i = 0i <= mi ++)

{

switch(list [i])

{

案例1:printf(“星期一”)

打破

情况2:printf(“星期二”)

打破

案例3:printf(“星期三”)

打破

情况4:printf(“星期四”)

打破

情况5:printf(“星期五”)

打破

情况6:printf(“星期六”)

打破

案例7:printf(“星期日”)

打破

默认:

打破

}

}

的printf( “\ n \ n \ n”)

}

其他

{

for(i = ki <= mi ++)

{

交换(&list [k],&list [i])

perm(list,k + 1,m)

交换(&list [k],&list [i])

}

}

}

int main()

{

int list [] = {1,2,3,4,5,6,7}

int i,j

for(i = 0i <7i ++)

{

printf(“输入%d人的日子休息:\ n”,i + 1)

for(j = 0j <7j ++)

{

scanf(“%d”,&rest [i] [j])

if(rest [i] [j] == -1)

打破

}

}

的printf( “\ n \ n \ n”)

perm(list,0,6)

printf(“total:%d \ n”,n)

的getchar()

的getchar()

返回0

}

#include <stdio.h>

#include <iostream>

#include <fstream>

#include <string>

#include <vector>

#include <cstdlib>

#include <ctime>

using namespace std

void StringSplit(string str, string delim, vector<string>results)

{

int cutAt

while( (cutAt = str.find_first_of(delim)) != str.npos )

{

if(cutAt >0)

{

results.push_back(str.substr(0,cutAt))

}

str = str.substr(cutAt+1)

}

if(str.length() >0)

{

results.push_back(str)

}

}

class ReadFile {

public:

static vector<vector<int>>read(const char* filename) {

int x = 0

int y = 0

vector<string>m

ifstream f(filename)

string str

vector<string>s

char* buffer = new char[1024]

while(f.getline(buffer,1024)) {

StringSplit(trim(str),",",s)

y = s.size()

for(int i(0)i<yi++) {

m.insert(m.end(), s.begin(),s.end())

}

}

delete[] buffer

vector<vector<int>>arr

for(int i=0i <xi++) {

for(int j=0j <yj++) {

string str = m.at(j*y + i)

char* strc

strc = &str[0]

//String[] strs = (String[])m.get(i+1)

//arr[i][j] = Integer.parseInt(strs[j])

arr[i][j] = atoi(strc)

}

}

return arr

}

static string trim(string str) {

size_t startpos = str.find_first_not_of("\t")

size_t endpos = str.find_last_not_of("\t")

# // if all spaces or empty return an empty string

if(( string::npos == startpos ) || ( string::npos == endpos))

{

str = ""

}

else

str = str.substr( startpos, endpos-startpos+1 )

return str

}

}

int main() {

time_t previousTime

time(&previousTime)

time_t lastTime = 0

//设置1个参数,如果等于1,则计算并把结果写入文件,且计算时间,如果等于2,计算并计算时间,不写文件,但计算结果,在 屏幕输出 如果等于3,only计算,不在屏幕输出结果,只显示计算时间~

int choose = 0

cin >>choose

//将结果输出到文件中

ofstream f

f.open("f://1.txt")

int Cut = 0

vector<vector<int>> b = ReadFile::read("F://3.txt")

vector<vector<int>> c = ReadFile::read("F://4.txt")

vector<vector<int>>a

string sb

for(unsigned int i=0i <b.size()i++) {

for(unsigned int j=0j <b[i].size()j++) {

a[i][j] = b[i][j] * c[i][j]

Cut += 1

char* sbc

sbc = &sb[0]

sprintf_s(sbc,10,"%d ",a[i][j])

}

sb.append("\r\n")

}

time(&lastTime )

// in seconds

double useTime = difftime(lastTime, previousTime)

useTime *= 1000

if(choose == 1) {

f <<sb

cout<<"运行结果输出到F://1.txt文件中"<<endl

}

if(choose == 2) {

cout<<"-共进行计算" <<Cut <<"次!"<<endl

cout<<sb<<endl

}

if(choose == 3) {

cout<<"一共运行" <<useTime <<"毫秒"<<endl

}

return 0

} // Main

INTEGER A(3,2) 声明A是 3列2行 的整型数组。

READ(*,*) 。。。 从键盘以自由格式 输入数据。

WRITE(*,100) 。。。 第一个参数是文件号/设备号,用 * 表示是 屏幕,第二个参数是格式语句标号,你这里 是指 100 FORMAT(1X,2I4)

WRITE(*,*) 是向屏幕,按 自由格式(或叫默认格式)输出。

A(10) 是 一维数组。是一字长蛇阵。含10个元素,下标 1 到 10

A(3,2) 是 2维数组。是矩阵。 含 6个元素,3列2行。

-----------

WRITE(*,100)((。。。

打印出:

1 4

2 5

3 6

WRITE(*,200)((

打印出:

1 2 3

4 5 6

------------

。。。((A(I,J),J=1,2),I=1,3) -- 这叫“隐做表”,实际上是双重循环语句。

。。。((A(I,J),I=1,3),J=1,2) -- 这叫“隐做表”,实际上是另一个双重循环语句。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12014577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存