当前位置: 首页 > news >正文

大一作业习题

第一题:答案:

#include <stdio.h> 
void sort(int a[], int m)  //将数组a的前m个元素(从小到大)排序 
{int i = 0;for (i = 0; i < m - 1; i++){int j = 0;int flag = 1;for (j = 0; j < m - 1 - i; j++){if (a[j] > a[j + 1]){int t = 0;t = a[j];a[j] = a[j + 1];a[j + 1] = t;flag = 0;}}if (flag == 1){break;}}
}
void input(int a[], int m) //依次从键盘输入数组a的前m个元素 
{int i = 0;for (i = 0; i < m; i++){scanf("%d", &a[i]);}
}
void print(int a[], int m) //依次输出数组a的前m个元素 
{int i = 0;for (i = 0; i < m; i++){printf("%4d", a[i]);}printf("\n");
}
void insertSortedList(int a[], int m, int num) //将num插入到数组a中(数组a的前m个元素已经排序),使得数组a仍然升序。
{a[m] = num;int i = 0;for(i=m;i>=0;i--){if (a[i] < a[i-1]){int t = a[i-1];a[i-1] = a[i];a[i] = t;}else{break;}}
}
void main()
{int m, k;scanf("%d", &m);int alist[1000];input(alist, m);sort(alist, m);print(alist, m);scanf("%d", &k);insertSortedList(alist, m, k);print(alist, m + 1);
}

第二题:

答案:

#include <stdio.h>
int gcd(int a, int b); //计算并返回整数a,整数b的最大公约数. 
void add(int op1[], int op2[], int rst[]); //计算分数op1和op2的和,保存结果到rst. 
void sub(int op1[], int op2[], int rst[]); //计算分数op1和op2的差,保存结果到rst.
void mul(int op1[], int op2[], int rst[]); //计算分数op1和op2的积,保存结果到rst.
void div(int op1[], int op2[], int rst[]); //计算分数op1和op2的商,保存结果到rst.void main()
{int a, b, c, d;int op1[2], op2[2], rst[2];scanf("%d%d", &op1[1], &op1[0]);scanf("%d%d", &op2[1], &op2[0]);add(op1, op2, rst);printf("%d/%d + %d/%d = %d/%d\n", op1[1], op1[0], op2[1], op2[0], rst[1], rst[0]);sub(op1, op2, rst);printf("%d/%d - %d/%d = %d/%d\n", op1[1], op1[0], op2[1], op2[0], rst[1], rst[0]);mul(op1, op2, rst);printf("%d/%d * %d/%d = %d/%d\n", op1[1], op1[0], op2[1], op2[0], rst[1], rst[0]);div(op1, op2, rst);printf("%d/%d / %d/%d = %d/%d\n", op1[1], op1[0], op2[1], op2[0], rst[1], rst[0]);
}int gcd(int a, int b)//返回参数a,b的最大公约数
{int r = a % b;while (r != 0){a = b;b = r;r = a % b;}return b;
}
void add(int op1[], int op2[], int rst[]) //计算分数op1和op2的和,保存结果到rst. 
{int fm = op1[0] * op2[0];                   //和的分母int fz = op1[1] * op2[0] + op2[1] * op1[0]; //和的分子int g = gcd(fm, fz);rst[0] = fm / g;                     //分子分母同时除以它们的最大公约数,实现约分rst[1] = fz / g;if (rst[0] < 0)                              //确保分母为正数{rst[0] = -rst[0];rst[1] = -rst[1];}
}
void sub(int op1[], int op2[], int rst[])  //计算分数op1和op2的差,保存结果到rst.
{int fm = op1[0] * op2[0];int fz = op1[1] * op2[0] - op2[1] * op1[0];int g = gcd(fm, fz);rst[0] = fm / g;rst[1] = fz / g;if (rst[0] < 0)                              //确保分母为正数{rst[0] = -rst[0];rst[1] = -rst[1];}
}
void mul(int op1[], int op2[], int rst[]) //计算分数op1和op2的积,保存结果到rst.
{int fm = op1[0] * op2[0];int fz = op1[1] * op2[1];int g = gcd(fm, fz);rst[0] = fm / g;rst[1] = fz / g;if (rst[0] < 0)                              //确保分母为正数{rst[0] = -rst[0];rst[1] = -rst[1];}
}
void div(int op1[], int op2[], int rst[])  //计算分数op1和op2的商,保存结果到rst.
{int fm = op1[0] * op2[1];int fz = op1[1] * op2[0];int g = gcd(fm, fz);rst[0] = fm / g;rst[1] = fz / g;if (rst[0] < 0)                              //确保分母为正数{rst[0] = -rst[0];rst[1] = -rst[1];}
}

第三题:

答案:

