功能选择之后不能自动弹出下一个printf内容。
#pragma warning(disable:4996) //scanf报错C6031 返回值被忽略 可以通过添加此代码解决
#include "stdio.h"
int muln(int n);
int main()
{
int gn;
printf("请输入1个整数:");
scanf("%d ", &gn);
/*if (gn == 1)
{
long int result1;
result1 = result();
printf("两者相差天数=%ld天\n", result1);
}*/
if (gn == 2)
{
int i;
printf("请输入一个整数:");
scanf("%d", &i);
if (i & 1)
{
printf("%d为奇数", i);
}
else
{
printf("%d为偶数", i);
}
}
if (gn == 3)
{
int j[3];
printf("请输入两个整数:");
scanf("%d %ld", &j[1], &j[2]);
if (j[1] > j[2])
{
j[0] = j[1];
j[1] = j[2];
j[2] = j[0];
}
printf("%d到%d之间的偶数为:", j[1], j[2]);
for (int i = j[1] + 1; i < j[2]; i++)
{
if (i % 2 == 1)
{
printf("%d\t", i);
}
}
printf("\n%d到%d之间的奇数为:", j[1], j[2]);
for (int k = j[1] + 1; k < j[2]; k++)
{
if (k % 2 == 0)
{
printf("%d\t", k);
}
}
}
if (gn == 4)
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", i, j, i * j);
}
printf("\n");
}
}
if (gn==5)
{
int num;
long int num1;
printf("请输入一个整数:");
scanf("%d", &num);
num1 = muln(num);
printf("\n%d!=%d", num, num1);
}
return 0;
}
int muln(int n)
{
if (n>0)
{
return n * muln(n - 1);
}
else
{
return 1;
}
}
scanf("%d ", &gn);
把%d后面的空格删掉,画蛇添足啦
scanf后的%d
多了一个空格,你输入的时候也必须输入这个空格才能被识别出来。所以应该把这个括号去掉
如果对你有帮助,还请点个采纳,万分感谢!
这样:
#pragma warning(disable:4996) //scanf报错C6031 返回值被忽略 可以通过添加此代码解决
#include "stdio.h"
int muln(int n);
int main()
{
int gn;
printf("请输入1个整数:");
scanf("%d", &gn);
/*if (gn == 1)
{
long int result1;
result1 = result();
printf("两者相差天数=%ld天\n", result1);
}*/
if (gn == 2)
{
int i;
printf("请输入一个整数:");
scanf("%d", &i);
if (i & 1)
{
printf("%d为奇数", i);
}
else
{
printf("%d为偶数", i);
}
}
if (gn == 3)
{
int j[3];
printf("请输入两个整数:");
scanf("%d %ld", &j[1], &j[2]);
if (j[1] > j[2])
{
j[0] = j[1];
j[1] = j[2];
j[2] = j[0];
}
printf("%d到%d之间的偶数为:", j[1], j[2]);
for (int i = j[1] + 1; i < j[2]; i++)
{
if (i % 2 == 1)
{
printf("%d\t", i);
}
}
printf("\n%d到%d之间的奇数为:", j[1], j[2]);
for (int k = j[1] + 1; k < j[2]; k++)
{
if (k % 2 == 0)
{
printf("%d\t", k);
}
}
}
if (gn == 4)
{
int i, j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d*%d=%d\t", i, j, i * j);
}
printf("\n");
}
}
if (gn==5)
{
int num;
long int num1;
printf("请输入一个整数:");
scanf("%d", &num);
num1 = muln(num);
printf("\n%d!=%d", num, num1);
}
return 0;
}
int muln(int n)
{
if (n>0)
{
return n * muln(n - 1);
}
else
{
return 1;
}
}
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据代码逻辑,如果输入的gn是2,程序会先输出"请输入一个整数:",然后等待用户输入一个整数,然后根据输入的整数是奇数还是偶数,输出相应的提示。然后程序就结束了,因为没有任何循环或者等待用户输入的操作。
·
如果您想让程序在输出提示之后继续等待用户输入,可以使用一个循环,比如使用一个while循环包裹整个程序,每次循环结束后再次输出"请输入1个整数:",等待用户输入。
·
示例代码:
#include <stdio.h>
int muln(int n);
int main()
{
int gn;
while (1) {
printf("请输入1个整数:");
scanf("%d", &gn);
if (gn == 2)
{
int i;
printf("请输入一个整数:");
scanf("%d", &i);
if (i & 1)
{
printf("%d为奇数\n", i);
}
else
{
printf("%d为偶数\n", i);
}
}
// 其他分支同理省略
// 如果输入的不是有效选项,跳出循环
if (gn < 1 || gn > 5) {
break;
}
}
return 0;
}
int muln(int n)
{
if (n > 0)
{
return n * muln(n - 1);
}
else
{
return 1;
}
}
这里我们使用了一个死循环 while(1),程序会一直循环,直到用户输入了一个不在范围内的选项,此时使用 break 语句退出循环,程序结束。每次循环开始时,都会输出"请输入1个整数:"并等待用户输入。