У меня проблема с кодом C, и я не вижу ошибки. Это простая программа - PullRequest
0 голосов
/ 17 апреля 2019

Я новичок в программировании.Для окружающей среды я использую Windows PowerShell ISE.Я получаю странную ошибку и не знаю, в чем может быть проблема.

Это код, который я использую:

#include <stdio.h>

int main(Int argc, char **argv){

int n;
printf ("Enter a number: ");

int seconds = (n % 60);
int minutes = (n % 3600) / 60;
int hours = (n % 86400) / 3600;
int days = (n % (86400 * 30)) / 86400;

printf ("Pretvorjeno število v sekunde, minute, ure ter dneve: ");
printf (%d +" dni "+ %d +" ur "+ %d +" minut in "+ %d +" sekund", days, hours, minutes, seconds);
}

Ошибка, которую я получаю: Сообщение об ошибке

Ответы [ 3 ]

1 голос
/ 17 апреля 2019

Ваша первая ошибка связана с тем, что вы написали в методе main


int main(){

Вам нужно, чтобы пользователь ввел ввод, программа не знает, что такое n.

int n;
printf ("Enter a number: ");
scanf_s("%d", &n);

в вашей последней строке вы должны изменить его на

printf ("%d dni %d ur %d minut in %d sekund", days, hours, minutes, seconds);
1 голос
/ 17 апреля 2019

от

int main(Int argc, char **argv){

до

int main(int argc, char **argv) {

от

printf (%d +" dni "+ %d +" ur "+ %d +" minut in "+ %d +" sekund", days, hours, minutes, seconds);

до

printf ("%d dni %d ur %d minut in %d sekund", days, hours, minutes, seconds);

Читай, читай, читай. Документация очень важна. Вот дружественный для начинающих сайт .

0 голосов
/ 17 апреля 2019

Исправленная версия:

#include <stdio.h>

int main(){
  int n;
  printf ("Enter a number: ");

  if (scanf("%d", &n) == 1) {
    int seconds = (n % 60);
    int minutes = (n % 3600) / 60;
    int hours = (n % 86400) / 3600;
    int days = (n % (86400 * 30)) / 86400;

    printf ("Pretvorjeno število v sekunde, minute, ure ter dneve: ");
    printf ("%d dni %d ur %d minut in %d sekund", days, hours, minutes, seconds);
  }
  return 0;
}

Я удалил argc / argv, потому что они не используются

Я добавил scanf , чтобы прочитать число и, конечно, проверить, еслиуспешное чтение (проверить, является ли число положительным, тоже может быть интересно)

Я добавил новую строку в printf и исправил формат

Компиляция и выполнение:

pi@raspberrypi:/tmp $ gcc -Wall -Wextra -pedantic c.c
pi@raspberrypi:/tmp $ ./a.out
Enter a number: 12345678
Pretvorjeno število v sekunde, minute, ure ter dneve: 22 dni 21 ur 21 minut in 18 sekund
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...