#include <stdio.h> 
int myisdigital(char ch);                //数字字符判断函数,如果ch是数字字符,则返回1,否则返回0; 
int myisalpha(char ch);                  //字母字符判断函数,如果ch是大小写字母字符, 则返回1,否则返回0; 
int mystrlen(char str[]);                // 返回指定字符串str的长度 (不计\0字符) 
void mystrcat(char str1[], char str2[]);  // 连接的两个字符串, 将str2连接到str1后面 
int mystrcmp(char str1[], char str2[]);  //比较两个字符串,如果str1大,则返回1;如果str2则返回-1;如果相等,返回0; 
void mystrcpy(char str1[], char str2[]);  //复制字符串str2到字符串str1中 void main()
{char str1[1000], str2[100], tmp[100]; int m;int num_alpha = 0; //str1中的字母字符的个数 int num = 0;       //str2中的数组字符构成的整数 int i;scanf("%s%s%d", str1, str2, &m);printf("%d,", mystrlen(str1) + mystrlen(str2));for (i = 0; i < mystrlen(str1); i++)if (myisalpha(str1[i]))num_alpha++;for (i = 0; i < mystrlen(str2); i++)if (myisdigital(str2[i]))num = num * 10 + str2[i] - '0'; //找到一个新数符,将原来的数字左移一位,然后在末位添加新数符 printf("%d,%d,", num_alpha, num);if (mystrcmp(str1, str2) > 0)  // str1比较大,则交换 {mystrcpy(tmp, str1);mystrcpy(str1, str2);mystrcpy(str2, tmp);}for (i = 1; i <= m; i++)mystrcat(str1, str2);printf("%s", str1);
}int myisdigital(char ch)
{if (ch >= '0' && ch <= '9')return 1;elsereturn 0;
}void mystrcat(char str1[], char str2[])
{int i = 0, j = 0;while (str1[i] != '\0')i++;while (str2[j] != '\0'){str1[i] = str2[j];i++;j++;}str1[i] = '\0';  //给str1最后赋值一个结束字符,这里不可遗漏!!! 
}int myisalpha(char ch)                  //字母字符判断函数,如果ch是大小写字母字符, 则返回1,否则返回0;
{if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))return 1;elsereturn 0;
}int mystrlen(char str[])                // 返回指定字符串str的长度 (不计\0字符)
{int i = 0;while (str[i] != '\0'){i++;}return i;
}int mystrcmp(char str1[], char str2[])  //比较两个字符串,如果str1大,则返回1;如果str2则返回-1;如果相等,返回0;
{int i = 0, j = 0;if (mystrlen(str1) < mystrlen(str2)){for (i = 0; i <= mystrlen(str1); i++){if (str1[i] > str2[i])return 1;if ((str1[i] < str2[i])|| (str1[i] == str2[i]) && i == mystrlen(str1))return -1;}}if (mystrlen(str1) > mystrlen(str2)){for (i = 0; i <= mystrlen(str2); i++){if (str1[i] > str2[i] || ((str1[i] == str2[i]) && i == mystrlen(str2)))return 1;if (str1[i] < str2[i])return -1;}}if (mystrlen(str1) == mystrlen(str2)){for (i = 0; i <= mystrlen(str2); i++){if (str1[i] > str2[i])return 1;if (str1[i] < str2[i])return -1;if ((str1[i] == str2[i]) && i == mystrlen(str2))return 0;}}
}void mystrcpy(char str1[], char str2[])  //复制字符串str2到字符串str1中 
{int i = 0;for (i = 0; i < mystrlen(str2); i++){str1[i] = str2[i];}str1[i] = '\0';
}

http://www.lryc.cn/news/258013.html

相关文章:

  • Python大模型TensorFlow/PyTorch/Scikit-learn/Keras/OpenCV/Gensim
  • TCP 和 UDP 区别? 2、TCP/IP 协议涉及哪几层架构? 3、描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?
  • pyside/qt03——人机协同的编程教学—直接面向chatGPT实战开发(做中学,事上练)
  • swing快速入门(五)
  • 银河麒麟v10系统SSH远程管理及切换root用户的操作方法
  • 设计模式——建造者模式(Java示例)
  • 深入探索 Spring Boot:简化开发,加速部署的全方位利器
  • SpectralGPT: Spectral Foundation Model 论文翻译3
  • ubuntu-c++-可执行模块-动态链接库-链接库搜索-基础知识
  • HTML中使用JavaScript实现一个简单的鼠标悬停特效。
  • 深入.NET平台和C#编程总结大全
  • jOOQ的使用场景
  • Pytorch-Transformer轴承故障一维信号分类(三)
  • pycharm多线程报错的问题(未解决)
  • 【常用字符大全】含emoji表情
  • android 蓝牙开关设置
  • C++ extern “C“ 用法
  • HTML面试题---专题四
  • stm32项目(11)——基于stm32的俄罗斯方块游戏机
  • 【计算机网络基础2】IP地址和子网掩码
  • ES6-import后是否有{}的区别
  • rv1126-rv1109-以太网功能-eth-(原理篇)
  • 【IDEA】反向撤销操作快捷键 ctrl+shift+z 和搜狗热键冲突的解决办法
  • 数据结构之----逻辑结构、物理结构
  • pip 通过git安装库
  • C语言——从终端输入 3 个数 a、b、c,按从大到小的顺序输出。
  • 【JVM从入门到实战】(二)字节码文件的组成
  • OPC UA常见故障信息代码
  • 第20关 快速掌握K8S下的有状态服务StatefulSet
  • ​如何使用https://www.krea.ai/来实现文生图,图生图,