c语言问题,求大神帮助
#include
int fun(char *p1,char *p2);
int main()
{
char str1[500];
char str2[500];
int x=0;
gets(str1);
x=fun(str1,str2);
for(int i=x-1;i>=0;i--)
printf("%c",str2[i]);
}
int fun(char *p1,char *p2)
{int i=0;
int j=0;
int count=0;
while(p1[i]!='\0')
{
if('a'<=p1[i]&&p1[i]<='z')
{ p2[j++]=p1[i];
count=count+1;
}
i++;
}
return count;
}
#includeint main(void){ int A,B,C; int y; scanf ("%d",&y); for(A=1;A<=9;A++) for(B=0;B<=9;B++) for(C=0;C<=9;C++){ if((A*10+B)*C+A==y){ printf ("%d %d %d
",A,B,C); return 0; } } return 0; }运行结果
scanf("%.2f",&x)
你这个题目错的地方可真多,首先在scanf里面不能有%.3f这样的格式,因为是键盘输入,不是计算机操作所以很难得到标准格式长度多少,有效是多少,在这里解释一下小数点前面是代表长度(超过了长度的话原样输出),小数点后面代表是有效位个数(有效位后面的四舍五入),x=2=x;变量赋值给常量是错的,因为=为赋值运算符,具有右结合型(自右向左运算);return 0,返回值为零,以下的被忽略,也就是说有了return 0,下面的printf("a=%d\,b=d,c=d,x=%.2f,y=%.1f",a,b。。}不进行了;z=y+3,z没有定义也是不能用的,c语言必须是先定义后使用的还有如果y是float型的数据不可以赋值整型z的,因为字长不同,需要强制转换;还有键盘读入scanf必须要有取地址符&,scanf("%f",&x);在输出printf里的(a=%d\)是错的,去掉\,因为不需要转义符的使用,以下是我在你的基础上改的一个可以运行的程序:
#include<stdio.h>
void main ()
{int a=3,b=5,c=7,z;
float x,y;
{printf ("输入一个的小数x=");
scanf("%f",&x);
printf ("输入一个小数y=");
scanf("%f",&y);}
a=b=c;
x=2;
z=(int)y+3;//return 0;
printf("a=%d,b=%d,c=%d,x=%f,y=%.1f,z=%d
",a,b,c,x,y,z);
}
错误不少呀~
1.float x, y;
2.scanf("%.2f", &x);从键盘输入如一个实数,记住x前面要加&,这是初学者常范的一个错误。
3.x = 2 = x;有错,改为x = 2;
4.int z;
5.return 0;后的printf语句不执行到呀。
同学,你初学C语言吧?你还是认真看看书吧。
scanf("%.2f", x)有错
掉了个符号,scanf("%.2f",x)应该为scanf("%.2f",&x),还有末尾要加分号
也不知道你要干啥,下面是发现的错误:
1.scanf("%.2f",x),输入数据时不能规定其精度值,这是错误的,但可以用于Printf函数,点(.)后面的表示其输出的小数位数。。。。还有x前面缺少一个&符号,即&x..............................注意了。
2.最好是将:
scanf("%.2f",x)
scanf("%0.1f",&y);
改为:
scanf("%f",x);也可以在f前面加上一个数字,表示我们所想输入数字的位数
scanf("%f",&y);
3.我已经把你程序所有的int型都改为了float型,防止丢失精度。
以下程序在VC6.0编译环境下通过:
#include<stdio.h>
void main ()
{
float a=3,b=5,c=7,x,y,z;//这里已经将全部的int型改为float型,一防止精度的丢失。。。。。。。。
scanf("%2f",&x);//注意这里输入的时候必须输入一个两位数,可以为整数或是实数。。。。否则会出错。。。。
scanf("%3f",&y);//注意这里输入的时候必须输入一个三位数,可以为整数或是实数。。。。
//如果f前面不加数字,则表示没有输入数字位数的限定。。。。
a=b=c;
//x=2=x;//这里不能将一个变量x赋给一个常数2,改为如下:
x=2.000;
z=y+3;//z没有定义,在开始需要定义
//return 0;函数的返回值为void型,这里不能返回0,如果要返回0的话,将void改为int型。。
printf("a=%.0f,b=%.0f,c=%.0f,x=%.2f,y=%.1f",a,b,c,x,y);//这里输出了一个\,给你去掉了,不去也没错的。。。。这里也说过了
//小数点后面的数字表示,要输出变量的数的小数点位数,为0表示输出整数,为2表示保留2位数,1表示保留1位数。。。。。
}
发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
1.之所以再次编译值不改变,乃是因为系统在加载可执行镜像时所选取的栈的初始地址是相对固定的,a就在这个栈上,而且程序开始到main函数执行,这是一段按部就班的例程,没有什么变数,所以a的地址不变是可以理解的。2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一...
计算机c语言题目,求大神帮忙
某年的某月的时间天数{ int x=0; switch((m+1)%14) { case 13:x=31;break; case 12:x=30;break; case 11:x=31;break; case 10:x=30;break; case 9: x=31;break; case 8: x=31;
本人碰见一道C语言难题,寻大神帮助,利用C语言实现:求任意两个集合的交集...
以前写过一个纯C的, 用的是数组,模拟C++ STL里面的set_intersection,set_union和set_difference的实现。 稍作了修改,添加了些注释,希望能帮到你。注意:必须先对输入集合排序;输出结果和C++ STL的测试结果吻合。include <stdio.h>#include <stdlib.h>#include <string.h>int set_intersection (...
C语言的一道题不会做了,求大神帮一下
第一题: a=4,b=8, 所以 (b==a) 为假,假就是 0,c= (b==a); c 得 0。语句中 a,b 数值 未发生过变化,保持初始值 a=4,b=8。所以输出 a,b,c 印出: 4,8,0 第二题:输入58,a=58;a>50 的条件成立,输出a值,印58 a>40 的条件成立,输出a值,印58 a>...
求大神帮忙解决一个c语言问题
其实是一个很简单的问题,只是你们的老师绝对忘记给你们讲解了,这也是一个很容易被人忽视的一个重大的小问题。printf("Please give me your upper:\\n");scanf("%d",&upper);改为:printf("Please give me your upper:\\n");char ch[100];gets(ch);scanf("%d",&upper);这样就可以了。你...
一道c语言题目,求大神帮写
int t = i + j ; \/\/ p[i]*q[j]时x的幂是t=i+j s[t] += p[i]*q[j]; \/\/ p[i]*q[j]对x^t的系数贡献 } } 主要部分大概如上,其他自己补充吧思路就是穷举p(x)*q(x)展开后所得到的所有多项式,然后合并x幂数相同的多项式 ...
一道c语言逻辑题目,求大神帮一下!
int res; \/\/res记录做好事的人,1表示A,2表示B,3表示C,4表示D \/\/假设A说的是真的,验证:res = 4;if (res != 4 && res != 2){ printf("A is true!");return 0;} \/\/假设B说的是真的,验证:res = 1;if (res != 2 && res == 4) { printf("B is true!");retu...
求大神帮我解决一下c语言的问题吧
则用该数除以10的余数替换,并交换最高位和最低位。要求:编写函数void encode(int x[],int n,int y[]),其中x指向的数组中存放n个不超过4位的正整数 ,加密过的n个正整数保存在y指向的数组中。测试数据:13,25,135,246,1357,7468,n=6 运行结果:43,64,654,765,8675,9781 \/ i...
c语言问题大神求帮助
include <stdio.h>#include <stdlib.h>#include int main(){int *a = NULL;int n;int w;int i,j;int t;srand(time(NULL));printf("以空格间隔,输入帆船最大承载量(80<=w<=200)和参与人数(1<=n<=300):");scanf("%d%d", &w, &n);if(w < 80 || w > 200 || n< 1 |...
C语言程序问题,跪求给位大神帮忙!谢谢 如题
整个程序这样写就对了 include <stdio.h> int main(){ int a,b,c,max;printf("Please input a,b,c:\\n");scanf("%d,%d,%d",&a,&b,&c);max = a;if (max<b)max = b;if (max<c)max = c;printf("The largest number is %d\\n", max);return 0;} 这个问题的错误在于这句...
邵劳硫酸:[答案] #include#include#includeint main(){int num,tmp,i,j;int n[5]={0};//用于存储num分解后的每位上的数字,由于num不超过5位,所以数组有5个单元就可以了 int *sq_ls_num;printf("请输入一个不多于5位的正整数: ");sc...
黑龙江省13158137496: C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因 - ?
邵劳硫酸: 已修改,看注释#include int main() { char a[20],b[20],c[50],*p1,*p2,*p3; p1=a,p2=b,p3=c; gets(a); while(*p1) { *p2 = (*p1)+3; //对字符串中的每个字符用加3的方法加密并存入数组b p1++; p2++; }*p2='\0'; //串结束符 p2=b ; //p2重新指向b的开始位置 while(*p2) { *p3 = (*p2)-3; //对b中的字符串解密存入数组c p3++; p2++; }*p3='\0'; puts(a); //puts是输出一个串 puts(b); puts(c); return 0; }
黑龙江省13158137496: 我有一个C语言问题,谁能帮帮我,我是刚刚学C语言,自己做了好久但是总是出错,求高手指教. - ?
邵劳硫酸: 你好,我也是C语言初学者,我来试试帮你解答.我要说的是“插入排序法”,我不会把答案全给你,我把方法全交给你,你自己...
黑龙江省13158137496: 大神们,求助C语言小问题 - ?
邵劳硫酸: 你的目的是什么呢? 现在while(k=1)就相当与while(1),循环条件恒为真,是一个无限循环,除非你在循环体里直接跳出,否则是不会结束的. 如果是while(k==1)的话,由于不满足循环条件,所以循环体是不会执行的. main前面要加类型,一般就是int了,当然你就算不加,运行也是没问题的,但是不规范,最好还是养成规范的习惯.
黑龙江省13158137496: 急急急!请教高手几个C语言问题.感激不尽!!! - ?
邵劳硫酸: 说实话,这些题要是多看几遍书的话,是挺简单的.(上面的是要让填空吧.)1.不好意思,学公约数的时候在几年级来着,真给忘了公约数是干啥的.2.(4)*p++!=0//我觉的...
黑龙江省13158137496: C语言求解,两道题,求大神们帮忙 - ?
邵劳硫酸: 1. #include int MaxP(int a,int b)//最大公约数 { int temp=a; while(temp!=0) { temp=b%a; b=a; a=temp; } return b; } int MinP(int a,int b)//最小公倍数 { int min; min=(a*b)/MaxP(a,b); return min; } void main() { int num1,num2; printf("输入两个整数:"...
黑龙江省13158137496: c语言编程题求大神帮忙! - ?
邵劳硫酸: #include<stdio.h> int main(void) { char string[1000]; char newStr[1000]; int i,k=0,j; gets(string); for (i = 0; string[i]; i++) { if ((string[i] <= 'z'&&string[i] >= 'a') || (string[i] <= 'Z'&&string[i] >= 'A')) { newStr[k++] = string[i]; } } newStr[k] = '\0'; i = 0, j = k - 1; ...
黑龙江省13158137496: C语言题目,求大神解答~!!! - ?
邵劳硫酸: 这是一个字符串检索问题://在S字符串中检索子串T(模式匹配) int Index(char *S, char *T){ int i,j,lenS,lenT; for(lenS=0;S[lenS];++lenS); for(lenT=0;T[lenT];++lenT); i=1;j=1; while(i if(S[i-1]==T[j-1]){ ++i;++j; }//匹配,一起后移 else {i=i-j+2;j=1;if(i>...
黑龙江省13158137496: 急!!!C语言编程题求大神帮忙解答 - ?
邵劳硫酸: 1 2 3 4 5 6 7 8 9 10 11#include <stdio.h> voidmain(){ inti,m,n,num=0,a[1000]; scanf("%d%d",&m,&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); if(m>a[i]) num++; } printf("诸葛亮最多可以战胜%d个对手",num); }
黑龙江省13158137496: c语言求大神来帮我 - ?
邵劳硫酸: 符合题目要求的代码如下:#include <stdio.h> double power(double x, int n); double fact(int n); int main(int argc, char const *argv[]) { double x, s; int n; int sign = 1; //正负号开关变量,初始状态为正 printf("Please input a postive int number n, a ...