我似乎无法弄清楚为什么我的输出只有一倍.
#include<stdio.h>
#include<stdlib.h>
int my_isupper(int c);
int my_tolower(int c);
int
main(int argc,char *argv[]){
int c;
printf("Enter alphabet:");
scanf("%d",&c);
if ((c<='A' && c>='Z')||(c<='a' && c>='z')){
printf("Error: Please type a alphabet\n");
exit(EXIT_FAILURE);
}
if (my_isupper(c)==0){
printf("isnotupper");
}
else{
printf("is upper");
}
return 0;
}
int my_isupper(int c){
if(c>='A' && c<='Z'){
return 1;
}
else {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
输出始终为"Isnotupper".可能是一个简单的错误.我是c编程的新手.如果您有关于调试的任何提示,请告诉我,以便我不会打扰任何人可以自我纠正的事情.谢谢!
int c;
printf("Enter alphabet:");
scanf("%d",&c);
Run Code Online (Sandbox Code Playgroud)
应该
char c;
printf("Enter alphabet:");
scanf("%c",&c);
Run Code Online (Sandbox Code Playgroud)
您需要扫描字母而不是整数.根据您的代码,您希望用户输入字母表,如果您输入字母表scanf()(前一个%d)将失败.所以总是检查scanf()返回值.
if(scanf("%c",&c) == 1)
//Do you stuff
else
//Throw an error
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |