我试图用c语言中的switch语句创建时间转换器,但它不起作用 #包括 #包括 int main(){ 字符问题单元,答案单元; 整数月份、天数、时间值、时间; 浮动答案; printf(“输入给定的时间值:”); 扫描频率(“%d”和时间值); printf(“月份-->a\n”); printf(“天数-->b\n”); printf(“小时-->c\n”); printf(“分钟-->d\n”); printf(“秒-->e\n”); printf(“输入给定的时间单位(按照上述符号):”; scanf(“%c”和问题单元); printf(“输入所需的时间单位(按照上述符号):”; scanf(“%c”和回答单位); 开关(问题单元){ 案例“a”: 时间=30*24*60*60*时间值; 打破 案例“b”: 时间=24*60*60*时间值; 打破 案例“c”: 时间=60*60*时间值; 打破 案例“d”: 时间=60*时间值; 打破 案例“e”: 时间=时间值; 打破 违约: printf(“您输入了错误的给定单位\n”); 打破 } 开关(应答单元){ 案例“a”: 答案=时间/(30*24*60*60); 打破 案例“b”: 答案=时间/(24*60*60); 打破 案例“c”: 答案=时间/(60*60); 打破 案例“d”: 答案=时间/60; 打破 案例“e”: 答案=时间; 打破 违约: printf(“您输入了错误的询问单位\n”); 打破 } printf(“%d--转换-->%f”,时间值,答案); getch(); 返回1; }

我试图用c语言中的switch语句创建时间转换器,但它不起作用 #包括 #包括 int main(){ 字符问题单元,答案单元; 整数月份、天数、时间值、时间; 浮动答案; printf(“输入给定的时间值:”); 扫描频率(“%d”和时间值); printf(“月份-->a\n”); printf(“天数-->b\n”); printf(“小时-->c\n”); printf(“分钟-->d\n”); printf(“秒-->e\n”); printf(“输入给定的时间单位(按照上述符号):”; scanf(“%c”和问题单元); printf(“输入所需的时间单位(按照上述符号):”; scanf(“%c”和回答单位); 开关(问题单元){ 案例“a”: 时间=30*24*60*60*时间值; 打破 案例“b”: 时间=24*60*60*时间值; 打破 案例“c”: 时间=60*60*时间值; 打破 案例“d”: 时间=60*时间值; 打破 案例“e”: 时间=时间值; 打破 违约: printf(“您输入了错误的给定单位\n”); 打破 } 开关(应答单元){ 案例“a”: 答案=时间/(30*24*60*60); 打破 案例“b”: 答案=时间/(24*60*60); 打破 案例“c”: 答案=时间/(60*60); 打破 案例“d”: 答案=时间/60; 打破 案例“e”: 答案=时间; 打破 违约: printf(“您输入了错误的询问单位\n”); 打破 } printf(“%d--转换-->%f”,时间值,答案); getch(); 返回1; },c,switch-statement,C,Switch Statement,当我运行此代码时。scanf()不能正常工作。它不接受任何值。scanf(“%c”和问号单位)只要求输入一个字符扫描单元(“%c\n”和问题单元)需要输入,这样才能问下一个问题。好的,我们甚至无法帮助您格式化它,因为即使是纯文本看起来也很混乱。识别plz,请在代码周围加上“`除了格式化代码以使其可读外,还请显示准确完整的运行日志-给出准确的输入,实际结果和预期结果。问题可能是在scanf中使用%c(一个常见问题)%c只读取一个字符。您可能正在输入一个字母,后跟ENTER/newline(\n)。

当我运行此代码时。
scanf()
不能正常工作。它不接受任何值。

scanf(“%c”和问号单位)只要求输入一个字符<代码>扫描单元(“%c\n”和问题单元)
需要输入,这样才能问下一个问题。

好的,我们甚至无法帮助您格式化它,因为即使是纯文本看起来也很混乱。识别plz,请在代码周围加上“`除了格式化代码以使其可读外,还请显示准确完整的运行日志-给出准确的输入,实际结果和预期结果。问题可能是在
scanf
中使用
%c
(一个常见问题)<代码>%c只读取一个字符。您可能正在输入一个字母,后跟ENTER/newline(\n)。
%c
将只使用字母并在输入中保留换行符。然后,下一个
scanf
将立即读取换行符,从而显示为跳过下一个输入。要创建代码块,请使用3个反勾号,而不是单引号。(反勾在我键盘上
1
键的左侧。)要修复代码,您应该回答问题,删除现有代码,然后在反勾之间复制/粘贴。
#include <stdio.h> 
#include <conio.h> 

int main() {
  char question_unit, answer_unit;
  int month, days, time_value, time;
  float answer;
  printf("enter the given time value : ");
  scanf("%d", &time_value);
  printf("Months  -->a \n");
  printf("Days    -->b \n");
  printf("Hours   -->c \n");
  printf("Minute  -->d \n");
  printf("Seconds -->e \n");
  printf("enter the given time unit (as per above notation): ");
  scanf("%c", &question_unit);
  printf("enter the required time unit (as per above notation): ");
  scanf("%c", &answer_unit);
  switch (question_unit) {
    case 'a':
      time = 30 * 24 * 60 * 60 * time_value;
      break;
    case 'b':
      time = 24 * 60 * 60 * time_value;
      break;
    case 'c':
      time = 60 * 60 * time_value;
      break;
    case 'd':
      time = 60 * time_value;
      break;
    case 'e':
      time = time_value;
      break;
    default:
      printf("You enter wrong given unit\n");
      break;
  }
  switch (answer_unit) {
    case 'a':
      answer = time / (30 * 24 * 60 * 60);
      break;
    case 'b':
      answer = time / (24 * 60 * 60);
      break;
    case 'c':
      answer = time / (60 * 60);
      break;
    case 'd':
      answer = time / 60;
      break;
    case 'e':
      answer = time;
      break;
    default:
      printf("You enter wrong asked unit\n");
      break;
  }
  printf("%d --convered--> %f", time_value, answer);
  getch();
  return 1;
}