c程序设计

c程序设计,第1张

请楼主复习一下教材中“数组”这一章节,一维数组在定义时,长度是不省略的,即定义数组时,方括号中是一个‘常量表达式’(注意:是常量),不能通过动态的方式赋予数组长度。

所以本程序中,楼主的本意是想通过strlen()函数来测得a数组的长度,但这是做不到的。

祝你提高!

B,串复制

先讲d++=s++,作用相当于d=s;s++;d++;这3句

然后=号的返回值是赋值的结果,因为字符串结束符是'\0',也就是0,字符结束以前返回值一直不为0就一直循环,当碰到0循环就停止了,这时候一个字符串也复制完 了

#include <stdioh> //包含头文件stdioh

void dec2hex(int n, char str[]) 函数dec2hex,没有返回值,带一个整型参数和一个字符串数组参数

{

int m,i,j; 定义三个整型变量m,i,j

char t; 定义字符变量t

m=0;初始m为0

do { //do{}while(n>0)循环体,当n等于小于0时结束

k = n % 16; n对16取余,并把值赋予k

if(k>9) if语句,当k大于9时执行

str[m]='0'+k; 把字符'0'+k赋值给数组str的第m+1(数组下标从0开始)个值

else 如果k小于等于9时执行

str[m]='A'+k-10;把字符'A'+k-10给数组str的第m+1个值

m++; m自加1

n = n / 16; n除与16(取整,小数点不要),并把值赋给n

} while (n>0); n大于0时继续执行dowhile()

str[m] = '\0'; 把字符'\0'(字符串的结束字符)赋给str[m]

for (i=0,j=m-1;i<j;i++,j--) for循环,i 初始值为0,j 初始值为m-1,当 i 小于 j 时,执行for循环,每次循环结束后 i 加 1,j 减 1

{

str[i]=t; 把 t 值赋给数组str[i],这里好像错了,我觉得是 t = str[i];

str[i]=str[j]; 把值str[j]赋给str[i]

str[j]=t; 把 t 值赋给str[j]

} for循环的作用是把数组str的值倒过来,如:原来的值为 0 1 2 3,倒过来后为3 2 1 0

}

main() 主函数main

{

char str[80]; 定义一个长度为80个字符的数组str

int n; 定义一个整型变量n

scanf("%d",&n); 从终端输入一个整数,并存入n中

str=dec2hex(n); 调用函数dec2hex,并把返回值赋给str,我觉得这也出错了,应该为

dec2hex(n, str);

puts(str); 把数组str的字符串输出到终端

}

这种问题是双线圈造成的 ,如果你在程序的其他地方也输出了Y0A4 ,

当PLC扫描输入信号的时候,假设你一个条件是让Y0A4置ON的

而另一个条件却是让Y0A4置OFF的 那么PLC输出就会出错,

这是常见的编程错误,不严谨造成的。

以上就是关于c程序设计全部的内容,包括:c程序设计、C程序题,说明理由、解释C语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9519283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存