C语言,韩信点兵编程,看看我的错在哪? Posted 2023-05-05
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,韩信点兵编程,看看我的错在哪?相关的知识,希望对你有一定的参考价值。
按从1至5报数,记下最末一个士兵报的数为1;再按从1至6报数,记下最末一个士兵报的数为5;再按从1至7报数,记下最末一个士兵报的数为4;最后按从1至11报数,最末一个士兵报的数为10;... 按从1至5报数,记下最末一个士兵报的数为1; 再按从1至6报数,记下最末一个士兵报的数为5; 再按从1至7报数,记下最末一个士兵报的数为4; 最后按从1至11报数,最末一个士兵报的数为10; 你知道韩信至少有多少兵? #include <stdio.h> int f(); int main(void) int x; x=f(); printf("%d",x); return 0; int f(int x) int n; double a; a=x%n; if(n==5) a=1; if(n==6) a=5; if(n==7) a=4; if(n==11) a=10; return x; 展开
参考技术A
你的算法根本就不能得到结果,计算机是死的,不像人有思维,所以你只能一个个数去试,用循环实现: int f() int x=10;//你可以从1开始,按最后一个分析,至少有10人 while(1) if(x%5==1&&x%6==5&&x%7==4&&x%11==10)break; else x++; return x; int main(void) int x; x=f(); printf("%d\n",x); return 0;
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);已经修改 看看还有什么问题
参考技术A
#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; 只要是自己写的 都能出来吧
参考技术B
if(10000<a<=20000) scanf("%d",c); 这两个地方不对,其它可能还有,不会是才学吧追问 才把函数学完
参考技术C
#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; 本回答被提问者采纳
以上是关于C语言,韩信点兵编程,看看我的错在哪?的主要内容,如果未能解决你的问题,请参考以下文章
c语言问题帮忙调试程序,看看下面程序错在哪儿?
51单片机,keil 软件 C语言问题(我错在哪了)
C语言编程:韩信点兵问题拜托各位了 3Q
c语言韩信点兵
C语言编译出现错误,请问错在哪? #include <stdio.h> int main()
c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的