将流程图转换为C语言程序(我是编程新手,需要帮助)

问题描述 投票:0回答:2

流程图:

我尝试解决这个问题:

#include <stdio.h>
int main()
{
  int n;
  int m;
  printf("enter two numbers:");
  scanf("%d%d", &n, &m);
  if (n > 0 || n-m>0) {
    puts("A");
  }
  else {
    puts("C");
  }
  if (n-m < 0 || n <= 13){
    puts ("B");
  }
}

程序运行了,但我想得到一些关于我是否做对了的建议,因为我是初学者...... 谢谢!

c flowchart
2个回答
1
投票

所以有几件事,其中一个你的 || 应该是 &&s,因为你想确保两个条件都适用。其次,你的最后一个 if 语句应该是 else if,否则你会得到多个输出。

您的第一个条件句的 n-m 为 >,应该是 <.

例如,如果输入是 -5 和 -10,您会回复 A B,但正确的回复应该是 C。

#include <stdio.h>
int main()
{
  int n;
  int m;
  printf("enter two numbers:");
  scanf("%d%d", &n, &m);
  if (n > 0 && n-m<0) {
    puts("A");
  }
  else if (n-m < 0 && n <= 13){
    puts ("B");
  }
  else if (n <= 0){
    puts("C");
  }

}

但是,嵌套条件以更紧密地匹配图表可能是有益且可读的:

#include <stdio.h>
int main()
{
  int n;
  int m;
  printf("enter two numbers:");
  scanf("%d%d", &n, &m);
  if (n > 0) {
    if(n - m < 0){
      puts("A");
    }
    else if (n <= 13){
      puts("B");
    }
  }
  else{
    puts("C");
  }

}

0
投票
#include <stdio.h>

int main() { int 年、月、daysInMonth、startingDay、i、j;

printf("Enter year: ");
scanf("%d", &year);
printf("Enter month (1-12): ");
scanf("%d", &month);

int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    days[1] = 29; 
}

startingDay = 1;
for (i = 1; i < month; i++) {
    startingDay += days[i - 1];
}
startingDay = (startingDay + year - 1 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400) % 7;
printf("\n\n---------------------------\n");
printf("   S   M   T   W   T   F     S\n");
printf("---------------------------\n");

for (i = 0; i < startingDay; i++) {
    printf("    "); 
}

daysInMonth = days[month - 1];
for (j = 1; j <= daysInMonth; j++) {
    printf("%4d", j);
    startingDay++;
    if (startingDay > 6) {
        startingDay = 0;
        printf("\n");
    }
}

printf("\n---------------------------\n");

return 0;

}

© www.soinside.com 2019 - 2024. All rights reserved.