求大神解答c语言题

作者&投稿:夔朋 (若有异议请与网页底部的电邮联系)
求大神解答C语言题目~

#include //商不能超过最大的long型数,小数部分最后一位四舍五入太难了,希望能给你参考 void func(double m,double n,double k){long mi,i,ki;int s;mi=(long)(m/n);m=m-mi*n;ki=(long)k;printf("%lf/%lf=%ld.",m,n,mi);for(i=1;i0 && n>0 && k>0) break;printf("不能有负数出现
请重新输入三个正数:");}func(m,n,k);}

#include int print_screen(int tx, int ty, int bx, int by){ int i,j,r = 0; for(i=1;i=0;i--) { for(j=0;j=1) break; else t++; } if(t>=5) printf("失败
"); else printf("成功
"); printf("再来一局?(y,n):"); fflush(stdin); ch = getchar(); }while(ch == 'y'); return 0;}

#include <stdio.h>
int main()
{
int i,j,a[4];
for(i=0;i<4;i++) /*假定只有第i个人为窃贱*/
{
for(j=0;j<4;j++) /*将第i个人设置为1表示窃贱,其余为0*/
if(j==i)a[j]=1;
else a[j]=0;
if(a[3]+a[1]==1&&a[1]+a[2]==1&&a[0]+a[1]==1) /*判断条件是否成立*/
{
printf("The thief is "); /*成立*/
for(j=0;j<=3;j++) /*输出计算结果*/
if(a[j])
printf("%c.",j+'A');
printf("\n");
}
}
return 0;
}

题目中说要么是诚实,要么是说谎,所以应该排除掉会出现某人说的话半句是真半句是假的情况。
还要特别注意,并不排除说谎的人有一个以上。
如果有一个逻辑是使得四个人都满足要么是诚实,要么是说谎,那么就找到这个窃贼了。

#define A 1
#define B 2
#define C 3
#define D 4
bool judge_A(char i) //注意:返回值代表是否符合题意,而不代表是否说谎。
{
if( (i != B) && (i == D) ) //A是诚实的,符合题意返回true
return ture;
else if( (i==B) && (i!=D) ) //A是说谎的,符合题意返回true
return ture;
else //A半句说谎,半句真话,不符合题意返回false
return false;
}
bool judge_B(char i) //注意:返回值代表是否符合题意,而不代表是否说谎。
{
if( (i != B) && (i == C) ) //B是诚实的,符合题意返回true
return ture;
else if( (i==B) && (i!=C) ) //B是说谎的,符合题意返回true
return ture;
else //B半句说谎,半句真话,不符合题意返回false
return false;
}
bool judge_C(char i) //注意:返回值代表是否符合题意,而不代表是否说谎。
{
if( (i != A) && (i == B) ) //C是诚实的,符合题意返回true
return ture;
else if( (i==A) && (i!=B) ) //C是说谎的,符合题意返回true
return ture;
else //C半句说谎,半句真话,不符合题意返回false
return false;
}
int main(void)
{
int j=0;
for(j=1;j<=4;j++)//分别假设A、B、C、D为窃贼,看看哪个会在逻辑上符合题意
{
if( judge_A(j) && judge_B(j) && judge_C(j) )//1-4中满足每个人要么说谎要么说真话,即可退出
break;
}
printf("the thief is %d", j);
}

这里只是给你提供一个算法和思想,不保证能运行。需要根据自己的编译再修改一下即可。


