为什么&这里用在decks( scanf("%i", &decks))之前?
如果我的输入是像“k”这样的任何字母,那么它会显示像“1929597720”这样的输出。为什么?
#include <stdio.h>
int main(){
int decks;
puts("enter a number of decks:");
scanf("%i", &decks);
if (decks<1) {puts("Please enter a valid deck number");
return 1;
}
printf("there are %i cards\n", (decks*52));
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我是C编程语言的新手.现在我正在学习记忆和指针.我正在阅读和阅读,但我不知道何时使用指针,何时不使用.只需看下面的代码即可.在我的第一个代码中,为什么我们不在这行使用"&"运算符"scanf("%2s",card_name)"?在我的第二个代码上为什么我必须在我的"scanf("%i",&decks)上使用"&"运算符;" 我整夜都明白了.现在我在这里得到一些很好的提示,以了解差异..
代码1
#include <stdio.h>
#include <stdlib.h>
int main(){
char card_name[3];
int count=0;
while (card_name[0]!='X') {
int val=0;
puts("Enter The Card Name:");
scanf("%2s", card_name);
switch (card_name[0]) {
case 'K':
case 'Q':
case 'J':
val=10;
break;
case 'A':
val=11;
break;
case 'X':
continue;
default:
val= atoi(card_name);
break;
}
if (val<2||val>11) {
puts("sorry this is not valid");
break;
}
if (val>=2&&val<=10) {
count++;
printf("Then value is %i And The Count is %i\n", val, count);
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
代码2
#include <stdio.h> …Run Code Online (Sandbox Code Playgroud) c ×2