gpt4 book ai didi

c - 如何在 C 语言中使用 for 循环的初始化变量作为占位符?

转载 作者:太空狗 更新时间:2023-10-29 15:28:15 24 4
gpt4 key购买 nike

这是我的简单计算器的代码:

#include <stdio.h>

int main(void)
{
int n1, n2;
char op;

do {
printf("Enter which operation you want to do(+, -, *, /) \n"); op = getch();
} while(op!='+' && op!='-' && op!='*' && op!='/');

printf("\n");

switch(op) {
case '+':
printf("You chose to do addition.\n\n");
printf("Number 1: "); scanf("%i", &n1);
printf("Number 2: "); scanf("%i", &n2); printf("\n");
printf("%i + %i = %i\n", n1, n2, n1+n2);
break;
case '-':
printf("You chose to do subtraction.\n\n");
printf("Number 1: "); scanf("%i", &n1);
printf("Number 2: "); scanf("%i", &n2); printf("\n");
printf("%i - %i = %i\n", n1, n2, n1-n2);
break;
case '*':
printf("You chose to do multiplication.\n\n");
printf("Number 1: "); scanf("%i", &n1);
printf("Number 2: "); scanf("%i", &n2); printf("\n");
printf("%i * %i = %i\n", n1, n2, n1*n2);
break;
case '/':
printf("You chose to do division.\n\n");
float dn1, dn2;
printf("Number 1: "); scanf("%f", &dn1);
printf("Number 2: "); scanf("%f", &dn2); printf("\n");
printf("%f / %f = %f\n", dn1, dn2, dn1/dn2);
break;
}
}

如您所见,程序从用户那里获取输入并据此进行一些计算。它工作得很好,正如我所料,但是,我只从用户那里获取了两个数字。我想让用户能够根据需要多次输入数字。

我想过这样的事情,但对我来说这似乎很愚蠢。

for(int i=1; i<10; i++) {
printf("Enter number %i: ", i); scanf("%i", &{i}n);
}

我尝试使用 for 循环初始化变量来创建用户想要的新变量。

我在 JavascriptPython 方面有一点经验,我记得我可以使用初始化变量作为占位符。

最佳答案

您可以使用 variable length array (自 C99 起可用)并执行此操作:

首先定义数组:

int Arr[N];

然后在每个 case 语句中读入它:

printf("How many numbers you want to add?");
scanf("%i", &N);

for(int i=0; i<N; i++) { //index goes from 0 to N-1
printf("Enter number %i: ", i); scanf("%i", &Arr[i]);
printf("\n");
}

不要忘记检查 scanf 的返回值以确保您能够正确读取数据。

因为你知道你读入了数组的多少个元素(基于N的值),你可以相应地进行算术运算。

另请注意,getch 是一个非标准函数,请改用标准的 getchar

关于c - 如何在 C 语言中使用 for 循环的初始化变量作为占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com