标签:判断 16进制 游戏 char 1.0 程序 put and 字符型
{
定义变量n,j,i,flag1,flag2
输入阶数n
定义n阶二维数组a[n][n]
for i=0 ;i<n ; i++{
for j=0 ;j< n; j++
输入数据a[i][j];
}
for i=0 ;i<n ; i++{
for j=0 ;j< n; j++
初始化判断flag1=0;flag2=0;
for k=0 ;k<n ;k++{
if 该行中有比a[i][j]更大的数据
flag1=1;
if 该列中有比a[i][j]更小的数据
flag2=1;
}
if flag1=flag2=0 {
输出鞍点位置 i ,j
结束程序
}
}
if flag1,flag2不全为0{
输出 NONE
结束程序
}
}
碰到的问题:最开始值顾着找鞍点,忘了考虑鞍点不存在的情况,没有用flag判断,引用flag判断后找到鞍点后没有结束程序导致又输出了NONE
解决办法:在输出鞍点所在位置后直接结束程序
{
定义变量repeat,number,n,i,j,flag
定义二维数组a[10][10]
输入总次数repeat
for ;repeat>0 ;repeat-- {
输入最大加数n;
初始化数据number=1
输出加号‘+‘;
for i=1 ;i<n ;i++{
赋值让第一行第一列都为 1 2 3 ... n
}
for i=1 ;i<n;i++ {
for j=1;j<=i;j++
计算下上角的数值,等于该元素所在行的第一个数加所在列的第一个数
}
for i=0,j=1;i<n;i++
输出第一行除加号外身剩下的数据,最后一个输出后换行
for i=1; i<n;i++{
for j=0; j<i;j++
输出下三角的数据,在输出对角线数据时换行
}
}
碰到的问题:每次循环开始时没有初始化number的值,导致下一轮循环时出现错误
解决办法:每次循环开始时令number=1
{
定义数组n[100][100]
定义变量n ,i,j
输入n
for i=0 ;i<n ;i++{
for j=0 ;j<n ;j++
初始化数据n[i][j]=0
}
for i=0 ;i<n ;i++
赋值第一列全为1 n[0][i]=1
if n>0&&n<10{
for i=1;i<n;i++{
for j=1;j<n;j++
/*每个数据等于该数据上一行数据加上左上方的数据 */
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
for i=0;i<n;i++{
for j=0;j<=i;j++
输出数据n[i][j]
换行 putchar(‘\n‘);
}
}
return 0;
}
碰到问题:只令a[0][0]=1;循环中从j=0开始,虽然输出没有问题,但是循环过程中有a[i][j-1]导致数组越界
解决办法:让第一列都为1,这样就能从j=1开始计算而不会导致数组越界
朱杰伟
我的代码截图:
同学代码截图:
不同:我的代码用了一个二维数组,而朱同学用了两个以为数组;我在计算下三角的数值时,直接用了a[i][j]=a[i-1][j]+a[i-1][j-1],而朱同学通过对j,i的判断得出相应的数值
各自的优势:我的代码更简洁,直接计算除第一列外的每一个数组,朱同学的代码用了分支判断对每种情况进行计算
更喜欢哪种代码风格:更喜欢我的代码风格,我的代码较为简单,判断和计算过程也较少
定义字符型数组存放
结束的标志位 ‘\0‘;当不知道输入的字符串的长度是可用‘\0‘判断字符串是否结束
三种。
- scanf("%s",a),输入以空格结束的字符串
- scanf("%c",&a[i])/(a[i]=getchar()),利用循环输入每一个字符
- gets(a),输入以回车结束的字符串
{
...
初始化sum=0;
for i=0 ;a[i];i++{
if a[i]为数字字符
sum=sum*10+(a[i]-‘0‘);
}
输出printf("%d",sum);
}
16进制转10进制:
{
...
初始化sum=0;
for i=0 ;a[i];i++{
if a[i]为0到9
sum=sum*16+(a[i]-‘0‘);
if a[i]为a到f
sum=sum*16+(a[i]-‘a‘+10);
if a[i]为A到F
sum=sum*16+(a[i]-‘A‘+10);
}
输出printf("%d",sum);
}
二进制转十进制:
{
...
初始化sum=0;
for i=0 ;a[i];i++{
if a[i]为‘0‘或‘1‘
sum=sum*2+(a[i]-‘0‘);
}
输出printf("%d",sum);
}
课堂派错题:
本题对题目的意思没有理解清楚,以为判断的是子串与母串相同字母的个数,当str2[k]!=0的时候,count++
这次考试没考好,不是因为题有多难,而是因为自身的一些原因:
选择题:
16.以下for循环的执行次数是多少? for(x=0,y=0l(y=3)&&(x<=4);x++,y++)
这题正确答案是5次。因为我没注意到y=3中只有一个‘=‘,这是一个赋值语句是恒真的,就想多了,去考虑循环的内容,选了不确定多少次。
填空题:
9.正确答案:1.0/(i*i),我写错了变量,写成1.0/pow(t,2)
改错题:
x=MaxcommonFactor(int a,int b);改为 x=MaxcommonFactor(a,b);
对于函数的传参不够熟悉,这个错没有改出来
编程题:
猜数游戏:
本题错误点:对于随机数的生成不会写;题目要求的“直到操作者想停止时才结束”没有写到。
加入产生随机数的语句 :srand(time9NULL));rand()%100+1;
应用do-while 循环,当输入0时结束。
标签:判断 16进制 游戏 char 1.0 程序 put and 字符型
原文地址:http://www.cnblogs.com/xzjj/p/7944992.html