流程图:
我尝试解决这个问题:
#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");
}
}
程序运行了,但我想得到一些关于我是否做对了的建议,因为我是初学者...... 谢谢!
所以有几件事,其中一个你的 || 应该是 &&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");
}
}
#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;
}