编写一个程序,让用户在两个选项之间进行选择的作业 - C
Assignment to write a program that gives the user a choice between two options - C
我有一项作业到期,但我对具体要做什么一头雾水...我相信这很简单,但我还没有完全掌握要领。赋值是 -
编写一个程序,为用户提供 2 个菜单选项:要么调用一个函数来打印 4 次问候语和你的名字,要么调用一个函数从 10 倒数到 0 然后打印 "Blastoff!" .这两个函数都应该使用 for 循环来打印适当的输出。
到目前为止,我已经完成了提示和功能...但是我不确定如何根据用户的选择显示一个或另一个。谢谢您的帮助。
#include <stdio.h>
int main (void){
// declare counter variable
int i;
// prompt the user to make a choice
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n");
printf("\n");
// display greeting and name 4 times
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
你应该使用 Switch case。
switch(choice) {
case 1: //first for loop
break;
case 2: //second for loop
break;
}
看来您在这里遗漏了几点。首先,您还没有编写任何函数。尝试查看 here 以获得关于这方面的一些见解。
其次,要根据用户输入做出选择,您需要以某种方式实际获得该输入。您可能需要使用 scanf.
最后,一旦您获得了用户的输入(例如,在声明为 int input;
的变量中),您可以使用 if 来基于该变量控制程序的流程,如下所示:
if(input == 1){
greet();
}
else {
countDown();
}
干杯!如果您有任何其他问题,请随时在下面发表评论。
您应该读取用户键盘的输入:
int c;
c = getchar();
if (c == '1')
{
// display greeting and name 4 times
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
if (c == '2')
{
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
}
printf("Blastoff!");
首先你实际上并没有声明你的函数。 C 中的函数应该像 main
函数那样声明。有关详细信息,请参阅 here。
// display greeting and name 4 times
void greeting(){
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
void countdown() {
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
获取用户输入最常见的方式是通过键盘。 scanf
在 C 中实现了这一点。有关 scanf
here
的详细信息
int main(void){
int i, choice;
//prompt the user to make a choice
// You don't need 2 printf for the newlines stick them to one.
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n\n");
//This takes the user's input and puts it in the variable choice
scanf(%d, &choice);
}
最后,要根据用户输入决定要做什么,您可以使用 if then else
语句或 switch
。我将提供一个带有 if
语句的解决方案,您可以自己计算带有 switch
的解决方案。您的最终代码应如下所示。
int main(void){
int i, choice;
//prompt the user to make a choice
// You don't need 2 printf for the newlines stick them to one.
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n\n");
//This takes the user's input and puts it in the variable choice
scanf(%d, &choice);
if(choice == 1){
greeting();
}else{
countdown();
}
}
// display greeting and name 4 times
void greeting(){
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
void countdown() {
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
请记住,此代码有很多缺陷(主要是错误检查),但我想您的分配与此无关。
首先,您需要包含具有您需要的功能的库。您通过
执行此操作
#include <someLibrary.h>
在文档的开头。图书馆大多有 .h 扩展名。如果您尝试做某事,请始终寻找它们。您认为它们尽可能具有最佳性能和功能(并非总是如此)。
接下来你声明你的函数。函数有名称、进入其中的参数、body 和 return 值(可以是 float、int、char 等)。如果函数没有 return 任何东西,它们 return 无效(最后没有 return)。您在 main() 之前声明的函数仅包含参数类型。整个 body 在 main 之后(更好看)。
如果你用参数声明函数,你必须在 () 括号中提供这些函数的参数。即使不需要参数,您也可以像下面示例中的 getch() 一样使用它们。请注意,函数变成了它 return。如果您在函数中声明了一些新变量,它们将仅在函数中可见。另一方面,函数将看不到来自其他函数(主函数)的任何变量。如果需要,请声明全局变量(不推荐)。
#include <stdio.h>
#include <conio.h> //libraries
void function1(int);
float function2(float); //declaration of functions
int main()
{
char decision;
printf("press 'a' to run function1, press 'b' to run function2\n");
decision=getch(); //first see getch()? look in google for functionality and library !
int someInt=10;
float someFloat=11;
if(decision== 'a')
{
function1(someInt);
}
else if(decision == 'b')
{
printf("%f", funcion2(someFloat)); //example that function become what they return
}
else
{
printf("No decision has been made");
}
getch(); //program will wait for any key press
return 0;
}
void function1(int param1)
{
//print your stuff // this function return void, so doesnt have return; statement
}
float function2(float param1)
{
return 2*param1; //this function have to return some float
}
我有一项作业到期,但我对具体要做什么一头雾水...我相信这很简单,但我还没有完全掌握要领。赋值是 -
编写一个程序,为用户提供 2 个菜单选项:要么调用一个函数来打印 4 次问候语和你的名字,要么调用一个函数从 10 倒数到 0 然后打印 "Blastoff!" .这两个函数都应该使用 for 循环来打印适当的输出。
到目前为止,我已经完成了提示和功能...但是我不确定如何根据用户的选择显示一个或另一个。谢谢您的帮助。
#include <stdio.h>
int main (void){
// declare counter variable
int i;
// prompt the user to make a choice
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n");
printf("\n");
// display greeting and name 4 times
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
你应该使用 Switch case。
switch(choice) {
case 1: //first for loop
break;
case 2: //second for loop
break;
}
看来您在这里遗漏了几点。首先,您还没有编写任何函数。尝试查看 here 以获得关于这方面的一些见解。
其次,要根据用户输入做出选择,您需要以某种方式实际获得该输入。您可能需要使用 scanf.
最后,一旦您获得了用户的输入(例如,在声明为 int input;
的变量中),您可以使用 if 来基于该变量控制程序的流程,如下所示:
if(input == 1){
greet();
}
else {
countDown();
}
干杯!如果您有任何其他问题,请随时在下面发表评论。
您应该读取用户键盘的输入:
int c;
c = getchar();
if (c == '1')
{
// display greeting and name 4 times
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
if (c == '2')
{
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
}
printf("Blastoff!");
首先你实际上并没有声明你的函数。 C 中的函数应该像 main
函数那样声明。有关详细信息,请参阅 here。
// display greeting and name 4 times
void greeting(){
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
void countdown() {
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
获取用户输入最常见的方式是通过键盘。 scanf
在 C 中实现了这一点。有关 scanf
here
int main(void){
int i, choice;
//prompt the user to make a choice
// You don't need 2 printf for the newlines stick them to one.
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n\n");
//This takes the user's input and puts it in the variable choice
scanf(%d, &choice);
}
最后,要根据用户输入决定要做什么,您可以使用 if then else
语句或 switch
。我将提供一个带有 if
语句的解决方案,您可以自己计算带有 switch
的解决方案。您的最终代码应如下所示。
int main(void){
int i, choice;
//prompt the user to make a choice
// You don't need 2 printf for the newlines stick them to one.
printf("What would you like to do?\n 1. Print my name\n 2. Count down from 10\n\n");
//This takes the user's input and puts it in the variable choice
scanf(%d, &choice);
if(choice == 1){
greeting();
}else{
countdown();
}
}
// display greeting and name 4 times
void greeting(){
for(i=1;i<=4;i++)
{
printf("Hi, my name is Bridget\n");
}
}
void countdown() {
// display countdown
for(i=10;i>=0;--i)
{
printf("%d\n", i);
}
printf("Blastoff!");
}
请记住,此代码有很多缺陷(主要是错误检查),但我想您的分配与此无关。
首先,您需要包含具有您需要的功能的库。您通过
执行此操作#include <someLibrary.h>
在文档的开头。图书馆大多有 .h 扩展名。如果您尝试做某事,请始终寻找它们。您认为它们尽可能具有最佳性能和功能(并非总是如此)。
接下来你声明你的函数。函数有名称、进入其中的参数、body 和 return 值(可以是 float、int、char 等)。如果函数没有 return 任何东西,它们 return 无效(最后没有 return)。您在 main() 之前声明的函数仅包含参数类型。整个 body 在 main 之后(更好看)。
如果你用参数声明函数,你必须在 () 括号中提供这些函数的参数。即使不需要参数,您也可以像下面示例中的 getch() 一样使用它们。请注意,函数变成了它 return。如果您在函数中声明了一些新变量,它们将仅在函数中可见。另一方面,函数将看不到来自其他函数(主函数)的任何变量。如果需要,请声明全局变量(不推荐)。
#include <stdio.h>
#include <conio.h> //libraries
void function1(int);
float function2(float); //declaration of functions
int main()
{
char decision;
printf("press 'a' to run function1, press 'b' to run function2\n");
decision=getch(); //first see getch()? look in google for functionality and library !
int someInt=10;
float someFloat=11;
if(decision== 'a')
{
function1(someInt);
}
else if(decision == 'b')
{
printf("%f", funcion2(someFloat)); //example that function become what they return
}
else
{
printf("No decision has been made");
}
getch(); //program will wait for any key press
return 0;
}
void function1(int param1)
{
//print your stuff // this function return void, so doesnt have return; statement
}
float function2(float param1)
{
return 2*param1; //this function have to return some float
}