菜鸟新手请教C语言问题~

作者&投稿:前家 (若有异议请与网页底部的电邮联系)
菜鸟请教大虾C语言问题~

不知道上次得到利息要不要加入到下次存款中,这样就复杂了,不用的话就用贪心算法吧。

1 main和void main的区别就在前者不需要显式的写出return;而后者需要写出。其实都是没有返回值,无本质区别。
2 声明两个变量记数,循环判断,若是奇数则一个变量加1,若不是奇数则另一个变量加1。最后判断是否是2和1,输出。
3 前驱字符和后继字符就是紧挨这个字符的前后两个字符。比如b的前驱后继是a和c。

先逐句分析:
1、i++ < 7,成立时循环while。这句话判断的是i<7成立否,判断之后才运行i++,因为自增的优先级低于比较运输符。
2、p[i] % 2,对2取余不为0时执行if,即奇数时执行if。
3、j += p[i],累加。
整体分析:
这道题利用while循环对数组p进行了遍历,每次循环条件判断结束后进行自增,再对当前元素对2取余,进行判断,决定是否累加。
所以,第一次循环时,i=0,但做完while的条件后i自增了,所以当if进行条件判断的时候i已经是1了,所以第0号元素(11)被漏过去了,从第1号元素(12)开始对2取余。
这样,真正累加的数字是13,15,17,最后j的值为45。
以上~~

#include <stdio.h>
void main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7) /*i从0开始,但是这里的i比进去之后小一,这里可以看看后缀自增运算的优先级*/
if(p[i]%2) /*p[i]为奇数才执行下面的语句,里面i从一开始,所以是2、4、6被加进去了 */
j+=p[i]; /*13 、 15 、 17 之和*/
printf("%d\n",j); /*结果为45*/
}

对数组p中除第一个以外的每个int值进行判断,如果是奇数就累加到j上
结果就是

j=13+15+17

因为在
if(p[i]%2)之前已经有了i++,所以这时候i=1,所以第一个11是没加进去的

你用的i++做判断,这样第一次p[i]就是p[1],这样就是13+15+17=45了

while(i++<7)先判断循环体,此时i=i+1;也就说从p[1]开始
“if(p[i]%2)”判断奇数有13,15,17


请教一下单片机c语言中如何不用printf语句而把数据送到uart口上?_百度...
串口发送不是有专用的数据寄存器吗?赋值过去就可以了啊,然后你说发送字符,可以试一下用'BAUD'这样嘛''就是字符的意思

小白,想入门程序员,应该从什么开始学,顺序是什么?
Java:应用广泛,几乎大多数开发场景都有java或者java变体的身影。学习java你可以了解到面向对象思想,了解虚拟机等的概念,面对常见的开发也能够有应对方案。同时这个语言对比C\/C++能简单不少,在很多情况下是面向新手比较合适的选择了。Go:最近一段时间流行起来的语言,在面对高并发等场景下有天然的优势。

VC6.0++中C语言延时(时间控制问题),请教各位了,望各位帮帮忙吧_百度...
include <stdio.h> include <windows.h> \/\/Sleep函数对应的库 int main(){ int i;for (i=0; i<11; i++){ printf("%d\\n", i);Sleep(1000);\/\/ 1000 单位是毫秒 1000ms = 1 s } return 0;}

兔子增值问题,C语言,新手,求思路
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21...1+1=2 1+2=3 2+3=5 3+5=8 第一个月小兔子没有繁殖能力,所以还是一对 三个月后,生下一对小兔对数共有两对 四个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对 幼仔对数=前月成兔对数 成兔对数=前月...

