当前位置:首页 » 编程语言 » c语言中负号是属于字符吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中负号是属于字符吗

发布时间: 2022-12-07 11:18:30

c语言中负号占几个字符

负号不占有字符。它取决于数值的最高位的状态!1为负,0为正。

② C语言中负号是属于字符吗

char a = '-'; // 属于字符
char* b ="123-456abc“; // 属于字符
int c = -5; // 不属于字符,叫符号
c--; // 运算符

③ c语言输出,负号算不算一列

应该是看你是什么输出格式 如果 是 %c 就算一列 如果是 %d 或者%f 就应该不算,,因为他要和数组合输出 应该是这样

④ C语言表达式求值中怎么确定'-'是负数的符号还是运算符

举个例子说明下
x=-1
;
-是负号的意思,
x-=1
;
-是减号的意思,
在运算口诀里
“自增自减非反负”这句中的负即是指负号
他们是单目运算符,结合性为自右向左,

⑤ C语言中什么是字符

C语言中单引号的是字符,双引号的是字符串。
1、字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。字符在计算机内存放,应规定相应的代表字符的二进制代码。代码的选用要与有关外围设备的规格取得一致。
2、字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的。
它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

⑥ C语言 负号问题

只能是在程序里判断‘-’这个字符。你需要能够判断出‘-’是一个减号还是一个负号。

比较简单的方法是,输入计算式时你规定好格式,负数一律用()括起来。这样比较容易判断是不是负数。当然你也可以定义其它的格式。

如果不规定格式的话,判断方法稍微麻烦一点,你要判断‘-’前面是什么,如果是数字,那么 ‘-’为减号,如果是‘)’,那么‘-’为减号,如果是‘+-*/’号,那么‘-’为负号。如果什么也没有,那么表明是起始数字,那么‘-’为负号。等等,需要考虑周全。
=======下面是一个例子==============
#include "stdafx.h"
#include<stdio.h>
#include<malloc.h>
#include<math.h>
#define maxlen 100

typedef struct node{
char ch;
int data;
struct node *next;
}LinkList;//保存表达式的链表

int func()
{
LinkList *ta,*tb,*tc,*td;

ta = La;
tc = Lb;
for(int n=0;n < i;n++)
{
ta=ta->next;
}
tb = ta;
for(n=0; n < Len; n++)
{
tb=tb->next;
}
ta->next = tb;
for(n=0; n < j; n++)
{
tc=tc->next;
}
td = tc->next;
tc->next =
}

typedef struct{
char stack[maxlen];
int top;
}Stack1;

typedef struct{
int stack[maxlen];
int top;
}Stack2;

int In(char c){
if((c=='+')||(c=='-')||(c=='*')||(c=='/')||(c=='#')||(c=='(')||(c==')')||(c=='A')||(c=='S'))
return 1;
else
return 0;
}

void InitStack1(Stack1 *S){
S->top=-1;
}

void InitStack2(Stack2 *S){
S->top=-1;
}

void Push1(Stack1 *S,char ch){
S->top++;
S->stack[S->top]=ch;
}

void Push2(Stack2 *S,int ch){
S->top++;
S->stack[S->top]=ch;
}

char Precede(char ch1,char ch2){//比较两个运算符的优先级
char ch;//当ch为<时表示ch1的优先级要小于ch2,反之同理
switch(ch1){
case '+':if((ch2=='*')||(ch2=='/')||(ch2=='(')) ch='<';else ch='>';break;
case '-':if((ch2=='*')||(ch2=='/')||(ch2=='(')) ch='<';else ch='>';break;
case '*':if((ch2=='(')) ch='<';else ch='>';break;
case '/':if((ch2=='(')) ch='<';else ch='>';break;
case '#':if(ch2=='#') ch='=';else ch='<';break;
case '(':if(ch2==')') ch='=';else ch='<';break;

}
return ch;
}

void Pop1(Stack1 *S,char *p){
*p=S->stack[S->top];
S->top--;
}

void Pop2(Stack2 *S,int *p){
*p=S->stack[S->top];
S->top--;
}

char GetTop1(Stack1 *S){
return S->stack[S->top];
}

int GetTop2(Stack2 *S){
return S->stack[S->top];
}

