急急急!!!!本人初学c语言 遇到难题 求助高手解答 最好有详细编译过程 满意可追加分数!!

www.hanlefang.net    2024-04-28
一道C语言的题目, 初学者不是很懂,望高手解答.~

这个不是判断等于,是判断a的值。
判断1赋值给a的结果,a=0为假,a不等于0为真。这个if语句的运行结果是把1赋值给了a,则a=1,所以恒为真,满足if的条件,于是运行if后面的一系列赋值语句。if语句后面不加“,”,因为if语句只有与if条件和满足条件时运行的语句一起才能成为一个完整的语句,因此不能加“,”或者“;” 。

这个问题是这样的:
你在头一个程序中的char *c;语句不是没有开设存储区,而是开设了一个指针型的存储区(这个存储区要放指针,所以不是字符型的),具体这个存储区的类型是unsigned long int还是unsigned int要根据你的编译设置来定,总之开设了一个存储区是放地址的,这个地址的位长与你机器相关,比如32位或64位的。我们假定它开设的是一个32位的空间unsigned int。
那么就好理解后面程序了:
申请了连续5个这样的unsigned int来存放地址,这个空间定义相当于unsigned int a[5],注意用来存放的是char型数据的访问地址;你后面用这5个地址指针空间来进行字符输入输出当然可以进行,这相当于:
unsigned int a[5];
char *c;
c=(char *)a;
scanf......
换句话来说,你原先char *c[5]中如果真的放入了字符指针,就会被你后面的scanf输入的字符冲掉

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{ char str[]="阿咯姐abc锣鼓到a你";
char str1[1000];
int i,m,j=0,k=0;
m=strlen(str);//计算字符长度
for(i=0;i<m;i++)
{
if(str[i]>='A' && str[i]<='z')//判断是否是字母
{ k++;
continue;}//字母,跳出循环
else
{
str1[j]=str[i] ;//不是字母,将其放进新数组
j++;}
}
printf("%s",str1);//输出
}

方法一:
CString str = "阿咯姐abc锣鼓到a你";
int nCharCount = 0;//字符个数
int nChineseCount = 0;//汉字个数

for(int i = 0; i < str.GetLength(); i++)
{
if( (BYTE)str[i] < 0x80 ) //字符
{
nCharCount++;
}
else//汉字
{
nChineseCount++;
i++;
}
}

方法二:
IsDBCSLeadByte

可以用一个函数,isalpha()或者自己用英文字母判断一下

17756728846:我是C语言初学者,遇到了, 不懂的地方,希望有老师指点一下. -
强才伯______ 我来回答:比如输入的是4:第一次循环:i=1,1<4,所以进入循环:temp=0,进入J的循环:sum=1,temp=1; 第二次循环:i=2,i<4,所以进入循环:temp=0,进入J的循环:temp=0+1+2=3,sum=1+3=4,第三次循环:i=3,i<4 所以进入循环:temp=0,进入J的循环:temp=0+1+2+3=6,sum=4+6=10; 第四次循环:i=4,i=4; 所以进入循环:temp=0,进入J的循环:temp=0+1+2+3+4=10,sum=10+10=20; 接着i=5,就不进入循环拉 仔细迭代每一步是做C语言的必要过程!

17756728846:本人自学C语言时,遇到了一些问题,望高人指点一下. -
强才伯______ 问题就在于s=1/2*(a+b+c);从左到右执行运算,1和2都是整型,于是1/2就成了0了,再乘个(a+b+c)不管怎样s都为0.而写成1.0后,1.0/2就是浮点数与整数的混合运算,会自动将整型数转换成浮点数再参与运算,于是就得到你想要的结果0.5.

17756728846:C语言 自学中遇到几个问题 -
强才伯______ 楼主4问还没悬赏分,真抠,呵呵 我能力有限,仅作参考,希望对楼主有帮助: 1. getch() 在VC下,加不加都行,别的编译环境就不清楚了 getch()是从屏幕读取一个字符且不回显到屏幕上 getche()是从屏幕上读取并回显到屏幕上 它们...

17756728846:新学C语言遇到问题..
强才伯______ 改为这样就行了.#include &lt;stdio.h&gt; int gcd(int u,int v) { int temp; while(v!=0) { temp=u%v; u=v; v=temp; } return(u); } void main() { int result,a=150,b=35; printf("a=%d,b=%d",a,b); result=gcd(a,b); printf("The gcd of %d and %d is %d\n",a,b,result); }

17756728846:我自学C语言可是现在遇到一个很大的难题啊!! -
强才伯______ 1*2*3*4*5 int s=1; int i; for(i=1;i<5;i++) { s=s*i; } 这个就解决了.至于其他的,我也遇见过你同样的问题.我现在基本上已经解决这些问题了.可能当时我看不进去,心里很烦躁,很郁闷.这时候,我就适当休息,然后再第二次再来看,我会发...

17756728846:初学c语言,遇到了问题,希望大侠帮我看看哪里错了
强才伯______ #include &lt;stdio.h&gt; int main(void) { int cookies=5; int total_eaten=0; int eaten=2; cookies=cookies-eaten; total_eaten=total_eaten+eaten; printf("i will have %d cookies,there are %d cookies left ",eaten,cookies); //逗号打错位置咯 return 0;}

17756728846:C语言编程~~~我是个新手遇到问题了、、、大虾解答下啊~~~ -
强才伯______ #include #define M 3 //定义行数#define N 5 //定义列数void compare(int x[M][N]) //比较子函数开始{ int m,n; int p=0,q=0; //作为最终下标的表示 int k; k=x[0][0]; for(m=0;m for(n=1;n { if(k { k=x[m][n]; p=m+1; // 因为C是从下标为a[0][0]处开始读入 q...

17756728846:C语言初学,遇到点问题```` -
强才伯______ 在你的程序中,无论输入错误与否,printf("the day is %d \n",M); 都会执行只需改两处:int day,month,year,R,M; int day,month,year,R,M=0;printf("the day is %d \n",M); if(M!=0) printf("the day is %d \n",M);错误的时候M不会被赋值,就为初始值0,就不打印

17756728846:本人在学习C语言中的过程中,遇到了一个难题,希望高手能给指条明路. -
强才伯______ 1、注意使用的函数必须要将其头文件包含进来.2、例程也有拼写错误的地方3、抄写例程有可能抄写错误4、环境设置要正确才可以正确编译程序.

扩展阅读

  • 扫一扫题目出答案
  • c语言在线编程网站
  • c++和python先学哪个
  • c语言必背100代码
  • 初学编程必背50个
  • c语言新手入门代码
  • 三类人不适合学编程
  • 初学编程100个代码大全
  • c语言下载
  • c视频教程
  • 联系电邮
    © 江苏知识网