Я использую Code :: blocks для компиляции моего первого файла с несколькими исходными текстами, который был изучен из "C Программирование на простых шагах" Майка МакГрата.К сожалению, у моих математических функций, похоже, проблемы.Вот заголовок, который содержит функции:
/* 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.Абаов это .h.MENU.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;
}