gpt4 book ai didi

c - C 中的数学函数

转载 作者:行者123 更新时间:2023-12-04 06:18:55 29 4
gpt4 key购买 nike

我正在使用 Code::blocks 编译我的第一个多源文件,这是从 Mike McGrath 的“C Programming in easy steps”中学到的。不幸的是,我的数学函数似乎有问题。这是包含函数的标题:

/* this header file contains utility functions */

int square(int x); /* function prototypes */
int multiply(int x, int y);

int square(int x)
{
return (x*x);
}

int multiply(int x, int y)
{
return (x*y);
}

唯一有问题的函数是“square()”。它将“2”的输入读取为“2293356”并将正方形输出为“553755367”......到底是什么?!?

这是 menu.c 文件... 有 menu.c、ops.c、calc.c 和 utils.h。 Abaov 是 .h。
菜单.c
包括
void menu();

void menu()
{

int num;
printf("\n\tEnter the number of an operation:\n");
printf("\t1. Square a number\n");
printf("\t2. Multiply two numbers\n");
printf("\t3. Exit\n");
scanf("%d", &num);
switch(num)
{
case 1 : getnum(); break;
case 2 : getnums(); break;
case 3 : return;
}
}

这是 ops.c...
#include <stdio.h>
#include "utils.h"

void getnum();
void getnums();

void getnum()
{

int num;
printf("Enter an integer to be squared: ");
scanf("%d", &num);
printf("%d squared is %d\n, num, square(num)");
menu();
}

void getnums()
{

int num1, num2;
printf("Enter two numbers to be multiplied, ");
printf("seperated by a space: ");
scanf("%d", &num1);
scanf("%d", &num2);
printf("%dx%d = %d\n", num1, num2, multiply(num1, num2));
menu();

}

这是程序的最后一部分,calc.c,
#include <stdio.h>
int main()
{
menu();
printf("end\n");
return 0;
}

最佳答案

的正方形2293356 不适合 int因此溢出导致未定义的行为!至于为什么它读为 2 为 2293356 没有更多代码就无法回答。

更新:
这是你真正的错误:

printf("%d squared is %d\n, num, square(num)");

应该
printf("%d squared is %d\n", num, square(num));

:)

关于c - C 中的数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860367/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com