C语言mooc小程序(2)
来源:互联网 发布:mac flash第三步不显示 编辑:程序博客网 时间:2024/05/17 06:43
这星期,由书本 网络学习所得,了解const用法.(数据类型,知识点繁杂直接计入笔记,不放在博客上)
1)首先 可以定义const常量,具有不可变性.
2)可以节省空间,避免不必要的内存分配(个人用IDE检测符合)
3)保护了被修饰的东西 比如const double PI =3.14159
PI 无法改变,类似define的作用.
或者有如下定义 double rates[5]={88.99,100.12,59.45,183.11,340.5};
const double *pd=rates;//pd指向数组的首元素
*pd=29.89;//pd无法被修改
pd[2]=222.22;//pd无法被修改
rates[0]=99.99;//rates未被定义,可被修改
数组定义:
而且,遍历数组时,用sizeof(a)/sizeof(a[0])可确保循环正确.
数组大小可以用字母定义(C99新标准)
集成初始化 可以用[x]进行定义 比如[0]=2 代表数组第一个元素为2.
此外个人对素数的判断做出优化 可以去掉偶数,由3遍历到sqrt(n) 可以减少一半的复杂度. 代码如下
{ int n,i; while(~scanf("%d",&n)) { int flag=0; if(n%2==0&&n!=2) { flag=1;} for(i=3;i<sqrt(n);i+=2) { if(n%i==0) flag=1; } if(flag==0) printf("YES\n"); else printf("NO\n");} return 0;}
还有根据此代码改编而成的素数表(代码相似,不放出,基础关键点)
1)开辟prime函数,并初始化元素为1,表示元素为素数
2)从2开始,如果x是素数,则(i*x)舍去
3)接着用i++ x
int main(void){ // 1表示x 0表示o const int size = 3; int board[size][size]; int i, j; int numOfX; int numOfO; int numx, numo; //定义2组变量以表示行列情况 int result = -1; // -1:没人赢, 1:X赢, 0:O赢 //输入矩阵 for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { scanf("%d", &board[i][j]); } } // 检查行列胜负情况 如有胜负 直接切断 ,行的胜负情况用转置矩阵表示 for (i = 0; i < size && result == -1; i++) { numOfO = numOfX = numo = numx = 0; for (j = 0; j < size; j++) { if (board[i][j] == 1) numOfX++; else numOfO++; if (board[j][i] == 1) numx++; else numo++; } if (numOfO == size || numo == size) result = 0; else if (numOfX == size || numx == size) result = 1; } // 检查正对角线 numOfO = numOfX = 0; for (i = 0; i < size; i++) { if (board[i][i] == 1) numOfX++; else numOfO++; if (numOfO == size) result = 0; else if (numOfX == size) result = 1; } // 检查反对角线 numOfO = numOfX = 0; for (i = 0; i < size; i++) { if (board[i][size - i - 1] == 1) numOfX++; else numOfO++; if (numOfO == size) result = 0; else if (numOfX == size) result = 1; } if (result == -1) printf("No win!\n"); else if (result == 1) printf("X win!\n"); else printf("O win!\n"); return 0;}
另外有多项式加法
这题有几个注意点
首先输入的结束条件 应设置为 输入两次0次幂
其次将输入情况分幂为正负1或普通数,系数为正负1或普通数.
如此就很好写了.
int main(int argc, const char * argv[]) { int a,b; int number[101]={0}; for(int i=0;i<2;i++) { do { scanf("%d %d",&a,&b); number[a]+=b; }while(a==0&&b==0); } int c=1; for(int i=101-1;i>=2;i--) { if(c) { if(number[i]==1||number[i]==-1) { printf("x%d",i); c=0; } else if(number[i]!=0) { printf("%dx%d",number[i],i); c=0; } } else { if(number[i]==1) { printf("+x%d",i); }else if(number[i]==-1) { printf("x%d",i); } else if(number[i]>0) { printf("+%dx%d",number[i],i); }else if(number[i]<0) { printf("%dx%d",number[i],i); } } } if(c) { if(number[1]==1||number[1]==-1) { printf("x"); c=0; }else if(number[1]!=0) { printf("%dx",number[1]); c=0; } if(number[0]!=0) { printf("%d",number[0]); c=0; } } else { if(number[1]==1) { printf("+x"); }else if(number[1]==-1) { printf("x"); } else if(number[1]>0) { printf("+%dx",number[1]); } else if(number[1]<0) { printf("%dx",number[1]); } if(number[0]>0) { printf("+%d",number[0]); }else if(number[0]<0) { printf("%d",number[0]); } } if(c){ printf("0"); } printf("\n"); return 0;}
阅读全文
0 0
- C语言mooc小程序(2)
- C语言mooc小程序(1)
- C语言mooc小程序(3)
- MOOC——C语言2
- C语言 MOOC 身高
- C语言 MOOC 素数
- 中国大学MOOC-翁恺-C语言程序习题第三周
- 中国大学MOOC-翁恺-C语言程序习题第四周
- 中国大学MOOC-翁恺-C语言程序习题第五周
- 中国大学MOOC-翁恺-C语言程序习题第六周
- 中国大学MOOC-翁恺-C语言程序习题第七周
- 中国大学MOOC-翁恺-C语言程序习题第八周
- 中国大学MOOC-翁恺-C语言程序习题第十周
- 中国大学MOOC-翁恺-C语言程序习题第十一周
- MOOC-Linux内核lab1 反汇编C语言程序
- C语言小程序
- C语言小程序
- C语言小程序
- MacOS中安装Wine运行Windows程序
- .Net学习笔记-.Net基础2 C#面向对象基础2 构造函数
- 数组、指针、函数
- 破解phpstorm2017.3.1版本并解决win10下修改hosts问题
- (总结)Swing组件的使用---文本框(JTextField)与文本区(JTextArea)
- C语言mooc小程序(2)
- 管理大师(英)阿德里安·伍尔德里奇.pdf 免费下载
- Java程序员,想跳槽又怕陷入恶性循环,怎么办?
- form中input标签的各种参数设置
- Eclipse中ctrl+Shift+向上下复制快捷键和windos冲突不能用
- 灵感手环第一步——0.96寸OLED显示实验
- 光焰不熄:胡适思想与现代中国.pdf 免费下载
- 字符游戏——智能蛇
- 数据结构实验之查找五:平方之哈希表