Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 13:45   #1
Nazar0135
 
Регистрация: 28.02.2014
Сообщений: 4
По умолчанию Помогите найти ошибку на СИ)

Короче я написал тест прогу которая переводит числа в 13-ую систему счисления, показывает сумму и разность этих чисел. но проблема в том как написать чтобы он при введенных значениях показывал что "тест пройден" или не пройден? то есть проверял эти числа держа в уме правильный ответ)


вот код:
#include "stdio.h"
#include "math.h"

void chislo (int a) // Функция ввода
{
char ch[]="0123456789ABC";
if (a>=0 && a<13)
printf ("%c", ch[a]);
}

void print_chislo (int *k) //функция вывода
{
int i;
for (i=0;i<=9;i++)
{
chislo(k[i]);
}
}

void perevod19 (int *k, int a) //функция перевода числа в 13-ую систему счисления
{
int i;
for (i=9; i>=0; i--)
{
k[i]=a%13;
a=a/13;
}

}

void perevod10(int *g)//перевода числа в 10-ую систему счисления
{
int i,r=0,u=1;
for(i=9;i>=0;i--)
{
r=g[i]*u+r;
u=u*13;
}
printf("В 10-й системе число: %i", r);
}

void plus (int *a, int *b, int *sum) //функция сложения
{
int i, c=0;
for (i=9; i>=0; i--)
if (i==0000000048)
{
sum[i]=a[i]+b[i]+c;
c=sum[i]/13;
sum[i]%=13;
printf("Тест пройден!\n");
}
else
printf("Тест не пройден!\n");
}

void minus (int *a, int *b, int *diff) // функция вычитания
{
int i, c=0;
for (i=9; i>=0; i--)
if (i==0000000024)
{
diff[i]=a[i]-b[i]-c;
if (diff[i]<0)
{
diff[i]=diff[i]+13;
c=1;
printf("Тест пройден!");
}
else c=0;
printf("Тест не пройден!");
}
else;

}

void copy (int *a, int*b) // функция копирования из b в a
{
int i;
for (i=0; i<10; i++)
a[i]=b[i];


}

main()
{
printf("\nTest №1\n");
chislo(0);
chislo(5);
chislo(12);
chislo(13);
chislo(-1);

printf("\n\nTest №2\n");
int test[]={1,2,3,4,5,6,7,-5,12,20};
int *Test=&test[0];
print_chislo(Test);

printf("\n\nTest №3\n");
int a=45, b=15;
int test1[10], test2[10];
int *Test1=&test1[0], *Test2=&test2[0];
perevod19(Test1, a);
perevod19(Test2, b);
print_chislo(Test1);
printf("\n");
print_chislo(Test2);

printf("\n\nTest №4\n");
int sum[10];
int *sum12=&sum[0];
plus (Test1,Test2,sum12);


printf("\n\nTest №4\n");
int diff[10];
int *diff12=&sum[0];
minus (Test1,Test2,diff12);


printf("\n\nTest №5\n");
printf("Первое число: ");
print_chislo(Test1);
copy(Test1, Test2);
printf("\nЧисло после копирования: ");
print_chislo(Test1);


return 0;
}
Nazar0135 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10
Помогите найти ошибку! frantic150 Microsoft Office Excel 0 26.06.2009 18:23
помогите найти ошибку DelMaker JavaScript, Ajax 2 19.05.2009 18:27
Помогите найти ошибку Manchester Помощь студентам 3 09.02.2009 22:26