c语言问题帮忙调试程序,看看下面程序错在哪儿?

#include<stdio.h>
#include<math.h>
void leters()
{
char a[100];
int i;
int n=0;
a[0]='0';
printf("input phonenumber,end up with #\n");
while(a[n]!='#')
{
n++;
a[n]=getchar();
if(a[n]>='A'&&a[n]<='C')
a[n]='2';
if(a[n]>='D'&&a[n]<='F')
a[n]='3';
if(a[n]>='G'&&a[n]<='I')
a[n]='4';
if(a[n]>='J'&&a[n]<='L')
a[n]='5';
if(a[n]>='M'&&a[n]<='O')
a[n]='6';
if(a[n]>='P'&&a[n]<='S')
a[n]='7';
if(a[n]>='T'&&a[n]<='V')
a[n]='8';
if(a[n]>='W'&&a[n]<='Z')
a[n]='9';
}

for(i=1;i<n;i++)
printf("%c",a[i]);
printf("\n");

}
void bonus()
{
float a;
printf(" please input profits: ");
scanf("%f",&a);
if(a<=10000)
printf("bonus is:%f",a*0.1);
if(10000<a<=20000)
printf("bonus is:%f",10000*0.1+(a-10000)*0.075);
if("20000<a<=40000");
printf("bonus is:%f",10000*0.1+100000.075+(a-20000)*0.005);
if("a>40000");
printf("bonus is:%f",10000*0.1+100000.075+(20000)*0.005+(a-40000)*0.003);
}
void calender()
{
int a,b,c,i;
printf("please input the days of monthly calender:");
scanf("%d",&a);
printf("\n");
printf("please input this month the start of the day belongs to the week(1=sunday,2=monday,3=tuesday,4=wednesday,5=thursday,6=friday,7=saturday):");
scanf("%d",&b);
for(c=0;c<b-1;c++)
printf(" ");
for(i=1;i<=9;i++)
{
printf("%d ",i);
if((i+b-1)%7==0)
printf("\n");
}
for(i=10;i<=a;i++)
{
printf("%d ",i);
if((i+b-1)%7==0)
printf("\n");
}
printf("\n");
}
void daffodil()
{
int a,b,c,m,n;
printf("the number of daffodil is:\n");
for(a=1;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
{
m=pow(a,3)+pow(b,3)+pow(c,3);
n=a*100+b*10+c;
if(m==n)
printf("%d ",n);
}
printf("\n");
}
void value()
{
int i,n,min=0,max=0;
int b[1]={0};
printf("input number:");
scanf("%d",&n);
printf("\n");
printf("%d numbers is\n",n);

for(i=0;i<=n-1;i++)
scanf("%d",&b[i]);
for(i=0;i<n-1;i++)
{
if(b[i]<min)
min=b[i];
else if(b[i]>max)
max=b[i];
}
printf("in the %d numbers,max is %d,min is %d ",n,max,min);
}
void main()
{int i,c;
for(i=0;i<=45;i++)
printf("*");
printf("\n");
printf("main menu:\n1.leters digital conersion\n2.issuing bonus\n3.prints monthly calender\n4.prints daffodil\n5.searching for the value\n6.exit\n");
for(i=0;i<=45;i++)
printf("*");
printf("\n");

do
{
printf("---please putin the option of main menue ");
scanf("%d",c);
}while(c!=1&&c!=2&&c!=3&&c!=4&&c!=5);
if (c==6) break;
else
switch (c)
{
case 1:leters();
break;
case 2:bonus();
break;
case 3:calender();
break;
case 4:daffodil();
break;
case 5:value();
break;
}
}
各位大神帮帮忙好不?scanf("%d",&c);已经修改 看看还有什么问题

第1个回答  2012-05-03
#include <stdlib.h> #include <string.h> #include <stdio.h> /* //两数比较大小 main() { int *p,*g,*t; int a,b; scanf("%d %d",&a,&b); p=&a; g=&b; //比较 if(a>b) { t=p; p=g; g=t; } printf("%d,%d",*p,*g); } main() { int *p; int a; a=2; p=&a; printf("%d %d %d %d",*p,p,&a,a); } //指针变量作为函数参数 main() { void max(int *d,int *x); int *p,*q; int a,b; scanf("%d %d",&a,&b); p=&a; q=&b; max(p,q); } void max(int *d,int *x) { int temp;//不能声明指针变量 因为指针变量必须指向地址 而temp没有 temp=*d; *d=*x; *x=temp; printf("%d %d",*d,*x); } main() { void max(int *d,int *x); int *p,*q; int a,b; scanf("%d %d",&a,&b); p=&a; q=&b; max(p,q); } void max(int *d,int *x) { int *temp;//地址对地址,变量对变量 temp=d; d=x; x=temp; printf("%d %d",*d,*x); } //字符串的遍历 main() { char a[10]; char *p; printf("请输入一个字符串:\n"); gets(a); p=a; //遍历数组 for(int i=0;i<strlen(a);i++) printf("%c",*p++); } //将字符串a赋值为b #define M 100 main() { void max(char c[],int n); char a[M],b[M]={0}; char *p,*q; printf("请输入一个字符串:\n"); gets(a); p=a; q=b; for(int i=0;i<strlen(a);i++)//循环次数 { b[i]=*p; p++; } for(i=0;i<strlen(b);i++) printf("%c",*q++); }*/ //用指针的指针写出字符串的 /* //求一个字符串中的最长子串(串:连续的相同字符构成) //例如: aabbbaacddf 则找出 bbb main() { char str[]="aabbbaacddf"; char a[10]={1}; int z=0; int i,j; for(i=0;i<strlen(str)-1;i++) { for(j=0;j<strlen(str)-i;j++) { if(str[j]==str[j+1]) { a[z]++; } else { z++; } } } for(z=0;z<10;z++) printf("%d\n",a[z]); } //十进制的转换 main() { //二进制 int a[100]; int f; int n,i=0; printf("请输入一个数字:\n"); scanf("%d",&n); while(n!=0) { a[i]=n%2; n=n/2; i++; } for(f=strlen(a);f>=0;f--) { printf("%d\n",a[f]); } }*/ /* main() { int n; char a[20]; printf("请输入一个数字:\n"); scanf("%d",&n); itoa(n,a,2); printf("%d的二进制的结果为:%s\n",n,a); itoa(n,a,8); printf("%d的八进制的结果为:%s\n",n,a); itoa(n,a,16); printf("%d的十六进制的结果为:%s\n",n,a); }*/ /* //将连续的空白字符压缩成一个,’ ‘,’\t’、’\n’ 都作为空格处理 main() { char a[50],b[50]; int i,j=0; printf("请输入一个数组:\n"); gets(a); for(i=0;i<strlen(a);i++) { if(a[i]==' ' || a[i]==',' || a[i]=='\t' || a[i]=='\n') { continue; } else { b[j]=a[i]; j++; } } b[j]='\0'; for(j=0;j<strlen(b);j++) printf("%c",b[j]); } //拆出邮件地址 原串, ****@**** *有字母、数字、下划线、”.”组成 main() { char a[50]; int i; printf("请输入一个邮箱地址:\n"); gets(a); for(i=0;i<strlen(a);i++) { if((a[i]>='a' && a[i]<='z') || (a[i]>='0' && a[i]<='9') || a[i]=='@' || a[i]=='_' || (a[i]>='A' && a[i]<='Z') || a[i]=='.') { if(a[i]!='@') { a[i]='*'; } else { continue; } } else { printf("你的格式不对,请重新输入...\n"); main(); } } for(i=0;i<strlen(a);i++) printf("%c",a[i]); } main() { char a[100],t,b[100]; int i,j,z=0; printf("please input more char:\n"); gets(a); for(i=0;i<strlen(a)-1;i++) { for(j=i+1;j<strlen(a);j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } for(i=0;i<strlen(a);i++) printf("%c ",a[i]); printf("\n"); for(i=0;i<strlen(a);i++) { if(a[i]!=a[i+1]) { b[z]=a[i]; z++; } b[z]='\0'; } for(z=0;z<strlen(b);z++) printf("%c ",b[z]); getchar(); } */ // 对一个二维整型数组,将该数组的所有元素从大到小排序,操作数组只能使用指针 //数组问题 /* //选择排序 main() { int a[10],i,j,t; printf("请输入10个数字:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } for(i=0;i<10;i++) printf("%4d",a[i]); } //冒泡排序 main() { int a[10],i,j,t; printf("请输入10个数字:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) { for(j=0;j<10-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<10;i++) printf("%4d",a[i]); } //快速排序 void QuickSort(int e[], int first, int end) { int i=first,j=end,temp=e[first]; while(i<j) { while(i<j && e[j]>=temp) j--; e[i]=e[j]; while(i<j && e[i]<=temp) i++; e[j]=e[i]; } e[i]=temp; if(first<i-1) QuickSort(e,first,i-1); if(end>i+1) QuickSort(e,i+1,end); } void main() { int arr[10],i; printf("请输入10个数字:\n"); for(i=0;i<10;i++) scanf("%d",&arr[i]); printf("before sort\n"); for(i=0; i<10; i++) printf("%d ", arr[i]); printf("\n"); QuickSort(arr, 0, 9); printf("after sorted\n"); for(i=0; i<10; i++) printf("%d ", arr[i]); printf("\n"); } // task3-1.c :使用一个字符数组,采用两个字符指针完成。 main() { char a[10], *p,*q; printf("请输入您的字符串:\n"); gets(a); printf("运行前:\n"); for(p=a;*p!='\0';p++) printf("%c",*p); printf("\n"); for(p=a;*p!='\0';p++) if(*p!=' ') { *q=*p; q++; } *q='\0'; printf("运行后:\n"); printf("%s",q); } //1.输入一串字符,以“?”结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按照字母表顺序输出,不出现的不输出)。 main() { char a[26],b[26]={0}; int i,j; printf("输入一串字符:\n"); gets(a); for(i=0;i<26;i++) if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z')) b[a[i]-'a']++; for(j=0;j<26;j++) if(b[j]!=0) printf("%c->%d\n",(j+'a'),b[j]); } */ /* 3. 从键盘上接收一个多至9位整数、2位小数的数值,请将其转换成大写金额,即写成: ×亿×仟×佰×拾×万×仟×佰×拾×元×角×分的形式。例如:当从键盘上输入 374910.56 时,输出结果为: ×亿×仟×佰叁拾柒万肆仟玖佰壹拾零元伍角陆分或: 叁拾柒万肆仟玖佰壹拾零元伍角陆分 4.编程实现将字符串中最短的单词输出,在主函数中输入字符串,编写一个函数完成最短单词查找, 例如:输入:Happy new year 最短单词为new,输出new。 */ /* 5.用随机函数产生数据,设计二位整数的加、减、乘算式各一题(减法算式应保证被减数大于减数)。 让学生回答,由计算机给出正确与否的判断,并最后给出总得分。 得分计算方法:算对加、减法各得30分,算对乘法得40分,算错得0分。 然后由计算机输出询问信息,学生选择回答,以决定是否继续一次新的测验。 //求一个函数,输入一个字符串,例如1,5;1,12 //输入回车结束,分号为一组 一个一个接收,如何把12弄在一起,不是1和2分开的 main() { int n,a[5],i=0,num=0; printf("请输入一个整数:\n"); scanf("%d",&n); while(a[i]) { a[i]=n%10; n=n/10; num+=a[i]; i++; } for(a[i]!='\0';i>=0;i--) if(a[i]) printf("位数输出\n—>%d\n",a[i]); printf("和为:\n%d",num); } */ #include<stdio.h> #include<math.h> void leters() { char a[100]; int i; int n=0; a[0]='0'; printf("input phonenumber,end up with #\n"); while(a[n]!='#') { n++; a[n]=getchar(); if(a[n]>='A'&&a[n]<='C') a[n]='2'; if(a[n]>='D'&&a[n]<='F') a[n]='3'; if(a[n]>='G'&&a[n]<='I') a[n]='4'; if(a[n]>='J'&&a[n]<='L') a[n]='5'; if(a[n]>='M'&&a[n]<='O') a[n]='6'; if(a[n]>='P'&&a[n]<='S') a[n]='7'; if(a[n]>='T'&&a[n]<='V') a[n]='8'; if(a[n]>='W'&&a[n]<='Z') a[n]='9'; } for(i=1;i<n;i++) printf("%c",a[i]); printf("\n"); } void bonus() { float a; printf(" please input profits: "); scanf("%f",&a); if(a<=10000) printf("bonus is:%f",a*0.1); if(10000<a && a<=20000) printf("bonus is:%f",10000*0.1+(a-10000)*0.075); if("20000<a && a<=40000") printf("bonus is:%f",10000*0.1+100000.075+(a-20000)*0.005); if("a>40000") printf("bonus is:%f",10000*0.1+100000.075+(20000)*0.005+(a-40000)*0.003); } void calender() { int a,b,c,i; printf("please input the days of monthly calender:"); scanf("%d",&a); printf("\n"); printf("please input this month the start of the day belongs to the week(1=sunday,2=monday,3=tuesday,4=wednesday,5=thursday,6=friday,7=saturday):"); scanf("%d",&b); for(c=0;c<b-1;c++) printf(" "); for(i=1;i<=9;i++) { printf("%d ",i); if((i+b-1)%7==0) printf("\n"); } for(i=10;i<=a;i++) { printf("%d ",i); if((i+b-1)%7==0) printf("\n"); } printf("\n"); } void daffodil() { double a,b,c,m,n; printf("the number of daffodil is:\n"); for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) { m=pow(a,3)+pow(b,3)+pow(c,3); n=a*100+b*10+c; if(m==n) printf("%d ",n); } printf("\n"); } void value() { int i,n,min=0,max=0; int b[1]={0}; printf("input number:"); scanf("%d",&n); printf("\n"); printf("%d numbers is\n",n); for(i=0;i<=n-1;i++) scanf("%d",&b[i]); for(i=0;i<n-1;i++) { if(b[i]<min) min=b[i]; else if(b[i]>max) max=b[i]; } printf("in the %d numbers,max is %d,min is %d ",n,max,min); } void main() {int i,c; for(i=0;i<=45;i++) printf("*"); printf("\n"); printf("main menu:\n1.leters digital conersion\n2.issuing bonus\n3.prints monthly calender\n4.prints daffodil\n5.searching for the value\n6.exit\n"); for(i=0;i<=45;i++) printf("*"); printf("\n"); do { printf("---please putin the option of main menue "); scanf("%d",&c); }while(c!=1&&c!=2&&c!=3&&c!=4&&c!=5); switch (c!=6) { case 1:leters(); break; case 2:bonus(); break; case 3:calender(); break; case 4:daffodil(); break; case 5:value(); break; } } 只要是自己写的 都能出来吧
第2个回答  2012-05-03
if(10000<a<=20000)

scanf("%d",c);

这两个地方不对,其它可能还有,不会是才学吧追问

才把函数学完

第3个回答  推荐于2016-06-28
#include<stdio.h>
void leters()
{
char a[100];
int i;
int n=0;
a[0]='0';
printf("input phonenumber,end up with #\n");
while(a[n]!='#')
{
n++;
a[n]=getchar();
if(a[n]>='A'&&a[n]<='C')
a[n]='2';
if(a[n]>='D'&&a[n]<='F')
a[n]='3';
if(a[n]>='G'&&a[n]<='I')
a[n]='4';
if(a[n]>='J'&&a[n]<='L')
a[n]='5';
if(a[n]>='M'&&a[n]<='O')
a[n]='6';
if(a[n]>='P'&&a[n]<='S')
a[n]='7';
if(a[n]>='T'&&a[n]<='V')
a[n]='8';
if(a[n]>='W'&&a[n]<='Z')
a[n]='9';
}

for(i=1;i<n;i++)
printf("%c",a[i]);
printf("\n");

}
void bonus()
{
float a;
printf(" please input profits: ");
scanf("%f",&a);
if(a<=10000)
printf("bonus is:%f",a*0.1);
if(a>10000&&a<=20000)
printf("bonus is:%f",10000*0.1+(a-10000)*0.075);
if(a>20000&&a<40000)
printf("bonus is:%f",10000*0.1+100000.075+(a-20000)*0.005);
if("a>40000")
printf("bonus is:%f",10000*0.1+100000.075+(20000)*0.005+(a-40000)*0.003);
}
void calender()
{
int a,b,c,i;
printf("please input the days of monthly calender:");
scanf("%d",&a);
printf("\n");
printf("please input this month the start of the day belongs to the week(1=sunday,2=monday,3=tuesday,4=wednesday,5=thursday,6=friday,7=saturday):");
scanf("%d",&b);
for(c=0;c<b-1;c++)
printf(" ");
for(i=1;i<=9;i++)
{
printf("%d ",i);
if((i+b-1)%7==0)
printf("\n");
}
for(i=10;i<=a;i++)
{
printf("%d ",i);
if((i+b-1)%7==0)
printf("\n");
}
printf("\n");
}
void daffodil()
{
int a,b,c,m,n;
printf("the number of daffodil is:\n");
for(a=1;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
{
m=a*a*a+b*b*b+c*c*c;
n=a*100+b*10+c;
if(m==n)
printf("%d ",n);
}
printf("\n");
}
void value()
{
int i,n,min=0,max=0;
int b[1]={0};
printf("input number:");
scanf("%d",&n);
printf("\n");
printf("%d numbers is\n",n);

for(i=0;i<=n-1;i++)
scanf("%d",&b[i]);
for(i=0;i<n-1;i++)
{
if(b[i]<min)
min=b[i];
else if(b[i]>max)
max=b[i];
}
printf("in the %d numbers,max is %d,min is %d ",n,max,min);
}
void main()
{int i,c;
for(i=0;i<=45;i++)
printf("*");
printf("\n");
printf("main menu:\n1.leters digital conersion\n2.issuing bonus\n3.prints monthly calender\n4.prints daffodil\n5.searching for the value\n6.exit\n");
for(i=0;i<=45;i++)
printf("*");
printf("\n");

do
{
printf("---please putin the option of main menue ");
scanf("%d",&c);
}while(c!=1&&c!=2&&c!=3&&c!=4&&c!=5&&c!=6);
if(c==6)
return;
else
switch (c)
{
case 1:leters();
break;
case 2:bonus();
break;
case 3:calender();
break;
case 4:daffodil();
break;
case 5:value();
break;
}
}本回答被提问者采纳
相似回答