作业社区
探索学习新天地,共享知识资源!
慕前端3254562 的学生作业:
1 #include 2 3 //排序最大个数 4 #define MAX 5 5 //输出函数 6 void output_array(char *a,int len) 7 { 8 int i = 0; 9 for(i = 0;i < len;i++) 10 { 11 printf("%c “,a[i]); 12 } 13 printf(”\n"); 14 return ; 15 } 16 //简单选择法排序 17 void select_sort(char *a,int len) 18 { 19 int i = 0,j = 0,k = 0; 20 for(i = 0;i a[j]) 26 { 27 k = j; 28 } 29 } 30 if(i != k) 31 { 32 a[i] ^= a[k]; 33 a[k] ^= a[i]; 34 a[i] ^= a[k]; 35 } 36 } 37 38 return ; 39 } 40 int main() 41 { 42 int i = 0; 43 char a[MAX] = {0}; 44 int len = sizeof(a) / sizeof(a[0]); 45 printf(“please input %d data\n”,MAX); 46 for(i = 0;i < MAX;i++) 47 { 48 scanf("%c",&a[i]); 49 } 50 output_array(a,len); 51 52 select_sort(a,len); 53 output_array(a,len); 54 return 0; 55 }
学无止境呀呀呀 的学生作业:
#include #include #include #include #include #define MAX_LINE 256 #define MAX_ARGS 8 //把一行输入按空格/制表符拆分成参数数组 static int parse_line(char *line,char *argv[],int max_args) { int argc = 0; //第一次取token char *tok = strtok(line," \t"); while (tok && argc < max_args -1) { argv[argc++] = tok; // 继续取下一个token tok = strtok(NULL," \t"); } // 参数数据最后必须是 NULL argv[argc] = NULL; return argc; } //支持ls[选项][目录] static void exec_ls(int argc,char *argv[]) { if(argc == 1) { execl("/bin/ls","ls",(char *)NULL); } else if (argc == 2) { execl("/bin/ls","ls",argv[1],(char *)NULL); } else if (argc == 3) { execl("/bin/ls","ls",argv[1],argv[2],(char *)NULL); } else { fprintf(stderr,"ls: too many args\n"); _exit(1); } } int main(void) { char line[MAX_LINE]; char *argv[MAX_ARGS]; while(1) { //打印提示符 printf("mini> "); fflush(stdout); // 读一行用户输入 if(!fgets(line,sizeof(line),stdin)) { break; } //去掉末尾换行 line[strcspn(line,"\n")] = '\0'; if(line[0] == '\0') { continue; // 空行直接跳过 } // 拆分命令行 int argc = parse_line(line,argv,MAX_ARGS); if(argc == 0) { continue; } // 内建命令:退出 if(strcmp(argv[0],"exit") == 0) { break; } // 创建子进程 pid_t pid = fork(); if(pid < 0) { perror("fork"); continue; } else if (pid ==0) { //子进程 根据命令选择 excel if(strcmp(argv[0],"pwd") == 0) { execl("/bin/pwd","pwd",(char *)NULL); } else if (strcmp(argv[0],"ls") == 0) { exec_ls(argc,argv); } else { fprintf(stderr,"unknown command: %s\n",argv[0]); _exit(1); } // 失败 perror("excel"); _exit(1); } else { //父进程 等待子进程结束 int status = 0; waitpid(pid,&status,0); } } return 0; }
+97