请教朋友们 现实和长远来考虑 J2ME和C++ 本人C懂个基本阶段 非常感谢...
毫无疑问,必然是c++有钱前钱前途,c语言是各种语言的,可以说是母语吧,学语言只要精通了一门,可以说在其他语言的学习上是一点即通。而c++既然有这个好处,必然结果就是它的掌握难度较大,灵活性较高,难以在短时间内掌握。。。这个你可以放眼国内的大学,几乎都开了c语言课(不管是c,c++还是c#)...

怎样学习电脑基础知识
让自己懂得怎样上网最为安全,怎样最快速等等。大多数学电脑,指的是使用电脑,当然你也可以走硬件道路,修电脑,这需要你了解计算机的各种硬件组成,会电子电路的相关知识,这里不多说。继续深入学计算机,你需要:逻辑电路基础,微机原理与接口,汇编语言,操作系统,C语言和C++语言。

菜鸟新手请教C语言问题~
先逐句分析:1、i++ < 7,成立时循环while。这句话判断的是i<7成立否,判断之后才运行i++,因为自增的优先级低于比较运输符。2、p[i] % 2,对2取余不为0时执行if,即奇数时执行if。3、j += p[i],累加。整体分析:这道题利用while循环对数组p进行了遍历,每次循环条件判断结束后进行自...

C语言新手请教C语言问题,求大神解答
你应当输入字符型变量,所以:int letter;改为char letter;scanf("%d",&letter);改为scanf("%c",&letter);

C语言 新手请教
这个代码看起来有问题,如果输入是 1 2 1 2会如何输出?只是连续出现重复才进行删除?如果间隔出现重复也需要删除可以按照以下思路进行:对输出的数据进行排序 对排序后的数据进行删除重复处理 排序这里采用了最简单的冒泡排序,源码如下:include <stdio.h>#include <stdlib.h>#include <string.h>#...

C语言新手请教 下面的程序一步一步解释下
change函数 打印ab 调换ab 打印ab 主函数 打印ab 调用change 打印ab 注意 在调用change后ab的数值不会改变 这是因为作用域的关系

宁夏回族自治区19278852789: 小菜鸟刚开始学C语言,有问题请教各位高手: -
支鲁大黄: 答案为8888889.000000 因为float的有效数字是6到7位,对于实际的程序来说,float类型精度通常是不够的,float只能保证6位有效数字,而double至少可以保证10为有效数字,能满足大多数计算的需要,所以就是这样的啦 如果你想更精确点的话,将c改为double形,注意,你将c改为double形的时候,输出格式为%lf

宁夏回族自治区19278852789: 请回答菜鸟一些C语言问题.请详细解释 -
支鲁大黄: 请回答菜鸟一些C语言问题.请详细解释 悬赏分:0 - 离问题结束还有 14 天 23 小时 下列程序段运行后,x的值是【 】 a=1;b=2;x=0; if(!(--a))x--;//如果--a值再取非的值为真,那么x-- if(!b)x=7;//如果b的值大于0,那么!b等0;如果b等于0,那么b的值不等于0(可以是任意数,不等于的数(与你定义的类型有关)) else ++x;//++x 等于 x = x+1 A.0 B.3 C.6 D.7 其中(--a)是a = a -1

宁夏回族自治区19278852789: 新手请教c语言代码的问题 -
支鲁大黄: 1.程序开头无#include为什么能调用printf scanf函数 在VC 6.0里,可以不包含stdio.h,直接使用printf、scanf.2.定义这个int *pointer1,*pointer2,*pointer3;时候这个“ * ”是什么意思?这里的*,表明其后的变量是指针变量.3.swap函数是什么意...

宁夏回族自治区19278852789: C语言编程问题,菜鸟求助
支鲁大黄: 采用动态内存分配(malloc ) 分配完之后,应用程序不会自动释放所申请的内存空间. 程序在退出的时候会自动清楚栈空间,而不会清除堆空间. 不清楚堆空间一般不会造成什么恶性后果,因为在应用程序退出时,操作系统会清理,不过在你程序运行的时候会发现内存越来越多.如果你的程序需要不停的申请内存,而你不去释放,那会出现内存耗尽.死机. 导致其它程序执行变慢. 这时候你只能强行关闭程序或者重启电脑.

宁夏回族自治区19278852789: C语言菜鸟问题 -
支鲁大黄: 是字符型变量,即char类型,比如字符a表示为'a',而不是"a"(这种是字符串了,实际包含'a'和结束符'\0'两个字符) 你用字母的说法是不严谨的,一个字母即可以是字符,也可以是字符串

宁夏回族自治区19278852789: 新手请教C语言 -
支鲁大黄: #include <stdio.h> main() { int year,month,day; int i,sum=0; printf("输入年份(格式:year/month/day)\n"); scanf("%d/%d/%d",&year,&month,&day); int m[12]={31,28,31,30,31,30,31,31,30,31,30,31}; /*判断这一年是否闰年,如果是那么2...

宁夏回族自治区19278852789: C语言菜鸟提问 -
支鲁大黄: #include "stdio.h" void main() { int a,b,k,t,sum=0; printf("请输入两个整数:"); scanf("%d %d",&a,&b); if(a>b) { t=a; a=b; b=t; } for(k=a;k<=b;k++) { if(k%2==0) sum=sum+k; } printf("%d和%d之间的所有偶数的和是:%d\n",a,b,sum); }

宁夏回族自治区19278852789: 请教一个C语言很基础的问题?
支鲁大黄: 简单的说,C语言源代码文件(.c),经过编译,生成目标文件(.obj),然后经过链接,也就是和其他目标文件(如果有的话)和所包含的头文件链接,生成可执行文件(.exe) EXE程序文件,上面的.EXE文件打开后马上又没有了. 这个,只要在您的源代码文件(.c)执行结束之前的地方,加一句 system("pause") 或者 getchar() 就可以暂停,以便观察结果..或者也可以用 getch(),这个需要引用头文件 conio.h

宁夏回族自治区19278852789: C语言例题新手请教 -
支鲁大黄: 因为你的Switch()语句中没有break,因此,每次循环时,都会输出多个0时,走default,输出01时,输出case1后再输出case2,再输出default共3个12时,输出case2,再输出default共2个2 所以结果为 011122

宁夏回族自治区19278852789: 新手关于C语言入门的问题 -
支鲁大黄: #include //包含调用scanf,printf函数所需的头文件 int main(){//函数入口 int a, b, c;//定义3个变量储存输入的值 scanf("%d%d%d", &a, &b, &c);//输入3个数,并相应保存到abc里 printf("%d", a+b+c); //计算 a+b+c,并把结果输出 return 0;//主函数返回0,表示程序正常退出 }

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