там ще є варіант коли треба підключити
#include <locale>
Це бібліотека С++
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Повідомлення користувача navchalkin
там ще є варіант коли треба підключити
#include <locale>
Це бібліотека С++
я знаю тільки
setlocale (LC_CTYPE, "ukr");
Здається не підійде під звичайне С
Ні, пробував. Помилка
Всім привіт. Пишу консольну програму на Сі, зіткнувся із такою проблемою: весь текст, що виводиться на екран тільки англійський, а якщо кирилиця -- то кракозябрики . Шукав в інеті як виводити кирилицю, знайшов тільки методи з С++, на Сі не працюють. Може хтось знає і поділиться?
Пане, вибачте, ми тут не телепати. По коду і опису змін в ньому неможливо встановити помилку - тільки по новому коду.
navchalkin написав:при кожному разі запуску програми потрібно вводити спочатку число більше 0
А якщо присвоїти значення замість вводу?
navchalkin написав:Тобто коли помилка -- кидає на кінець циклу, і починає з початку
while(...){ ... if(помилка){ continue; } ... }
або, знову ж таки,
while(...){ ... if( !помилка ){ ... } }
те що треба:) велике спасибі:)
navchalkin написав:koala написав:goto є, але використовувати його вкрай небажано. Є ще return (вихід з функції, а в main - з програми) і exit з stdlib.h. А ще можна робити гілки if: if(все правильно введено){код програми}.
По другому - вам потрібен цикл.Я зробив циклом, оголосив ще одну змінну, і задав їй умову, що вона більша 0, тоді працює калькулятор, але тепер при кожному разі запуску програми потрібно вводити спочатку число більше 0, аби калькулятор працював.
Використовуйте цикл з післяумовою do while
так і зробив. Тепер постало інше питання, коли вводити неправильні значення -- спрацьовує "return 0", і виходить з програми. Чи можна зробити, щоб воно не тікало за межі циклу? Тобто коли помилка -- кидає на кінець циклу, і починає з початку
goto є, але використовувати його вкрай небажано. Є ще return (вихід з функції, а в main - з програми) і exit з stdlib.h. А ще можна робити гілки if: if(все правильно введено){код програми}.
По другому - вам потрібен цикл.
Я зробив циклом, оголосив ще одну змінну, і задав їй умову, що вона більша 0, тоді працює калькулятор, але тепер при кожному разі запуску програми потрібно вводити спочатку число більше 0, аби калькулятор працював.
Всім привіт:) Друзі, є питання, пишу програму на Сі, недавно тільки почав цю мову вчити, тому не дуже обізнаний, суть питання така: треба зробити передчасне завершення програми, коли введені неправильні значення. Як це можна зробити? Можливо тут є щось схоже на GOTO?
І щоб не створювати ще одну тему, хотів попитати ще таке: як зробити, щоб після виконання програми вона не просила натиснути любу клавішу і після цього завершувалась, а щоб натичкаючи певну клавішу програма починала працювати знову?
navchalkin написав:HetmanNet написав:І сам хотів написати довідник на основі того що знаю, але ніяк не можу вирішити: PDF чи сайт.
Сайт! Окремі статті. Щоб все індексувалось, і статті були нормально написані, без дуже розумних термінів, які не кожен вшарить. "на хлопський розум", як то кажуть
і тоді тобі ціни не буде.
PDF (як і багато інших форматів) нормально індексується гуглями.
емм, є і інші пошуковики, наприклад на смартфоні я користуюсь бінгом - це 1) а ще читати окрему статтю краще, бо її не потрібно шукати фіг зна де, фіг зна на якій сторінці, і це факт - це 2:/
На ньому досі багато чого написано для Linux, і ці речі працюють найстабільніше в Linux. В С якщо помилився то точно знаєш це.
емм, наскільки я знаю, то С одна із найпоширеніших і найбільш використовуваних мов в цей час. В рейтингу популярності С друга, перша - Java
raxp написав:OFFTOP >
HetmanNet написав:Дякую
Файний PDF.. це скільки там сторінок?на даний час 935.
І сам хотів написати довідник на основі того що знаю, але ніяк не можу вирішити: PDF чи сайт.
Сайт! Окремі статті. Щоб все індексувалось, і статті були нормально написані, без дуже розумних термінів, які не кожен вшарить. "на хлопський розум", як то кажуть і тоді тобі ціни не буде.
Емм, якщо html рахувати за мову програмування - то перші мої кроки були в 13-14р., в 15 вчив Basic, в 16 Pascal, тепер 17, і вчу "C" Також пробував php та Phyton, але чот більше потянуло на древненьке, на основу основ, С
курча, я амперсанд не написав в сканф ото лайдик
Такс, привіт всім. Зіткнувся із проблемою: пишу програму по розрахунку арифметичної та геометричної прогресії, тільки от виникла проблема, при запуску програми спочатку все працює, вводиться перша змінна, друга, а при 3-й вилітає програма, із повідомленням "Зупинена робота програми". І постійно саме на цій змінній. Пробував в 2 різних середовищах програмування. Помилка однакова усюди. Можливо хтось знає причину, і спосіб вирішення?
Дякую наперед
ось код
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i,a,n,d,pro=0;
printf("Yaku progressiy bedem rakhuvaty: arifmetychnu[1], geometrychnu[2]\n");
scanf("%d",&i);
printf("=========================================\n");
switch (i)
{
case 1:
printf(" arifmetrychna progressiya\n");
printf("+++++++++++++++++++++++++++++++++++++++++++\n");
printf("Vvedit a, n, d: ");
scanf("%d %d %d",a,n,d);
pro=a+d*(n-1);
printf("%d",pro);
break;
case 2:
printf(" geometrychna progressiya\n");
printf("*******************************************\n");
break;
default:
printf(" error\n");
}
system("PAUSE");
return 0;
}
емм, село поблизу Франківська, 100 грн -- 50 мбіт/с. пінг 2 мс.
Ось готова програма, з норм зовнішнім виглядом, як на мене
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x1,x2,x3,y1,y2,y3;
float m,n,b;
printf("Enter x (3 points)\n");
scanf("%d%d%d",&x1,&x2,&x3);
printf("Enter y (3 points)\n");
scanf("%d%d%d",&y1,&y2,&y3);
m=sqrt(x1*x1+y1*y1);
n=sqrt(x2*x2+y2*y2);
b=sqrt(x3*x3+y3*y3);
printf("The distance from [0;0]: %f, %f, %f\n\n",m,n,b);
printf("==============================\n");
if(m<n&&m<b)
{
printf(" Point 1\n");
}
else if(n<m&&n<b)
{
printf(" Point 2\n");
}
else if(b<n&&b<m)
{
printf(" Point 3\n");
}
printf("==============================\n\n");
system("PAUSE");
return 0;
}
А чому різниця квадратів?
І це теж. Має бути сума квадратів координат.
Щодо попереднього мого зауваження: замість відстаней можна порівнювати квадрати відстаней (тобто, обійтись без знаходження коренів — якщо a>b≥0, то й a2>b2) — тоді m, n, b можна залишити цілими.
хм, теж ідея
А чому різниця квадратів?
m=sqrt(pow(x1,2)-pow(y1,2)); n=sqrt(pow(x2,2)-pow(y2,2)); b=sqrt(pow(x3,2)-pow(y3,2));
До речі, рекомендую використовувати структурні типи даних для моделювання точки на площині
Я розумію, що ви , можливо, цього ще не вчили , але загугліть , або почитайте в посібнику - дуже зручна штука.
І значно зекономить вам час і зменшить розмір коду.І ще 1. Навіщо фігурні дужки перед іфом(if)?
овв, точно, різниця квадратів -- це було помилкою то просто спати пора йти, баняк не варить
...Навіщо фігурні дужки перед іфом(if)?
Гг, то я пробував, можливо помилки не буде
Тут проблема в використанні цілих чисел для відстаней, тоді як вони можуть мати й дробову частину, яка при перетворенні до цілого відкидається. Спробуйте оголосити float m,n,b;
Емм, я ж оголосив цим змінним тип з плаваючою крапкою
Недавно почали вчити Сі, і дали ось таку задачу:
На площині задано 3 точки (х1, у1; х2, ...). Визначити, яка з них ближча до початку координат.
Я написав програму, але працює вона неправильно. Можливо, замість розгалужень є інший алгоритм пошуку меншої змінної?
(за функцію вводу я знаю: можна було записати в одному "scanf", просто я вже пробував різні конфігурації, бо не працювало)
Внизу на зображенні видно, що воно неправильно рахує
##include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int x1,x2,x3,y1,y2,y3;
float m,n,b;
printf("Press x\n");
scanf("%d",&x1);
scanf("%d",&x2);
scanf("%d",&x3);
printf("Press y\n");
scanf("%d",&y1);
scanf("%d",&y2);
scanf("%d",&y3);
m=sqrt(x1*x1-y1*y1);
n=sqrt(x2*x2-y2*y2);
b=sqrt(x3*x3-y3*y3);
printf("-- [0;0]: %f, %f, %f\n",m,n,b);
{
if(m<n&&m<b)
{
printf("Point 1\n");
}
else if(n<m&&n<b)
{
printf("Point 2\n");
}
else if(b<n&&b<m)
{
printf("Point 3\n");
}
}
system("PAUSE");
return 0;
}
}