void print1(Stack1 *s){
printf("运算符栈: ");
int h=s->top;
while(h!=-1){
printf("%c ",s->stack[h]);
h--;
}
printf("\n");
}

void print2(Stack2 *s){
printf("数字符栈: ");
int h=s->top;
while(h!=-1){
printf("%c ",s->stack[h]);
h--;
}
printf("\n");
}

int Operate(int a,char theta,int b){//对a和b进行运算
int s;
switch(theta){
case '+':s=a+b;break;
case '-':s=a-b;break;
case '*':s=a*b;break;
case '/':s=a/b;break;
}
return s;
}

LinkList *CreatList(){
LinkList *H,*s,*r;
H=(LinkList*)malloc(sizeof(LinkList));
H->next=NULL;
r=H;
char c;
c=getchar();
while(c!='#'){
s=(LinkList*)malloc(sizeof(LinkList));
s->ch=c;s->next=NULL;
r->next=s;r=s;
c=getchar();
}
s=(LinkList*)malloc(sizeof(LinkList));
s->ch=c;s->next=NULL;
r->next=s;r=s;
return H;
}

LinkList *Change(LinkList *H){
LinkList *p,*pre;p=H->next;pre=H;
while(p!=NULL){
if(In(p->ch)){p=p->next;pre=pre->next;}
else{ //将字符转化成数字
int m=0,n;
while(!In(p->ch)){
n=p->ch-'0';
m=10*m+n;
LinkList *u=p;
p=p->next;
if(!In(p->ch)){ pre->next=p;free(u); }
else{ u->data=m;u->ch='@';pre=pre->next; }//@标志此节点内的符号为数字
}
}
}
return H;
}
LinkList *jisuan(LinkList *H){//对链表中的数据进行初步的计算
LinkList *p,*U,*pre;
p=H->next;pre=H;int a;
while(p!=NULL){
if(p->ch!='A'&&p->ch!='S'){
pre=pre->next;
p=p->next;
}
else{
if(p->ch=='A')
a=fabs(p->next->data);
else
a=sqrt(p->next->data);
p->next->data=a;
U=p;
p=U->next;
pre->next=p;
free(U);
}
}
return H;
}

int main(int argc, char* argv[])
{
printf("*******************************************************************************");
printf("\n");
printf(" 欢迎使用模拟计算器程序\n");
printf("*******************************************************************************");
Stack1 OPTR1,*OPTR=&OPTR1;
Stack2 OPTR2,*OPND=&OPTR2;
InitStack1(OPTR);
Push1(OPTR,'#');//将‘#’压入OPTR栈中
InitStack2(OPND);
char c,x,theta;
int a,b,s;
printf("请输入表达式,以#结束:");
LinkList *H,*p,*q;
H=CreatList();
H=Change(H);
H=jisuan(H);
p=H->next;
c=p->ch;
while((c!='#')||(GetTop1(OPTR)!='#')){//#同时是表达式的截止符
if(c=='@'){
s=p->data;
Push2(OPND,s);
p=p->next;
c=p->ch;
}
else
switch(Precede(GetTop1(OPTR),c)){
case '<':Push1(OPTR,c);p=p->next;c=p->ch; break;
case '=':Pop1(OPTR,&x); p=p->next;c=p->ch; break;
case '>':Pop1(OPTR,&theta); Pop2(OPND,&b); Pop2(OPND,&a);
Push2(OPND,Operate(a,theta,b));break;
//Operate之后,对C继续判断,所以不用getchar()
}

}
s=GetTop2(OPND);
printf("结果为:");
printf("%d\n",s);

return 0;
}

⑦ C语言中的%–16s中的负号是什么意思

意思是输出的字符串左对齐,而且占16个字符的位置,举个例子输出两个字符串,asdfgh,和zxcvbnm,按照输出就是其中 ^代表空格,空格也是一个字符
asdfgh^^^^^^^^^^
zxcvbnm^^^^^^^^

⑧ C语言中为什么负数是字符串常量

答案没错:
“-518”是字符串常量;
-518才是负整数。
学C语言,有些基本的概念要记住。如:
"1"是个字符串(在半角的双引号之间);
‘1’是个字符(在半角的单引号之间);
1是个整数。