求c语言大神解答~
你这个程序有两个问题:
1、从你的输出看,应该是0~59 输出 e ,所以在第一if的位置 应该是g<60
2、同时,在第一个 if 的位置,你用的是表达式是错误的,因为关系运算的优先级是从左到右,所以,你输入任何一个数(只要大于等于0),你分一下步,第一步算0<=g,这个成立后,前面这部分就等于1,然后你再算(0<=g)<=60,所以你这个式子0<=g<=60是恒成立的,也就是你这个关系表达式算完的结果为1,这样的话if的条件就会恒成立,从而导致你的结果总是e=1...
应该用逻辑表达式 if (0<=g&&g<60) ,你再试一下!
//条件自己补充一下(太多了 (╥╯^╰╥) )(*/ω\*)
#include
#include
using namespace std;
paira[10];
int num;
void read_cards()
{
printf("Enter a card:");
char s[20];
scanf("%s
",s);
a[num++]=make_pair(s[0],s[1]);
}
void analyze_hand()
{
sort(a,a+5);
if(/*满足同花大顺的条件*/)
print_result(1);
else if(/*满足同花顺的条件*/)
print_result(2);
else if(/*满足四张的条件*/)
print_result(3);
else if(/*满足葫芦的条件*/)
print_result(4);
else if(/*满足同花的条件*/)
print_result(5);
else if(/*满足顺子的条件*/)
print_result(6);
else if(/*满足三张的条件*/)
print_result(7);
else if(/*满足两对的条件*/)
print_result(8);
else if(/*满足一对的条件*/)
print_result(9);
else if(/*满足其他牌的条件*/)
print_result(10);
}
void print_result(int x)
{
switch(x)
{
case 1:printf("Royal flush
");break;
case 2:printf("Straight flush
");break;
case 3:printf("Four of a kind
");break;
case 4:printf("Full house
");break;
case 5:printf("Fush
");break;
case 6:printf("Straight
");break;
case 7:printf("Three of a kind
");break;
case 8:printf("Two pairs
");break;
case 9:printf("Pair
");break;
case 10:printf("High card
");break;
}
}
int main()
{
read_cards();
analyze_hand();
return 0;
}
你的统计字母数字空格和其他字符的C语言程序,我帮你改完了,你看看吧.(主要问题是数字和字母的if判断语句应该是一个范围)(改动的地方见注释)
#include<stdio.h>
int main()
{
int i=0,space=0,num=0,n=0,ch=0;
char s[20];
printf("请输入一串字符");
gets(s);
while(s[i]!='\0')
{
if(s[i]==' ')
space++;
else if(s[i]>='0'&&s[i]<='9')//这里把else if(s[i]='0')改成else if(s[i]>='0'&&s[i]<='9')
num++;
else if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')//这里把else if(s[i]='a'||s[i]='A')改成else if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
ch++;
else
n++;
i++;
}
printf("刚才输入的字符中英文字符个数为%d
",ch);
printf("刚才输入的字符中空格个数为%d
",space);
printf("刚才输入的字符中数字个数为%d
",num);
printf("刚才输入的字符中其他个数为%d
",n);
return 0;
}
图不清晰
C语言问题,求大神解答
第一题选C,第二题选D;a=b++;是先将b原有的值赋给a后再加;例如int b = 1;a=b++;是先将1给a然后b再加加等于2;a=++b;是先计算b加加再把结果复制给a;也就是b先加1等于2,再把2给a;理解上面这两个例子后再去解上面的题也就没问题了 ...
C语言 计算机题 求大神解答~
1、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是“a>=10||a<=0”。(D选项)解析:“≥”用“>=”表示,“或”用“||”表示。2、判断char型变量c是否为大写字母的表达式是“(c>='A')&&(c<='Z')”。(C选项)解析:大写字母是A~Z,加上单引号,可以直接用来判断是否符合要求...
c语言题目,求大神解答
1)include "stdio.h"#include <string.h>void mysort(char (*p)[50],int n){int i,j,k;char t[50];for(i=0;i<n;i++){for(k=i,j=k+1;j<n;j++)if(strcmp(p[k],p[j])>0)k=j;if(k!=i){for(j=0;t[j]=p[i][j];j++);for(j=0;p[i][j]=p[k][j];j++...
C语言的三道题,求大神解答
1,include<stdio.h> int main(){ int a,b=2,c;printf(“请输入a和c:\\n”);scanf(“%d %d”,&a,&c);printf(“%d\\n”,(a+b)*c);return 0;} 2,include<stdio.h> int main(){ int a;scanf(“%d”,&a);printf(“%d”,a);return 0;} 3,include<stdio.h> define ...
C语言编程问题,大神来解答
首先,d 的值 分别是 5 跟12,不是 5 跟7;下面开始解释:题目 的不同点 是 ①b=2,c=3;②b=3,c=2;该不同点 在 m 值 的运算中,将直接导致 a 值的不同;②题比较好理解,a=b>c→a=3>2,条件成立,a=1;d=d+e=12;m=a && d,a(1)、d(12)值都为真,m=1;...
c语言,求大神解答。
include "stdio.h"int main(){ int a[10],i,j,num=0,max,max_num;for (i=0;i<10;i++){ scanf("%d",&a[i]);if(a[i]%2==1)num++;} for (i=0;i<9;i++){ max=a[0];max_num=0;for (j=0;j<9-i;j++){ if(max<a[j+1]){ max=a[j+1];max_num=j+1;}...
C语言问题,请大神解答,谢谢
2 1 2 4 解析:include<stdio.h>int main(void){ int a = 1,b = 2,c = 3,d = 4; if((a = 2) || (b = 1)) c = 2; \/\/以上两个判断条件中都是赋值,所以a = 2,b = 1,c = 2 if((c == 3) && (d = -1)) a= 5; \/*&& 是一个分界点,执...
C语言求大神解答
参考:C语言工资管理系统源代码-andy --- include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define N 100struct Salary_Info{ int Card_No; \/\/工资卡号 char name[20]; \/\/姓名int month; \/\/月份float Init_Salary; \/\/应发工资float Water_Rate; \/\/...
C语言 编程题 求大神解答?
include<stdio.h> int main(){ int a,b,c,d;for(a=0; a<2; a++)for(b=0; b<2; b++)for(c=0; c<2; c++)for(d=0; d<2; d++)if((a==0)+(c==1)+(d==1)+(d==0)==3&&(a+b+c+d==1)){ if(a)printf("A\\n");if(b)printf("B\\n");if(c)printf("...
c语言的 求大神解答啊
回答:#include<stdio.h> main() { int x,y,i; printf("请输入两个数(大于0的整数,以逗号隔开):"); scanf("%d,%d",&x,&y); if(x<y) \/\/i等于x和y的最小值 i=x; else i=y; while(x%i!=0||y%i!=0) { i--; } printf("最大公约数:%d\\n",i); }
喻思参苓:[答案] #include#include#includeint main(){int num,tmp,i,j;int n[5]={0};//用于存储num分解后的每位上的数字,由于num不超过5位,所以数组有5个单元就可以了 int *sq_ls_num;printf("请输入一个不多于5位的正整数: ");sc...
道外区15239831938: 求C语言高手解答!?
喻思参苓: 内容是A\B,存储4个字节(包含'\0'结束符)
道外区15239831938: C语言大神求答案~1.从键盘输入两个运算数(datal和data2),做加法运算,并输出计算结果.2. 判断一个数n能否同时被3和5整除3. 求1+2+3+……+100 - ?
喻思参苓:[答案] 第一题: #include void main() { int data1,data2; printf("请输入第一个数:"); scanf("%d",&data1); printf("请输入第二个数:"); scanf("%d",&data2); printf("两个数的和为%d",data1+data2); } 第二题: #include void main() { int ...
道外区15239831938: 求C语言高手解答 - ?
喻思参苓: #include double GetEven(int Num);double GetOdd(int Num);double (*GetOddPointer)(int Num) //函数指针int main(){int Num;double TotalEvenNum,TotalOddNum;cin>...
道外区15239831938: 求c语言大神解答 - ?
喻思参苓: 首先你printf后面的是打错了吧.是选择B,没错. 因为p数组没有结束符,用strlen测长度会出错,而q数组,虽然后面没有结束符,但是,q数组指定了它的长度为10,那么后面就还有7个0,那么就也相当于有了结束符,所以q数组是不会出错的,而且会有输出结果,是3
道外区15239831938: 跪求c语言高手解答?
喻思参苓: #include "stdio.h" void prt(char c,int n) { int i,j; for(i=1;i<=n;i++) { for(j=0;j<i;j++) printf("%c",c); printf("\n"); } } int main() { char c; int n; printf("请输入要打印的字符:"); scanf("%c",c); printf("请输入要打印的行数n:"); scanf("%d",n); prt(c,n);return 0; }
道外区15239831938: 跪求C语言大神解答,急用急用,谢谢大哥大姐们解答. 急需C语言大神,必有重谢 - ?
喻思参苓: #include <stdio.h> int main() { int n,i; double s=0; scanf("%d", &n); for(i=2;i<=n;i+=2) { s+=1.0/i; } printf("%lf", s); return 0;}
道外区15239831938: c语言! 求大神详解!!!!!! - ?
喻思参苓: 本题选B!字符串包含以下八个字符:a \041--》)#041 \\--》\ b
道外区15239831938: 请教一道简单的C语言题目,求大神解答 - ?
喻思参苓: 你没考虑到相邻两个数相等你情况.你看样例第四组数开头有两个7,输出是-1,说明严格递增是a[i+1]>=a[i],严格递减是a[i]>=a[i+1].
道外区15239831938: 求c语言大神详细解析,我不会啊,跪求 - ?
喻思参苓: 内层for循环意思是从数组b中找和数组a中元素相同的元素,如果找到,则证明j < 6,跳出内层for循环,执行printf,如果没找到,则必然j = 6,不执行printf,然后i++,在数组b中...