- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好我是新来的,用 C 编程。我不想问一些你可能认为简单的问题,但我已经问过我的同学甚至我的编程老师,看看他们是否能找到错误,但直到今天他们都找不到找不到它(他们)。
但首先让我描述一下我所知道的,它说:
"Run-Time Check Failure #2 - Stack variable "d" (and sometimes m and other y) was corrupted ".
我做了我的工作试图调试它但是问题总是显示在最后一个代码行(主体的),所以我找不到问题的确切位置,在这里我附上代码,我会如果您发现问题并向我解释我得到它的原因(以后不要重复同样的错误),我将非常高兴 =D。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* Type Declaration */
#define true 1
#define false 0
typedef char boolean;
/* Functions declaration */
boolean test( short int d, short int m, long int y );
boolean nextday( short int d, short int m , long int y );
int main( void )
{
/* Variables initialization */
short int d = 0, m = 0;
long int y = 0;
do {
/* Data by user*/
printf( "Ingrese el numero de año: " );
scanf( "%ld", &y );
} while ( y < 0 );
do {
printf( "Ingrese el numero de mes: " );
scanf( "%d", &m );
} while ( m < 1 || m > 12 );
do {
printf( "Ingrese el numero de dia: " );
scanf( "%d", &d );
} while ( d < 01 || ( test( d, m, y ) == false ) ); // If the data is wrong then re-type the data
// If the nextday function return value is true then the next day is 01, if not just sum a day
if ( nextday ( d, m, y ) == true ) {
d = 01;
// If we start a new year the new month must be 01-01-01.
if ( m == 12 ) {
m = 01;
y++;
}
// Just increase the month for any other month
else {
m++;
}
}
else {
d++;
}
printf( "Mañana será: %d-%d-%ld\n", d, m, y );
return 0;
}
boolean test( short int d, short int m, long int y ){
int max;
switch(m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
max = 31;
break;
case 4:
case 6:
case 9:
case 11:
max = 30;
break;
case 2:
if ( y % 400 == 0 ){
max = 29;
}
else if ( y % 100 == 0 ){
max = 28;
}
else if ( y % 4 == 0 ){
max = 29;
}
else {
max = 28;
}
break;
}
if ( d <= max ){
return true;
}
else {
return false;
}
}
boolean nextday( short int d, short int m, long int y ) {
boolean x;
// If it's 28-02 in a secular year * 4 then it's a leap-year. (so it has 29 days)
if ( m == 2 && d == 28 && y % 400 == 0 ) {
x = false;
}
// If it is an end of century but it isn't 4 multiply then it only has 28 days.
else if ( m == 2 && d == 28 && y % 100 == 0 ) {
x = true;
}
// If it just a leap year it has 29 days.
else if ( m == 2 && d == 28 && y % 4 == 0 ) {
x = false;
}
//If it's the last day of February and it's a leap year.
else if ( m == 2 && d == 29 && y % 4 == 0 ){
x = true;
}
// If we are in the end of the month.
else if ( ( d == 30 && ( m == 4 || m == 6 || m == 9 || m == 11 ) ) ||
d == 31 ) {
x = true;
}
// Then if it is another day just sum a day
else {
x = false;
}
return x;
}
最佳答案
你需要使用:
scanf( "%hd", &m );
scanf( "%hd", &d );
因为它们是短整数。
使用“%d”,您基本上是在 small int
存储空间中加载一个 int
大小的变量。
int
通常是 4 个字节,而 small int
是 2 个字节。
关于c - 运行时检查失败 #2 - 变量 'd' 周围的堆栈已损坏。 (Visual Studio下的C编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12537371/
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我试图用这种形式简单地获取数字 28 integer+space+integer+integer+space+integer我试过这个正则表达式 \\s\\d\\d\\s 但我得到了两个数字11 和
最近一直在学习D语言。我一直对运行时感到困惑。 从我能收集到的关于它的信息中,(这不是很多)我知道它是一种有助于 D 的一些特性的运行时。像垃圾收集一样,它与您自己的程序一起运行。但是既然 D 是编译
想问一下这两个正则表达式有区别吗? \d\d\d 与 \d{3} 我已经在我的本地机器上使用 Java 和 Windows 操作系统对此进行了测试,两者都工作正常并且结果相同。但是,当在 linux
我正在学习 Go,而且我坚持使用 Go 之旅(exercise-stringer.go:https://tour.golang.org/methods/7)。 这是一些代码: type IPAddr
我在Java正则表达式中发现了一段令我困惑的代码: Pattern.compile( "J.*\\d[0-35-9]-\\d\\d-\\d\\d" ); 要编译的字符串是: String string
我在 ruby 代码上偶然发现了这个。我知道\d{4})\/(\d\d)\/(\d\d)\/(.*)/是什么意思,但是\1-\2-\3-\4 是什么意思? 最佳答案 \1-\2-\3-\4 是 b
我一直在努力解决这个问题,这让我很恼火。我了解 D 运行时库。它是什么,它做什么。我也明白你可以在没有它的情况下编译 D 应用程序。就像 XoMB 所做的那样。好吧,XoMB 定义了自己的运行时,但是
我有两个列表列表,子列表代表路径。我想找到所有路径。 List> pathList1 List> pathList2 当然是天真的解决方案: List> result = new ArrayList>
我需要使用 Regex 格式化一个字符串,该字符串包含数字、字母 a-z 和 A-Z,同时还包含破折号和空格。 从用户输入我有02-219 8 53 24 输出应该是022 198 53 24 我正在
目标是达到与this C++ example相同的效果: 避免创建临时文件。我曾尝试将 C++ 示例翻译为 D,但没有成功。我也尝试过不同的方法。 import std.datetime : benc
tl;dr:你好吗perfect forwarding在 D? 该链接有一个很好的解释,但例如,假设我有这个方法: void foo(T)(in int a, out int b, ref int c
有什么方法可以在 D 中使用abstract auto 函数吗? 如果我声明一个类如下: class MyClass { abstract auto foo(); } 我收到以下错误: mai
有没有人为内存中重叠的数组切片实现交集?算法在没有重叠时返回 []。 当 pretty-print (使用重叠缩进)内存中重叠的数组切片时,我想要这个。 最佳答案 如果您确定它们是数组,那么只需取 p
我已经开始学习 D,但我在使用 Andrei Alexandrescu 所著的 The D Programming Language 一书中提供的示例时遇到了一些麻烦。由于 int 和 ulong 类
如何创建一个不可变的类? 我的目标是创建一个实例始终不可变的类。现在我只是用不可变的方法和构造函数创建了一个“可变”类。我将其称为 mData,m 表示可变。然后我创建一个别名 alias immut
不久前我买了《The D Programming Language》。好书,很有教育意义。但是,我在尝试编译书中列出的语言功能时遇到了麻烦:扩展函数。 在这本书中,Andrei 写了任何可以像这样调用
我在 D http://www.digitalmars.com/d/2.0/lazy-evaluation.html 中找到了函数参数的惰性求值示例 我想知道如何在 D 中实现可能的无限数据结构,就像
这个问题在这里已经有了答案: 12 年前关闭。 Possible Duplicate: Could anyone explain these undefined behaviors (i = i++
当前是否可以跨模块扫描/查询/迭代具有某些属性的所有函数(或类)? 例如: source/packageA/something.d: @sillyWalk(10) void doSomething()
我是一名优秀的程序员,十分优秀!