发表几个学习过程中的小程序

首先发一个逆序排列的程序,输入5个数,让其逆序排列。

#include <stdio.h>
int main()
{
int ch[5], i,j ,t;
printf("请输入5个数:\n");
for (i = 0; i < 5; i++) {
printf("第%d数为:", i + 1);
scanf_s("%d", &ch[i]);
}
for (i = 0; i < 2; i++)
{
t = ch[i];
ch[i] = ch[4-i];
ch[4-i] = t;
}
for (i = 0; i < 5; i++) {
printf("%d,", ch[i]);
}
return 0;

}

首先根据题目只有5个数字,所以排序过程中,只需把a[0]和a[1]与a[3]和a[4]顺序交换即可,挺简单的一道题目。

下面是一个for循环三重嵌套的题目。

题目:由1,2,3,4这几个数字,能组成多少个互不相同且无重复的三位数?都是多少?

#include<stdio.h>


int main()
{
int a, b, c;
int i=0;
for (int a = 1; a < 5;a++)
for (int b = 1; b < 5; b++)
for (int c = 1; c < 5; c++)
{
if (a != b&&a != c&&b != c)
{
printf("%d\t", 100 * a + 10 * b + c);
i++;
}
}
printf("一共组合数为%d种\n", i);

}

首先根据题目是3位数可以设定3个变量,分别表示3位数的个位,十位和百位,然后使用3重for循环,分别让个位,十位,百位的数在1-4之间循环,最后加入判定条件,也就是3位数的每一位各不相同,然后输出结果。而循环的次数i则代表了,一共有多少种组合方式。当然这种简单的数学问题,不通过循环也可以计算出个数,即4个数组成3位数且每一位各不相同的组合方式为4*3*2=24种。如果位数上可以相同的话,就是4*4*4=64种组合方式。

最后一题是函数的应用。

题目是写一个函数,可以通过它输出字符串长度。(字符串为用户输入的)。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int zifuchangdu(char s[])
{
int l = 0;
while (s[l])//循环当s[l]==0时,退出循环。字符串最后一个数字是\0。
{
++l;
}
return l;
}
int main()
{
char name1[1000];
printf("请输入新名称:", name1);
gets_s(name1);
int c=zifuchangdu(name1);
printf("%d\n", c);

}

首先为函数设定一个参数,即char s[],然后设定字符串长度的计算公式。使用while循环,当字符串数组中的元素等于0时,结束循环。因为字符串默认最后以为是‘\0’,然后返回值就是当前元素的下标,也就是字符串的长度。这里要注意,只有当s[l]的值是\0时才会推出while循环,如果输入字符有0的时候会默认是字符串中一个元素,同样会记入到字符串长度中。最后我们设定一个整型c来输出字符串的函数。

最后要强调一点函数使用规则,首先函数前面的定义名决定了是否需要函数的返回值,以及返回值的类型,如int就定义了函数需要有返回值且返回值为整型,而char则定义了返回值需要是字符,而不是数值。void这种关键词定义的函数则不需要返回值。

其次,函数在运算过程中,所有函数内的赋值和变量只在函数的作用域中有效果,出了函数之后需要重新定义所需要的变量,也就是说,函数最后的运算结果,要么返回一个需要的数值,要么进行一系列操作,不返回数值。而且函数的形参和实参也可以定义成1个变量,并不影响函数的运算。

当然不见得100%正确,毕竟是个人理解,如有不对之处,也希望有大神指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值