初始化f1和f2都为1。大循环,i从1到20
先输出初始化的f1和f2的值,输出为11
判断i是否被2整除,如果整除则换行,不整除则无 *** 作。第一轮i=1,无 *** 作。
把f1+f2赋给f1,也就是前两个月的值相加,赋给f1(注意现在f1=1+1=2)
再把f1+f2赋给f2,也就是刚才已经变换过的f1加上以前的f2,赋给f2(注意现在f2=2+1=3)
同理,第二轮,先输出上一轮变过了的f1,f2,输出为23。
再判断i是否被2整除。i此时为2,被2整除,所以现在的输出为1123(换行)。
之后都是循环。第三轮58(不换行),第四轮1321(换行)
总输出应为:
1123
581321
345589144
共十行
#include<stdioh>
int main()
{ chars[ ]="GFEDCBA"; //一个字符串s
int p=6; //p为6
while(s[p]!=‘D’) //s[6]开始循环,即从A开始满足条件打印。接着是s[5]即B也满足,然后是s[4]即C也满足。然后是D不满足退出循环
{ printf("%c ", s[p]); //打印s[p]字符
p=p-1; } //p减少1,即往前面移动
return 0;
}
输出是ABC,我看不懂程序意思,求每行注释。
还有一题:
main()
{ int n1,n2; //两个整数
scanf("%d",&n2); //输入n2
while(n2!=0) //当n2不为0
{ n1=n2%10; //n1为n2的个位数字
n2=n2/10; //n2/10消除掉个位
printf("%d ",n1); } } //打印n1即n2的个位数字
//整个程序的含义就是将数字123打印成 3 2 1
给你提示一下吧,我希望能够帮助你自己理解它。
这个程序的意思是:把第1个单词中跟第1个字符相同的字符删除,把第2个单词中跟第2个字符相同的字符删除,把第3个单词中跟第3个字符相同的字符删除,把第4个单词中跟第4个字符相同的字符删除。
顺便说一下,这个程序在有的编译器环境下可能引起运行时内存错误。
#include <stdioh>
main()
{ int i, j;
char ch, p1, p2, s[4]={"four","hello","peak","apple"};
for(i = 0; i < 4; i++){
p1 = p2 = s[i]; //p1和p2指向第i个单词的开头
ch = (p1 + i);//ch表示第i个单词的第i个字符
while(p1 != '\0'){ //循环让p1从这个单词的开头逐步走到这个单词的末尾
if(p1 != ch) {//如果p1所指的字符跟ch不同,就通过p2从单词第一个位置开始放置
p2 = p1;
p2++;//然后让p2指向这个单词的下一个位置
}
p1++;
}
p2 = '\0';
}
for(i = 0; i < 4; i++)
printf("%s\n", s[i]);
}
一开始p2是指向s[i]里面的第一个字符的
通过给p2赋值就给s[ i ]这个单词里面的第一个字符赋新值了
然后p2++让p2指向这个单词的下一个字符位置
下次赋值就把第二个字符的内容改变了
如此如此
这个程序是读入四个用字符分隔的整数,然后计算出这四个整数的和并输出,他对要求用什么字符分隔并没有要求,也就是说,即使你输入1-2-3-4,程序也会给你输出10,他把读入的分隔字符全部丢弃了。所以中间如果用回车来分隔整数也是可以的,你也可以用4行来输入这四个整数的。
main()
{
int i;//定义一个整型变量i
for(i=3;i<10;i++) /循环输出3-10(不包括10),能被4整除的不被输出(即输出35679)/
{
if(i%4==0)//判断能不能被4整除
continue;//可以被整除则跳过此次循环,比如当i=4的时候,判断能被4整除了,则执行到\
//执行到continue的时候,将跳过接下来要执行的,直接到i=5的情况。(和break区别)
else
printf(“%d,”,i);//当i不被4整除,则输出。
}
}
//结果为:35679
//-----------------------------------------------------------
main(){ int x;
x=3;//初始化x = 3
do
{ printf(“%d”,x--);//先输出X的值(3),再将X-1
}while(!x); //X 不等于0,所以!x 等于0,即跳出循环
}
//结果为:3
//-----------------------------------------------------------------
main()
{ int a=8 , b=1;//定义并初始化a,b
a=a+b;//a = 9
b=ab;//b = 9
printf("%d,%d",a,b); }
//结果为:9,9
//---------------------------------------------------------------------------
fun(int a, int b)//定义一个函数,传入a,b两个参数(其实就是比较两个数的大小,把大的返回)
{ if(a>b) return (a);//如果a>b,就返回a
Else return (b); }//否则(即b>=a),就返回b
main()
{ int x=3,y=8,z=6,r;
r=fun(fun(x,y),2z);//分两步,第一,比较x和y,得到xy中最大的(显然y比较大为8),第二,把x,y中最大的(y)和2Z比较(即8和26比较),显然2z比较大为12,所以r=12
printf(“%d\n”,r); }
//结果为:12
//------------------------------------------------------------------------
main()
{ int n;
For(n=3; n<=10; n++)
{ if(n%5= =0)break;//break和continue的区别来了,break是直接跳出循环,continue是只跳过这次玄幻,比如n=5的时候,正好可以被5整除等于0,则执行break;就直接跳出循环了,而continue,则还会执行n=6,n=7的情况
Printf(“%d”,n); } }
//结果为:34
程序的功能就是求一个字符串的长度啊
p=s这一句就是把字符串的首地址给p 通俗一点就是让p='g'
while(p != 0)//因为每个字符串的结束就是'\0'(码值是0)
{
}//最后循环完了之后指针指向goodbey这个字符串的最后一个也就是'/0'
然后减去首地址 就是字符串的长度
以上就是关于C语言,这个程序完全看不懂,谁能解释一下全部的内容,包括:C语言,这个程序完全看不懂,谁能解释一下、(入门级)C语言程序 看不懂,求详细讲解注释、程序看不懂怎么运行的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)