Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

软件:week 7 问题反馈 #24

Open
ghostbody opened this issue Nov 9, 2015 · 25 comments
Open

软件:week 7 问题反馈 #24

ghostbody opened this issue Nov 9, 2015 · 25 comments

Comments

@ghostbody
Copy link
Collaborator

1、记得本周有实验作业 实验:程序调试
2、期中考试时间,11月9日,8:00。
地点:实验中心B403
理论考试时间:8:00 ~ 9:30
实验机试:9:40 ~ 11:10 (暂定5题)

周知。

3、往年期中考试题稍后会放在
http://172.18.215.225:8080/
大家可以计时做题。

4、本周讨论请在本issue后留言,欢迎讨论。

@ghostbody ghostbody changed the title week 7:问题反馈 软件:week 7 问题反馈 Nov 9, 2015
@wujr5 wujr5 added the 软件班 label Nov 9, 2015
@HillCJL
Copy link

HillCJL commented Nov 10, 2015

拓展题中math头文件无法调用
其中的函数调用时显示未定义

@ghostbody
Copy link
Collaborator Author

@LinTheLegend 已修复

@JerryChan31
Copy link

@ghostbody 刚刚室友遇到一个很奇怪的bug……就是做Sicily上的#1002 用来储存数据的数组长度为1000的时候,算法不能得到正确结果,连续输入3个相同的数字得不到输出。但是其他不变,把数组长度改为200 或者 101以后结果就对了,连续3个相同的数可以输出。Sicily也AC了。这是什么原因?……

@ghostbody
Copy link
Collaborator Author

@JerryChan31 数组是不是没初始化,还有描述问题具体一点,不知道你描述的是什么意思。

@HillCJL
Copy link

HillCJL commented Nov 10, 2015

1010中那个p是干什么用的。。。
When you output the Score, keep the symbol of the Score, and use the absolute value of the Score to mod p.
然而却没输出。

@summer06
Copy link

我想问一下,sicily上的running time error要怎么解决?是代码哪里出了问题?

@SgLy
Copy link

SgLy commented Nov 12, 2015

@summer06 就是运行的时候出现了运行错误,可能是有些地方没有处理好。再仔细检查一下代码,考虑清楚所有可能的情况

@czjcssy
Copy link

czjcssy commented Nov 13, 2015

#include<stdio.h>
int main() {
    int a = 1 | 0;
    int b = a & 4;
    printf("%d\n",  !a & b + a ^ b);
    return 0;
}

。。。这是这周理论题的第九题
答案最后输出了0

我想问的是...我搜了百度之后大概知道这些符号是什么意思
但是可能理解得不太对 想问一下是哪些理解错了。
理解:(假设存储的int都是8位 ...不想写32位了)
第一行 : a = 1 | 0, a = 00000001对吗
第二行 : b = 1 & 00000100 , b = 00000000对吗?(每位都按位与 都得到0)
第三行 : !a = 11111110 ,b=00000000, 所以!a & b = 00000000 对吗?
^是按位异或 ,那a^b = 00000001 ^ 00000000 = 00000001 对吗?
最终结果就是 0 + 1 = 1 。。。
但是答案是0...虽然是什么语句理解得不对呢?

@czjcssy
Copy link

czjcssy commented Nov 13, 2015

接上一条。。
搜了一下 !是逻辑非运算符..
也就是说!a 表示的是: 如果a为0,则!a = 1
如果a为非0的任意数,则!a = 0 ?吗?

@Icenowy
Copy link

Icenowy commented Nov 13, 2015

是的呢

  • 发送自我的Sony Xperia™智能手机

@sugerpocket
Copy link

我用vs配置行编译,发现无法包括头文件stdio.h,但是已经配置好了环境变量include怎么还会这样呢?

@czjcssy
Copy link

czjcssy commented Nov 13, 2015

我好像知道为什么了。。。

#include<stdio.h>
int main() {
    int a = 1 | 0;
    int b = a & 4;
    printf("%d\n",  !a & b + a ^ b);
    return 0;
}

我又查了一下 & 与^等运算符的优先级
发现 + 是在 &之前, & 是在 ^之前的。
所以最终的答案是 (!a) & (b+a) ^ b
又因为a=1 所以 !a= 0
所以 翻译过来是 0 & 1 ^ 0;
即 0^0 = 0
所以答案是0

这个理解对了吗??有人能回答一下么。。。

@Icenowy
Copy link

Icenowy commented Nov 13, 2015

VS有自带的专用命令提示符,配置命令编译请使用VS自带的命令提示符

  • 发送自我的Sony Xperia™智能手机

---- 包包里有糖编写 ----

我用vs配置行编译,发现无法包括头文件stdio.h,但是已经配置好了环境变量include怎么还会这样呢?


Reply to this email directly or view it on GitHub:
#24 (comment)

@czjcssy
Copy link

czjcssy commented Nov 13, 2015

#include<stdio.h>
int main() {
    unsigned char a = 0xA5;
    unsigned char b = ~a>>4;
    b = b;
    printf("%d\n", b);
    return 0;
}

...这是理论题第十题
a=(165)10 = (10100101)2
b=~a >> 4 = (00001010)2 = 5 (取反右移4位后前面补0(无符号))
b = b (这个语句是什么用处?也就是说上一行声明的时候 b并不等于a取反右移4位咯??)
然后最后答案输出了245...然而我算的是5← ←
求解释....

@ghostbody
Copy link
Collaborator Author

@15331048 因为,unsigned char是8位,然而~运算和>>运算都是在32位int下的运算符。

@czjcssy
Copy link

czjcssy commented Nov 13, 2015

@ghostbody ....所以是什么意思.....

@ghostbody
Copy link
Collaborator Author

@15331048 你的思路是用8位运算的呀

@czjcssy
Copy link

czjcssy commented Nov 15, 2015

@ghostbody 所以会把a先隐式转换成有符号的int类型 再进行按位取反等运算吗?那a就不是165了 ?? 从unsigned char 的165 转成32位int会怎么转....?

@summer06
Copy link

qq 20151115190634
1005那道题我输出这样,sicily说presentation error,是为什么呢?

@dengsonhua
Copy link

数组排序除了TA给出的三种,我还找到了两种。发表出来,希望可以的到讨论的分数2333
52p27h esaid59f z3vn9u
jl13 49q2efg bp eqc1i

@ghostbody
Copy link
Collaborator Author

@dengsonhua 用c语言实现相同的功能

@N1klausss
Copy link

总是遇到数组下标的问题,不知道为什么有时候下标太大输出结果就会出错,改小了虽然答案变成正确了但又不符合题目要求这是为什么啊

@CN96
Copy link

CN96 commented Nov 18, 2015

求助。。Dev一点调试就错误停止工作怎么办?

@CN96
Copy link

CN96 commented Nov 18, 2015

经过q群上同学的帮助,只要点开工具里的编译选项,选择代码生成/优化,再选择连接器,下面的五行中有一行产生调试信息,把NO改成YES就好了

@chengwenchao
Copy link

能在命令窗口运行程序,但不能进行文件输入。可能是什么原因?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests