gpt4 book ai didi

c - 应用开关并关闭?

转载 作者:行者123 更新时间:2023-11-30 21:09:17 29 4
gpt4 key购买 nike

所以我刚刚开始学习 C 编程,我决定通过提出问题使用react,让我的程序与最终用户对话来进行练习 他们

我首先为程序应用了if-else 语句来对人的年龄使用react。然后,当我使用 switch 语句到达你最喜欢的颜色部分时,按下任何按钮它就会关闭。

我的代码:

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>

main()
{

char name[25], c;
int a;
clrscr();

printf("Hello, whats your name? \n");
scanf("%s",name);
printf("nice to meet you %s!!!\n");

printf("Whats your age?");
scanf("%d",&a");
{
if((a <= 21) && (a >= 0))
printf("Young!\n");

else if((a <= 100) && (a >= 22))
printf("old!\n");

else
printf("that's not an age!\n");
}

printf("whats your favorite color? \n"); //this is where the program stops//
scanf("%c",&c);
switch(tolower(c)){
case 'r':printf("Fiery!");break;
case 'o':printf("oranggerrr!!");break;
.
. //basically applied the whole rainbow and put some reactions//
.

getch();
return 0;
}

最佳答案

好的,所以我在线编译了程序here ,进行一些更改,因为您给出的程序只能在旧的 Turbo C 中编译。

我编译了以下程序:

#include <stdio.h>
//#include <conio.h>
//#include <dos.h>
#include <ctype.h>

main()
{

char name[25], c;
int a;
//clrscr();

printf("Hello, whats your name? \n");
scanf("%s",name); //still dont get why it worked without the "&"//
printf("nice to meet you %s!!!\n");

printf("Whats your age?");
scanf("%d",&a);
{
if((a <= 21) && (a >= 0))
printf("Young!\n");

else if((a <= 100) && (a >= 22))
printf("old!\n");

else
printf("that's not an age!\n");
}

printf("whats your favorite color? \n"); //this is where the program stops//
scanf("%c",&c);
switch(c){
case 'r':printf("Fiery!");break;
case 'o':printf("oranggerrr!!");break;
// .
//. //basically applied the whole rainbow and put some reactions//
//.
}

getchar();
return 0;
}

好吧,当我执行它时,由于这一行,我遇到了段错误:

printf ("nice to meet you %s!!!\n");

printf ("nice to meet you %s!!!\n", name);

然后一切都很顺利。

现在你的疑问:

  • scanf("%s",名称);这是可行的,因为 name 是一个 char 数组,并且数组的名称等于该数组中第一个元素的地址。检查this评论。另外,你可以看到这个问题。

改进:

  • scanf("%c", &c); 更改为 scanf("%c", &c);

注意:我无法准确重现您的问题,因为我没有 Turbo C。另外,也许您的程序由于 tolower 而崩溃。请注意,tolower 返回更改后的字符,因此您必须执行以下操作:c = tolower (c);

关于c - 应用开关并关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973530/

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