大家来帮我看看这C语言题目我错哪谢谢!

作者&投稿:经扶 (若有异议请与网页底部的电邮联系)
C语言中一个题目,请大家帮我看看我错在哪里了。~

修改不大,楼主自己可以看看。注意循环条件以及到底是哪个值在变化,变化后是什么
a=m/(int)(pow(10,b-1));
m=m%(int)(pow(10,b-1));
加了这条语句。用以是取除去最高位的剩下的
#include
#include
int main(void)
{
int a,m;
int b=0;
printf("enter a number:");
scanf("%i",&a);
m=a;
printf("您输入的是%d
",m);
while(a!=0)
{
a=a/10;
b++;
}
printf("数字位数是%d
",b);
while(m!=0)
{
for(b=b;b>0;--b)
{
a=m/(int)(pow(10,b-1));
m=m%(int)(pow(10,b-1));
switch(a)
{
case 0:
printf("zero ");
case 1:
printf("one ");
break;
case 2:
printf("two ");
break;
case 3:
printf("three ");
break;
case 4:
printf("four ");
break;
case 5:
printf("five ");
break;
case 6:
printf("six ");
break;
case 7:
printf("seven ");
break;
case 8:
printf("eight ");
break;
case 9:
printf("nine ");
default:
printf("error");
}
}

}
return 0;
}

#include
#include

main()
{
enum color {red,yellow,blue,white,black};
enum color i,j,k,pri;
int n,loop;
n=0;

for(i=red;i<=black;i=i++)
for(j=red;j<=black;j=j++)
if(i!=j)
{for(k=red;k<=black;k=k++)
if((k!=j)&&(k!=i))
{n=n+1;
printf("%-4d",n);

for(loop=1;loop<=3;loop++)
{switch(loop)
{case 1: pri=i;break;
case 2: pri=j;break;
case 3: pri=k;break;
default:break;
}

switch(pri)
{case red: printf("%-10s","red");break;
case yellow: printf("%-10s","yellow");break;
case blue: printf("%-10s","blue");break;
case white: printf("%-10s","white");break;
case black: printf("%-10s","black");break;
default : break;
}
}

printf("
");
}
}

printf("
total:%5d
",n);

getchar();//system("pause");
}
===================================================================
输出结果


1 red yellow blue
2 red yellow white
3 red yellow black
4 red blue yellow
5 red blue white
6 red blue black
7 red white yellow
8 red white blue
9 red white black
10 red black yellow
11 red black blue
12 red black white
13 yellow red blue
14 yellow red white
15 yellow red black
16 yellow blue red
17 yellow blue white
18 yellow blue black
19 yellow white red
20 yellow white blue
21 yellow white black
22 yellow black red
23 yellow black blue
24 yellow black white
25 blue red yellow
26 blue red white
27 blue red black
28 blue yellow red
29 blue yellow white
30 blue yellow black
31 blue white red
32 blue white yellow
33 blue white black
34 blue black red
35 blue black yellow
36 blue black white
37 white red yellow
38 white red blue
39 white red black
40 white yellow red
41 white yellow blue
42 white yellow black
43 white blue red
44 white blue yellow
45 white blue black
46 white black red
47 white black yellow
48 white black blue
49 black red yellow
50 black red blue
51 black red white
52 black yellow red
53 black yellow blue
54 black yellow white
55 black blue red
56 black blue yellow
57 black blue white
58 black white red
59 black white yellow
60 black white blue

total: 60

问题1:max,&max,这里有问题,max只声明,没有具体的定义,那么在内存中是没有分配空间的,所以&max为不确定地址。因此最好先初始化如
max=0.0;然后在&max.其他也一样。
问题2:明明average返回值可以设为整数,却用浮点数作返回值。
问题3:明明用数组作参数,非要用指针.函数原型应为
int average(float s[],float *k,float *m,float *n,float highest[])

源代码
#include "stdio.h"
#define N 4
int average(float s[],float *k,float *m,float *n,float highest[]);
int main(){
int i=0,num=0;
float score[N],max=0.0,min=0.0,aver=0.0,hign[N]={0};
printf("请输入%d个人的成绩:\n",N);
for (i=0; i<N; i++){
printf("score[%d]=",i);
scanf("%f",&score[i]);
}
num=average(score,&max,&min,&aver,hign);

for(i=0;i<num;i++) printf("高于平均分的分数:%f\n",hign[i]);
printf("平均分为%f:\n",aver);

printf("最高分%f:\n",max);
printf("最底分%f:\n",min);
printf("高于平均分的个数:%d\n",num);
getchar();
return 0;
}

int average(float s[],float *k,float *m,float *n,float highest[]){
int i=0,j=0;
*k=*m=*n=s[0];
for(i=1;i<N;i++) *n+=s[i];
*n/=N;
printf("test%f",*n);
for(i=0;i<N;i++){
if(s[i]<*m) *m=s[i];
if(*k<s[i]) *k=s[i];
if(s[i]>*n) highest[j++]=s[i];
}
return j;
}

#include "stdio.h"
#define N 5
main()
{
float average(float *s,float *k,float *m,float *n,float *highest);
int i=0;
float num,score[N],max,min,aver,hign[N]={0};
printf("ÇëÊäÈë%d¸öÈ˵ijɼ¨:\n",N);
for (i=0; i<N; i++)
{
printf("score[%d]=",i);
scanf("%f",&score[i]);
}
num=average(score,&max,&min,&aver,hign);
printf("¸ßÓÚƽ¾ù·ÖµÄ·ÖÊý:");
for(i=0;i<num;i++) printf("%.2f ",hign[i]); //
printf("\nƽ¾ù·ÖΪ%f:\n",aver); //
printf("×î¸ß·Ö:%f\n",max);
printf("×îµ×·Ö:%f\n",min);
printf("¸ßÓÚƽ¾ù·ÖµÄ¸öÊý:%.0f\n",num);
}
float average(float *s,float *k,float *m,float *n,float *highest)
{int i=0,j=0;
float max=s[0],min=s[0],sum=0; //
*k=max;*m=min;
for(i=0;i<N;i++) //
sum+=s[i];
*n=sum/N;
for(i=0;i<N;i++) //
{if(s[i]<*m)
*m=s[i];
if(max<s[i])
*k=s[i];
if(s[i]>*n) //
highest[j++]=s[i]; //
}
return (j); //
}


c语言的一个问题,麻烦大家帮我看看
是的。在初始不够的情况下,不够的数自动默认为0.比如a[11]={1},就相当于 a[11]={1,0,0...0} 当你输入一个数,赋值给这个位置的时候,他相当于把0给顶替了。记住。赋值不够的情况下,系统自动默认后面的数为0,如果是字符就是默认为\\0 ...

刚刚做了一些c语言的基础选择题。大家帮我看看对错吧 圈圈的是不会的...
7、++不能用于表达式和常量,AB错,表达式不能做左值,C错,D是对的 12、if(i%5!=0)也就是i不可以被5整除的时候a自增,结果是2 14、D是错的,成员运算符.的优先级高于解引用运算符*,*p.age=20相当于*(p.age)=20,显然有问题 19、long a是有符号长整型,b是短整型,错,CD是无符号...

...写了个有序顺序表,挂掉了,大家帮我看看哪里出错了吧,谢!
if(pLink->size==0){ pLink->list[i]=data;pLink->size++;} 这一段,你的i是局部变量,也就是你每次都给pLink->list[0]赋值。

...4*x*x+3*x-6=0的解,大家帮我看看这个程序对不对?结果跟答案对不上...
解的精确程度:");scanf("%lf",&limit);if(f(a)*f(b)>0)printf("\\n 无法用二分法求解");else { while((b-a)>limit){ if((f(a+b)\/2)*f(b)<0)\/\/异号 a=(a+b)\/2;else \/\/同号 b=(a+b)\/2;k++;} print("\\n经历了%d次二分法求解\\n",k);} } 希望对你有帮助 ...

c语言 函数调用 程序执行不了 请大家帮忙看看 帮我改下错
缺少函数声明。int sum(int,int);这行加到main函数前面。

C语言,请大家帮帮我。
对于c=++a*b来说,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。 这个例子执行...

C语言const char和char有什么区别,指针变量date有点懵,请帮我讲解一...
相比于其他的“根据 const 与其他词素的距离判断”、“根据 const 的前后关系判断”等等,个人认为这是最人性化的方法。从某种意义上来说,C 编译器在进行词法分析的时候巧合地运用了这种范式来进行语义转换,这一点在 Backus(上下文无关法) 范式中也有体现。具体的方法是:const char * A:A 是一...

C语言与C++有何区别与联系
最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C\/C++是成为VC,BCB高手的必由...他会对你的编程很有帮助的. 这是我学习C\/C++的一点心得, 希望对没有被我吓到而要继续学习C\/C++的朋友们有一些帮助. 免得有些同志说我破坏中国软件...

C语言单片机程序 初学大家帮忙看看错在哪里了 #include <reg51.h...
程序百分百没问题,可能是编译的有问题,你 用的是keil编译的吗? 建议你多重新编译一下, 也有可能是你烧写程序的时候 数据传输的过程中出错了,校验出错 一般是传输过程中某个或者某些bit或者byte出错 建议你重新编译 重新下载烧写试试, 单片机这东西就是经常出些小问题,有时候我们买的开发板或者有...

大家来看看这题怎么回事?关于c语言的!
看下吧,20不能被8整除...include <conio.h> include <stdio.h> void fun(int k,int a[]){ int i;int j=0;for(i=2;i<=k;i++)if(k%i==0 && i%2==0)a[j++]=i;printf("\\n\\n ");for(i=j-1;i>=0;i--)printf("%d ",a[i]);} void main(){ int k=1;int a...

马村区18852313475: c语言请看看我的题错在那里了? -
巢郝碧宁: #include<stdio.h> void main() //main打成mian了 { int max(int x, int y,int z); int a,b,c; scanf("%d,%d,%d",&a,&b,&c); //少了个%d c=max(a,b,c); printf("max=%d\n",c); } int max(int x,int y,int z)//; { int o; if(x>=y&&x>=z) o=x; // else if(y>=x&&y>=z) o=y; // else if(z>=x&&z>=y) o=z; // return(o); }

马村区18852313475: 这是一道C语言编程题,我自己编了一哈,错了很多,大家帮忙给我修改一下,说出我错在什么地方,谢谢了! -
巢郝碧宁: 楼上说得对,以下是可以直接运行的程序.是用循环写的,你也可以自己尝试用递归. includevoid main() { int m,n,temp,r; printf("please input m and n.\n"); scanf("%d %d",&m,&n); if(m {temp=n; n=m; m=temp; } r=m%n; while(r!=0) {m=n;n=r; r=m%n;} printf("%d\n",n); //如果用WinTC 写getch(); }

马村区18852313475: 兄弟帮我看看这一道C语言编程题错在哪里了??? -
巢郝碧宁: 错误有2个:1.你自己定义的qsort函数与C库的qsort函数重名,如果要用你自己的qsort,那你的qsort函数需要换个名字.2.// 求最大公约数int gcd(int a,int b){i...

马村区18852313475: 菜鸟求助,一道C语言的题,麻烦大家帮我看看哪儿错了..... -
巢郝碧宁: #include int main(){ char ch,a[1000]; int i=0,k; FILE*in,*out; in=fopen("copy.in","r"); if (NULL == in) { ...

马村区18852313475: 急急急!一道C语言的题 求大神帮我看看哪里错了!谢谢! -
巢郝碧宁: #include int main(){ int n,i,j; int b[a]; int sum; int a1,a2,a3,a4,a5,a6; int c1,c2,c3,c4,c5,c6; for(i=0;i

马村区18852313475: C语言程序题目,请大神帮忙看看哪错了.谢谢! -
巢郝碧宁: #include<stdio.h>#include<math.h> int main(){ int n,i,j; int b[a]; int sum; int a1,a2,a3,a4,a5,a6; int c1,c2,c3,c4,c5,c6; for(i=0;i<=100;i++){ while(scanf("%d\n",&n)&&(n!=0)) for(j=1;j<=n;j++){ scanf("%d ",&b[j]); a1 = b[j] /100; a2 =b[j] %100/50; a3 =...

马村区18852313475: 关于C语言一道题帮我看看,哪错了? -
巢郝碧宁: 一个初学者常犯的错误,记得 = 是赋值号,if(ch = 'a')括号中的值永远为真,就是1,所以 if(ch='a') 总会被执行,只要他执行,后面的就不执行了.要记得比较大小是用 == ,即用 if (ch == 'a') .

马村区18852313475: 这到C语言的题目 我哪儿错了! -
巢郝碧宁: int a,b,c,d,是定义为整形变量;还有g输入的是字符不是数字要定义为char,switch也写错了main() { char g;scanf("%c",switch(g){ case 'a':printf("80-100...

马村区18852313475: 帮我看一下这到C语言题目我错在哪
巢郝碧宁: #include "stdio.h" #include"string.h" /*改动处*/ #define N 3 void main() /*改动处*/ {char a[N][10]; int i; void x(char (*p)[10]); /*改动处*/ for(i=0;i<N;i++) gets(a[i]); /*改动处*/ x(a); /*改动处*/ for(i=0;i<N;i++) printf("%s\n",a+i); /*改动处*/ } ...

马村区18852313475: 各位c语言高手帮我解决下这个问题看看我哪里编错了,谢谢了~~
巢郝碧宁:#include"stdio.h"main(){char a[100],b[50],ch; int i=0; printf("input string1:\n"); while((ch=getchar())!='\n') { a[i]=ch;i++; } a[i]='\0'; printf("input string2:\n"); i=0; while((ch=getchar())!='\n') { b[i]=ch;i++; } b[i]='\0'; for(i=0;a[i]!='\0'&&b[i]!='\0';i++) { if(a[i...

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