C/C++

Си. Программа выдаёт ошибку

Учебная программа. В чём ошибка? Я так понимаю где то в функции printf связано с спецификатором преобразования %s?

 #include  

main()
{
int client_1 = 4839, client_2 = 8251, client_3 = 5817;
double sum_client_1 = 20000.17, sum_client_2 = 195.53, sum_client_3 = 5023.58,
limit_client_1, limit_client_2, limit_client_3,
first_limit_client_1 = 50000, first_limit_client_2 = 2000, first_limit_client_3 = 3000;

limit_client_1 /= 2;
limit_client_2 /= 2;
limit_client_3 /= 2;

printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_1, limit_client_1, sum_client_1, sum_client_1 < limit_client_1 ? 'Limit previshen' : 'Limit ne previshen');
printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_2, limit_client_2, sum_client_2, sum_client_2 < limit_client_2 ? 'Limit previshen' : 'Limit ne previshen');
printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_3, limit_client_3, sum_client_3, sum_client_3 < limit_client_3 ? 'Limit previshen' : 'Limit ne previshen');

printf("Spisok schetov klientov s previshennim limitom\n");

if(sum_client_1 < limit_client_1)
printf("%d\n", client_1);

if(sum_client_2 < limit_client_2)
printf("%d\n", client_2);

if(sum_client_3 < limit_client_3)
printf("%d\n", client_3);

getchar();
return 0;
}
Валерий Соннов
Валерий Соннов
12 595
В данном коде есть несколько ошибок:

1. В функции main не указан тип возвращаемого значения. Рекомендуется указать int перед main().
2. В строках, где используется условный оператор для выбора строки для вывода, вы используете одинарные кавычки (') вместо двойных ("). Замените одинарные кавычки на двойные кавычки.
3. Переменные limit_client_1, limit_client_2 и limit_client_3 не инициализированы. Добавьте соответствующие значения перед делением на 2.
4. Используйте правильные операторы сравнения в условных выражениях в строках с проверкой на превышение лимита. Замените < на >.
5. Добавьте прототип функции main перед ее определением или перенесите определение функции main в начало программы.

Исправленный код будет выглядеть следующим образом:

#include <stdio.h>

int main(void)
{
int client_1 = 4839, client_2 = 8251, client_3 = 5817;
double sum_client_1 = 20000.17, sum_client_2 = 195.53, sum_client_3 = 5023.58,
limit_client_1 = 50000, limit_client_2 = 2000, limit_client_3 = 3000,
first_limit_client_1 = 50000, first_limit_client_2 = 2000, first_limit_client_3 = 3000;

limit_client_1 /= 2;
limit_client_2 /= 2;
limit_client_3 /= 2;

printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_1, limit_client_1, sum_client_1, sum_client_1 < limit_client_1 ? "Limit previshen" : "Limit ne previshen");
printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_2, limit_client_2, sum_client_2, sum_client_2 < limit_client_2 ? "Limit previshen" : "Limit ne previshen");
printf("Client number %d\n\nLimit = %.0f\nBalance = %.2f\n%30s\n\n", client_3, limit_client_3, sum_client_3, sum_client_3 < limit_client_3 ? "Limit previshen" : "Limit ne previshen");

printf("Spisok schetov klientov s previshennim limitom\n");

if (sum_client_1 > limit_client_1)
printf("%d\n", client_1);

if (sum_client_2 > limit_client_2)
printf("%d\n", client_2);

if (sum_client_3 > limit_client_3)
printf("%d\n", client_3);

getchar();
return 0;
}


После внесения этих изменений код будет исполняться без ошибок.
Александр Василега
Александр Василега
925
Лучший ответ
Ответ