求大神解两个c语言题!谢谢
一、输入两个三阶方阵,并以数学的形式输出 include<stdio.h> define N 3 void main(){ int i,j;int A[N][N],B[N][N],C[N][N];void indeterminant(int a[N][N],int);void outresult(int a[N][N],int b[N][N],int c[N][N],int);indeterminant(A,N);indeterminant(B,N...

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,已知函数外面有int a=[][4]={1,1};则下面叙 ...
已经给两个元素赋值了,所以A错;由于在赋值的时候没有用到{},故B对,假如为int a[][4] = {{1},{1}};则第一维就为2;C:起始地址为0是对的;D:只有他俩得到的初值为1,其他元素为0;第二个输出abBcd,因为\\102属于\\后跟三位8进制表示一个字符的,(102)8的十进制为66,故输出B,...

c语言题,求大神给做法。。
思路:每个输入的数有三个属性,即是否能够被3、5、7整除 目标是要将输入的数,按照这些属性进行统计(不明白 输出其个数 是什么含义)示例代码:include <stdio.h> include <stdlib.h> typedef struct _data_{ int key;bool canbedvide[3];\/\/第一个表示能否被3整除 第二个表示能否被5整除 第...

跪求大神解答一道C语言题
您好,很高兴回答您的问题。以上就是我的回答,希望能帮助到您。

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语言编程问题求大神解答
struct student{ int iNum; \/\/ 学号 char cName[20]; \/\/ 姓名 char cSex[2]; \/\/ 性别 int iAge; \/\/ 年龄 int iScore[5]; \/\/ 5门课成绩 float fAverage; \/\/ 个人平均分};\/\/ 求个人平均分float ClacAverage(student *pStudent){ if (NULL == pStudent) { return 0.0f; }...

求大神解答这道c语言题
结果为5 这里*p=x,是将p的指针指向了x[0]的地址,此时*p=x[0];当运行for循环时*p+=x[i];因此*P的值会变为*p=*p + x[i];不过在循环中有i++和p++,在执行每次循环之后p++将p指向的值后移了一位,而数组的本质也是指针;一次在执行一次循环之后x[0]的值会变为2,而*p因为后移了...

求大神解答这道c语言题
当s[j]比s[i]大时,j=i.这样循环后得到的s[j]就是s中的最小值.也就是'a'所以j=0;然后是交换s[0]和s[4]也就是'a'和'r'交换后s="rftea"输出s值,rftea

c语言试题,求大神解答,谢谢!
第5题,选C,当i=0时输出x[0][2],i=1,输出x[1][1],i=3,输出x[2][0].第6题,正确 第7题,选D,strlen是不包含'\\0'的大小。"A book" 5个字母+1个空格 一共为6.第8题,选B ,数组传递数组名属于地址传递。第9题,选D, 这个没什么好讲的,定义a[10],分别是a[0]~a[9],...

乳源瑶族自治县17264986304: 请教一道简单的C语言题目,求大神解答 -
盖丽阿赛: 你没考虑到相邻两个数相等你情况.你看样例第四组数开头有两个7,输出是-1,说明严格递增是a[i+1]>=a[i],严格递减是a[i]>=a[i+1].

乳源瑶族自治县17264986304: c语言问题,求大神解答!给一个不多于5位的正整数.①求出它是几位数.②分别输出每一位数字.③按逆序输出各位数字.例如原数位465,应输出5 6 4.... -
盖丽阿赛:[答案] #include#include#includeint main(){int num,tmp,i,j;int n[5]={0};//用于存储num分解后的每位上的数字,由于num不超过5位,所以数组有5个单元就可以了 int *sq_ls_num;printf("请输入一个不多于5位的正整数: ");sc...

乳源瑶族自治县17264986304: C语言题,求大神帮忙啊C语言作业要求 1.从键盘输入3个字符串,要求找出其中最大者 . 2.写一程序,判断一字符串是否是回文,若是输出YES,否则输出... -
盖丽阿赛:[答案] 具体代码如下: #include int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d\n",(a=a>b?a:b)> c?a:c); } #include #include int main() { char s[50]; char *p,*q; p = s; gets(s); q = &s[strlen(s)-1]; while(p++ = 0; i--) { if('a'

乳源瑶族自治县17264986304: 求高手解答C语言编程题~~~ -
盖丽阿赛: #include<stdio.h> double get_cos(double x); double fun(double x,int n); void main() {//cos(x)=1-x2/2!+x4/4!-x6/6!+……// 要求:X的值由键盘输入(代表弧度),//运算精度保持到最后一项的绝对值小于10的-6此方为止.//注明(X4是x的4次方...

乳源瑶族自治县17264986304: 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 ...

乳源瑶族自治县17264986304: 求高手解答C语言问题!有追加!#include main(){ int i, j; char ch, *p1, *p2, *s[4]={"four","hello","peak","apple"}; for(i = 0; i p1 = p2 = s[i]; ch = *(p1 + i);... -
盖丽阿赛:[答案] 第一题:第一个for循环中第一次循环将指针数组s中的第一个指针变量s[0]赋值给指针变量p1,p2,使得指针变量p1,p2都指向字符串"four"的首地址,接着将p1所指向的字符数组中的第一个元素f赋值给字符变量ch,while循环将"fo...

乳源瑶族自治县17264986304: 求C语言大神帮我解答下这9道题(重赏!!!!!!!!!) -
盖丽阿赛: 1#include int main() { int i,s=0; for(i=1;i='A'&&a[i]='0'&&a[i]

乳源瑶族自治县17264986304: 关于C语言的题目,求C高手解答 -
盖丽阿赛: #include "stdio.h" void main() { int i,sum=0; for(i=1;i<=100;i++) sum+=i;printf("1+2+3+4+...+100=%d",sum); } 这些很基础,忘lz努力.

乳源瑶族自治县17264986304: 一道c语言的题 求大神帮忙 -
盖丽阿赛: #include<stdio.h> void main() { char cbegin; //起始字符 int icount,i; //数量 printf("please input a char and a number: "); scanf("%c %d",&cbegin,&icount);//输入 printf("\nresult: "); for(i=0;i<icount;i++)printf("%c",cbegin+i); //输出printf("\n"); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网