- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 C 语言编写了一个小程序来帮助自己学习从十进制到二进制的转换。当我运行它时,它会打印出一个随机数供我转换,并等待我输入转换后的数字。输入十进制数字并按 Enter 键后,它将发送我的“恭喜!”如果我正确的话,会出现消息,但也会出现错误:
Abort trap: 6
在输出中,即使程序从头到尾大部分都运行良好。我知道 Abort trap: 6
与数组有关,但除此之外我不确定。有任何想法吗?哦,下面是我的程序。
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define MAX_NUMBER 256 // random number will fall between 0 and 255
#define BI_NUM_SIZE 8 // represents the 8 spaces needed for each number
/* This function does the exponentiation operation
to ints and returns an int */
int exponent (int base, int power)
{
int answer = base, i;
if (power < 0) {
printf ("ERROR: no negative numbers as the power "
"in the exponent function!\n");
return 0;
}
if (power == 0) {
return 1;
} else {
for (i = 1; i < power; i++) {
answer *= base;
}
return answer;
}
}
int main () {
int number_to_convert, i, j, k;
char possible_answer[BI_NUM_SIZE];
char answer[BI_NUM_SIZE];
char answer_check;
srand (time (NULL));
number_to_convert = rand () % MAX_NUMBER;
// this for loop solves the decimal to binary conversion
// and stores the character array answer in 'answer';
// as i decrements for the conversion math j will from 0 to place
// characters in the answer array
j = 0; // allows for indexing through answer[]
// starts as number_to_convert but gets widled down
int temp_number = number_to_convert;
for (i = BI_NUM_SIZE; i > 0; i--) {
// as part of the
if (temp_number >= exponent (2, i - 1)) {
answer[j] = '1';
temp_number -= exponent (2, i - 1);
} else {
answer[j] = '0';
}
j++;
}
printf ("Convert %3d to binary:\n", number_to_convert);
printf ("type your answer and press enter:\n");
scanf ("%s", &possible_answer);
answer_check = 0;
for (i = 0; i < BI_NUM_SIZE; i++) {
if (answer[i] == possible_answer[i]) {
answer_check++;
}
}
if (answer_check == BI_NUM_SIZE) {
printf ("CONGRATS! you got it right!\n");
} else {
printf ("sorry the answer is ");
for (i = 0; i < BI_NUM_SIZE; i++) {
printf ("%c", answer[i]);
}
}
return 0;
}
最佳答案
当使用scanf
和格式说明符%s
读取信息时,scanf
将读取字符,直到遇到第一个空白,将结果作为以nul结尾字符串存储在给定的相应指针参数中。如果您打算读取用户在 possible_answer
中输入的 8 个字符,则具有适当宽度限制的 scanf
调用的正确形式为:
scanf ("%8s", possible_answer);
(注意:您不能在 possible_answer
前面包含 '&'
,因为它已经是一个指针。您还应该检查返回以确保 1 次成功转换。)
您必须为要读取的字符数 +1
提供足够的空间来表示 nul-termination 字符。如果您打算将 8 个字符读入 possible_answer
,则必须为 9 个字符提供存储空间。例如:
#define BI_NUM_SIZE 8+1
另请注意,这将需要调整依赖于下面的 BI_NUM_SIZE
的所有循环和测试边界。例如:
for (i = BI_NUM_SIZE - 1; i > 0; i--) {
...
if (answer_check == BI_NUM_SIZE - 1) {
包含每个更改的相关代码是:
for (i = BI_NUM_SIZE - 1; i > 0; i--) {
// as part of the
if (temp_number >= exponent (2, i - 1)) {
answer[j] = '1';
temp_number -= exponent (2, i - 1);
} else {
answer[j] = '0';
}
j++;
}
printf ("Convert %3d to binary\n", number_to_convert);
printf ("answer and press enter: ");
scanf ("%8s", possible_answer);
answer_check = 0;
for (i = 0; i < BI_NUM_SIZE - 1; i++) {
if (answer[i] == possible_answer[i]) {
answer_check++;
}
}
if (answer_check == BI_NUM_SIZE - 1) {
printf ("\nCONGRATS! you got it right!\n\n");
} else {
printf ("sorry the answer is : ");
for (i = 0; i < BI_NUM_SIZE - 1; i++) {
printf ("%c", answer[i]);
}
putchar ('\n');
}
return 0;
进行这些更改后,您的代码应该可以正常运行。 注意:在编写代码时,您必须在答案中提供所有前导 0
。例如:
输出
$ ./bin/bincnv
Convert 117 to binary
answer and press enter: 00000001
sorry the answer is : 01110101
$ ./bin/bincnv
Convert 71 to binary
answer and press enter: 01000111
CONGRATS! you got it right!
关于c - 十进制转二进制转换程序 "abort trap: 6"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35237895/
我已经在标准 WPF 控件中实现了一个报告,并且还实现了一个 DocumentPaginator获取这些控件并将它们转换为用于打印的文档。 我还实现了一些使用文档分页器将页面呈现为图像并使用 PDFS
在 C# 中,我有以下代码: public static string GetHashCode(string p) { var a = new SHA256Managed();
您好,我正在尝试在编码后将我的 mysqli 数据库输出到一个 js 文件,我用 json_encode 对其进行编码没有任何问题,但是如何将其放入 js 文件中(每次更新时更新) mysqli数据已
我需要将 select 从 JS 传递到 HTML。 select 应该包含来自 PHP 的 option。 所以,首先我有一个 HTML div,我将在其中添加来自 JS 的内容。
我有一个相当大且复杂的 SVG 代码,它根据页面信息使用 JavaScript 和 jQuery 动态生成。 然后我有一个 AJAX 帖子保存。 我无法将其转换为正确发布图像数据? var canva
我想将我的本地日期 ([NSDate date]) 转换为 GMT 以创建一个 JSON 字符串 (/Date(1324435876019-0000)/)。 当我将时钟设置为 EST 时区时,我的代码
1. 原始单据与实体之间的关系 可以是一对1、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章服务器五大相关基础知识【转】由作者收集整理,如果你对这篇文章有兴趣,记得
Google Apps 脚本 - Gmail 是否会实现 GmailMessage (GmailThread) .getAsPdf() 方法?预期输出与 Gmail 中可用的打印为 PDF 的输出相同
有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常、警告状态)使用了位运算机制在一个int型中存储。 现在监控日志数据量非常大(亿级别)需要对数据按每小时、每天进行聚合,供
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界. 这篇CFSDN的博客文章1张图看懂RAID功能,6张图教会配置服务器【转】由作者收集整理,如果你
我正在使用 FFMPeg(版本 ffmpeg-20170330-ad7aff0-win64-static)将 RTSP 转换为 .m3u8。 命令是: ffmpeg -rtsp_transport t
我有一个 JTree使用 DefaultTreeModel 的对象作为模型,我添加/删除与该模型相关的节点。 此时,我需要在图形界面中显示树结构,例如 JPanel .如何映射 DefaultTree
我当前正在接收一个文件并将其存储到 NSString 中。然后,我从字符串中创建一个数组并将其呈现在 TableView 中。这在一定程度上有效。我目前收到的数据如下: 公司名称|帐户代码\r\n公司
我需要创建 NSImage cocoa 对象的 base64 字符串表示形式。处理这个问题的最佳方法是什么,苹果文档似乎在这个主题上有点短(或者我只是找不到它)。 Base64 编码从外面看起来相当复
JS 中的 .toISOString() 函数给我这样的字符串: 2015-06-14T20:00:00:000Z 我需要它是这样的: 2015-06-14T20:00:00Z JS 中是否有其他函数
我正在尝试使用 JavaScript 转换 COLORREF: COLORREF : When specifying an explicit RGB color, the COLORREF value
我在这里遇到了这个代码的问题,只是想制作一个小计算器: 打包申请; import javafx.event.ActionEvent; import javafx.scene.control.TextF
我想要做的是能够通过本地PC上的USS通过sshfs挂载主机上的一些文件。我可以做到这一点,但 sshfs 不能直接完成从 EBCDIC 到 ascii/unicode 的转换。有没有我可以设置的标志
我正在尝试在 python 中将一堆 Visio 文件转换为 pdf。我已经引用了这个.doc to pdf using python并编写了以下代码: import comtypes.client
我是一名优秀的程序员,十分优秀!