我有一个C代码的问题,我看不出错误。这是一个简单的程序

我有一个C代码的问题,我看不出错误。这是一个简单的程序,c,C,我是编程的初学者。对于环境,我使用的是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 % 8640

我是编程的初学者。对于环境,我使用的是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);
}
#包括
int main(int argc,字符**argv){
int n;
printf(“输入一个数字:”);
整数秒=(n%60);
整数分钟=(n%3600)/60;
整小时=(n%86400)/3600;
整数天=(n%(86400*30))/86400;
printf(“Pretvorjenoštevilo诉sekunde案,分录,第四节:”);
printf(%d+“dni”++%d+“ur”++%d+“sekund”中的分钟数,天、小时、分钟、秒);
}
我得到的错误是: 更正版本:

#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;
}

您的第一个错误来自您在main方法中编写的内容


int main(){
你需要用户输入,程序不知道什么是n

intn;
printf(“输入一个数字:”);
扫描频率(“%d”和“&n”);
在您的最后一行中,您需要将其更改为

printf(“%d dni%d ur%d分钟,单位为%d sekund”,天、小时、分钟、秒);
来自


阅读,阅读,阅读。文档非常重要。这是一个初学者友好型文档。

Int-argc
更改为
Int-argc
。C是区分大小写的。您需要阅读
printf
文档,因为现在您正在滥用它。那么n的初始值在哪里?输入的数字在哪里?最后一个printf应该是printf(%d个dni%d个ur%d分钟(以%d秒计),天、小时、分钟、秒);@Matic1295您确定您是用C编译的吗?您的屏幕截图显示您正在以
.ps1
文件的形式运行它,这一事实是错误的worrying@Matic1295在线编译/执行:@bruno非常感谢您提供的在线解决方案。它现在对我来说很有用。但我仍然不明白为什么。即使我使用手动(通过PowerShell)要执行该文件,它是相同的。@Matic1295我认为Windows PowerShell集成脚本环境(ISE)不是符合C编译器的资格。这是一个错误。是的。在你问我是否确定我为C编译之前。该程序为文件自动生成了一个.C扩展名,因此我假设这实际上是C:D。我在第一个答案下做了另一个注释,错误更多:O
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
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);