【发布时间】:2019-11-03 17:12:02
【问题描述】:
#include <stdio.h>
void aeins(){
int x;
unsigned int y;
double z;
printf("Geben sie einen ganze Zahl ein: ");
scanf("%d", &x);
printf("Geben sie eine natürliche Zahl ein: ");
scanf("%u", &y);
printf("Geben sie eine reelle Zahl ein: ");
scanf("%lf", &z);
printf("Die dritte Potenz von %d ist %d", x, x*x*x);
printf("Die dritte Potenz von %u ist %u", y, y*y*y);
printf("Die dritte Potenz von %lf ist %lf", z, z*z*z);
}
void azwei(){
printf("Geben sie einen Character ein: ");
char c = getchar();
printf("Das nachfolgende Zeichen lautet: %c und der ASCII-Wert ist: ", c+1, c+1);
}
int main (void){
int a;
int b = 1;
while(b){
printf("Welche Aufgabe soll gezeigt werden? ");
printf("\n(1) Aufgabe 1 \n(2) Aufgabe 2\n");
scanf("%d", &a);
switch(a){
case 1: aeins();
b = 0; break;
case 2: azwei();
b = 0; break;
default: printf("Falsche Eingabe!\n"); break;
}
}
}
这是我的程序,这是我的输出:
Welche Aufgabe soll gezeigt werden?
(1) Aufgabe 1
(2) Aufgabe 2
2
Geben sie einen Character ein: Das nachfolgende Zeichen lautet: und der ASCII-Wert ist:
Process returned 0 (0x0) execution time : 2.172 s
Press any key to continue.
如您所见,我的程序忽略了getchar 命令。我已经用scanf 命令尝试过,但它也不起作用。在函数aeins 中,一切正常。如果这对您有帮助,我会说我是初学者到中级 c 程序员。
【问题讨论】:
-
编写这个问题的工作很棒。看到来自新贡献者的所有这些支持数据真是令人耳目一新!干杯。小事:你在 `printf("Das nachfolgende Zeichen lautet: %c und der ASCII-Wert ist: ", c+1, c+1);` 行中有一个额外的
c+1或缺少替换参数跨度> -
请注意
char c = getchar();将读取输入缓冲区中scanf("%d", &a);之后留下的换行符这是一个常见问题。 -
函数返回的类型:
getchar()是int,不是char,所以代码中可以识别EOF条件
标签: c function output scanf getchar