C语言的问题 ,求大神解答!

作者&投稿:智有 (若有异议请与网页底部的电邮联系)
C语言的疑问~

'\xxx'类型的字符常量中,xxx代表8进制整数,其含义是某字符的ASCII码。
而\483' 里483不是合法ASCII码范围。

你认为应该是多少呢?输出是正确的,其值就是a[0],它被初始化为1.1。因为fun中为s指针重新分配了指向,*s=*p1+*p2++;这一句中的s已不再指向a了。因为指针形参本身也是拷贝调用,所以main中的s仍然是指向a的,printf("%5.2f
",*s);输出自然是a[0]。可以这样验证,在fun中的*s=*p1+*p2++;后加一句printf("%5.2f
",*s);,它就应该输出11.1了……

如果输入非数字字符(如英文字母、标点符号、括号等),scanf("%d",&x)返回是0,满足while(scanf("%d",&x) != 1)循环条件,利用while((ch=getchar()) != '\n')) continue;过滤掉非数字字符,直到输入'\n'为止,并提示你继续输入。如果输入的数字字符(0 -- 9),scanf("%d",&x)返回1,不满足while(scanf("%d",&x) != 1)循环条件,顺序执行下面的语句。

这是scanf的功能,如果scanf中能够按照%d获取正确的数字输入,则其返回值就是其能够获取的正确输入并赋值给变量的个数。

程序中 scanf("%d",&x) 中,x只有在你输入是数字的情况下 scanf才返回1,其他情况返回非1的数字。所以,这里就对这个进行判断,如果返回的不是1,那就提示重新输入

因为字符串后面默认加了一个\n,判断有没有\n就可以了!


二七区15929623804: 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...

二七区15929623804: c语言问题 求大神解答 -
敖燕眼氨: 按题中的意思就是两个瓶子换一瓶汽水(不含瓶子),所以下面的代码就搞定了#include int main() { int n,i,a,b,sum=0; scanf("%d",&n); if(n sum = 0; } else { //两个以上可以换 sum = n/2; //直接除以2,因为int类型所以多一个瓶子也不影响 } printf("%d\n",sum); //这是答案 return 0; }

二七区15929623804: 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; }

二七区15929623804: C语言问题,求高手解答.
敖燕眼氨: 如果只是单纯的实现问题的功能. goto语句就可以了.(虽然goto有点不利于程序可读.但是这里用goto是最直接的方法.) 下面是伪代码: firstFor: for(参数)//第一个for循环 { for(参数)//第2个for循环 { for(参数)第3个for循环 { if(条件) { goto:firstFor; } } } }不明白的再Q问吧

二七区15929623804: c语言的题,求大神解决 -
敖燕眼氨: 1. 为什么要使用 scanf("%c%c",&a,&b)这一句来接收两个字符的输入,而判断时仅用a?a 2. a>0?a:128是什么表达式?请解释表达式的值代表的两个意义.条件表达式b ? x : y,先计算条件b,然后进行判断.如果b的值为true,计算x的值,运算...

二七区15929623804: 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>...

二七区15929623804: 求高手解答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...

二七区15929623804: C语言问题,求大神解决,谢谢啦,我是小白,最好能够解释下原因.. -
敖燕眼氨: #include<stdio.h> void findmin(int *s,int t,int*k)//找到最小值的函数.这个*s是数组的第一个元素,*k是指向第一个i的位置,就是k存储的是i的存储单元的地址 { int p; for(p=0,*k=p;p<t;p++)这点 if(s[p]<s[*k])这个s数组首地址的地址依然是指向a数组...

二七区15929623804: 急急急!请教高手几个C语言问题.感激不尽!!! -
敖燕眼氨: 说实话,这些题要是多看几遍书的话,是挺简单的.(上面的是要让填空吧.)1.不好意思,学公约数的时候在几年级来着,真给忘了公约数是干啥的.2.(4)*p++!=0//我觉的...

二七区15929623804: C语言问题 求大神级解答 -
敖燕眼氨: #include<math.h> #include<stdio.h> double result(double x) { return x*x-5x+4; } int main(void) { double a; scanf("%lf",&a); double y1,y2,y3; y1 = result(a); y2 = result(a+15); y3 = result(sin(a))); printf("y1=%lf,y2=%lf,y3=%lf",y1.y2,y3); return 0; }

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