void main() {char *a="abcdefgh"; fun(a); puts(a); } void fun

raenraen2022-10-04 11:39:541条回答

void main() {char *a="abcdefgh"; fun(a); puts(a); } void fun(char*s) { int x=0,y; char c;
#include
#include
void main()
{char *a="abcdefgh";
fun(a);
puts(a);
}
void fun(char*s)
{
x05int x=0,y;
x05char c;
x05for(y=strlen(s)-1;x

已提交,审核后显示!提交回复

共1条回复
mairorao 共回答了20个问题 | 采纳率95%
问题在于,你调用fun函数传入的是一个常量串地址,常量串是存放在进程空间的堆中的常量区,是不能修改的.同时fun函数应该在main函数前声明一下,代码应该改为:
#include
#include
void fun(char*s);
void main()
{char a[]="abcdefgh"; /---------------------------/
fun(a);
puts(a);
}
void fun(char*s)
{
x05int x=0,y;
x05char c;
x05for(y=strlen(s)-1;x
1年前

相关推荐

说明语法错误include"stdio.h"void main(){int nameprintf("1.xujintin
说明语法错误
include"stdio.h"
void main(){
int name
printf("1.xujintint n");
printf("2.mather n");
Printf("3.bad n");
printf("press 1 to 5 to select:n");
scanf("%d",name);
switch(name){
case 1:printf("n I'm me n");break;
case 2:printf(("n this is my mother n");break;
case 2:printf(("n this is my bad n");break;
default:printf("n Error n");break;
}
}
273203561年前1
清水玲玲 共回答了22个问题 | 采纳率81.8%
#include"stdio.h"//前面少了个"#"井号
void main(){
int name;//漏了分号
printf("1.xujintint n");
printf("2.mather n");
printf("3.bad n");//P是小写的,你写错了
printf("press 1 to 5 to select: n");
scanf("%d",name);
switch(name){
case 1:printf("n I'm me n");break;
case 2:printf(("n this is my mother n"));break;//最后面忘了另一半括号
case 3:printf(("n this is my bad n"));break;//最后面忘了另一半括号,还有case 2与上面的重复了,改为3
default:printf("n Error !n");break;
}
}
AD读的电压值怎么比较?void main(){\x05\x05lcd_init ();\x05ad_init ();\
AD读的电压值怎么比较?
void main()
{x05
x05lcd_init ();
x05ad_init ();
x05while(1)
x05{
x05 ad_start();
x05 while(intr==1);
x05 ad_read();
x05 intr=0;
x05 x05 qian=temp/51; //千位数
x05 bai =temp%51*10/51; //百位数
shi =temp%51*10%51*10/51; //十位数
ge =temp%51*10%51*10%51*10/51; //个位
//////////////////////////////判断电压值////////////////
x05x05x05temp=temp*5/256;
x05x05 if(2.42.6)x05x05x05 //判断怎么写///
x05x05 x05{
x05x05x05x05write_com(0x80+0x45);
x05 write_data('P');
x05x05x05x05write_com(0x80+0X46);
x05 write_data('A');x05x05
x05x05x05}
x05x05else
x05x05{
x05x05 x05 write_com(0x80+0x45);
x05 write_data('N');
x05x05x05x05write_com(0x80+0X46);
x05 write_data('G');x05
x05x05}
//////////////////////////////////////////////
x05x05display1(qian,bai,shi,ge);
x05}
x05
x05
}
比较电压值得大小
edjhkj1年前1
5858598cxy 共回答了19个问题 | 采纳率89.5%
float ftemp;
ftemp=(float)temp*5/256;
if ( ftemp>2.4 && ftemp
void main() { inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; i
void main() { inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int(*p)[4]=a,i,j,k=0; for(i=0,i
南宫子容1年前1
gsw山海 共回答了23个问题 | 采纳率91.3%
2维数组a[3][4]={{1,3,5,7}{9,11,13,15}{17,19,21,23}}这样子可能楼主清楚些,
int(*p)[4]=a也就是把a2维数组赋给2维指针p,接下来执行循环
首先 i=0,j=0 k=k+*(*(p+0)+0)也就是k+a数组的0 0就是1,k=1;
然后 i=0,j=1 k=k+*(*(p+0)+1)也就是k+a数组的0 1就是3,k=4;
然后j=2不符合 跳出j的循环 执行i的循环
i=1,j=0 k=k+*(*(p+1)+0)就是k+a数组的1 0就是9,k=13
后面就类推一直到i=3时候不符合跳出全部循环,
就是k一直累加a 2维数组每行的头2个到了60
编辑一个函数算三角形面积#include #include void p(double a[3]);void main(
编辑一个函数算三角形面积
#include
#include
void p(double a[3]);
void main()
{double a[3];
couta[2]&&a[0]-a[1]>a[2]||a[0]-a[1]
天鉴011年前1
165122003 共回答了17个问题 | 采纳率94.1%
for(int i;i>a[i];
p(a[3]); -> p(a);
给个建议,1.a+b>c&&a-b>c||a-
keil中bit 的用法在程序中我用的void main(void){ bit i; i=1;}这时没有错误单独写:vo
keil中bit 的用法
在程序中我用的
void main(void)
{
bit i;
i=1;
}这时没有错误
单独写:
void main(void)
{
TH0=0x3c;
TL0=0xB0;
TMOD=0x01;
TR0=1;
}也没有错误
但是我把两段程序合到一个main函数中时
void main(void)
{
TH0=0x3c;
TL0=0xB0;
TMOD=0x01;
TR0=1;
bit i;
i=1;
}就总提示错误:
1: bit那附近有个语法错误,
2: i undefined identifier
是什么意思?
linwenyi06161年前1
congcong0327 共回答了20个问题 | 采纳率85%
你把bit i;放在最前面定义.
void main(){char ch[30]="nice to meet you!';strcpy(a+strlen(
void main(){char ch[30]="nice to meet you!';strcpy(a+strlen(a)/2,"you");printf("%sn",a);}
zvndiue71年前1
babyanger 共回答了20个问题 | 采纳率100%
#include
#include //要加头文件
void main()
{char a[30]="nice to meet you!";//双引号
strcpy(a+strlen(a)/2,"you");
printf("%sn",a);}
以下程序的运行结果是( ).void main() {int x = 5; do { printf("%2d",x--)
以下程序的运行结果是( ).void main() {int x = 5; do { printf("%2d",x--); } while(!x); } A.5 4 3
以下程序的运行结果是( ).
void main()
{int x = 5;
do
{
printf("%2d",x--);
} while(!x);
}
A.x05 5 4 3 2 1
B.x05 4 3 2 1 0
C.x05 5
D.x05 4
不想长大的qq1年前1
z上 共回答了14个问题 | 采纳率92.9%
c啊
do...while()不管条件如果先执行一次,输出5,因为是后置--,所以先使用后再自减
然后!x 也就是!4为0,所以循环不再执行
#includeint f(int a);void main(){\x05int i=5,a;\x05a=i++==--
#include
int f(int a);
void main()
{
x05int i=5,a;
x05a=i++==--i ;
x05printf("%dn",a);
}
我的理解是这样的,算术运算符的优先级较高,从右向左,所以先算--i和i++,--i为4,i++为5,然后是==,4与5 不等,所以为0(假),这样的话就把0赋给了a,可是a却为1!
里克尔梅世界第一1年前2
卡门大人 共回答了20个问题 | 采纳率85%
i++是先赋值,后面遇到i再加1,--i先减1在赋值..a=i++是把i=5赋值给a,再判断i++是否等于--i
这是从左到右算的
void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=`\
void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=` `;s++ )
switch(*s)
{case`a`:a++;break;
case`b`:b++;break;
default:d++;
}
printf("a=%d,b=%d,d=%dn",a,b,d);
}
江南第七才子1年前1
wenfei66 共回答了20个问题 | 采纳率80%
这个程序应该是找一个字符串中'a'的个数、'b'的个数、还有剩余字符的个数.
有什么不明白的吗?
一道C习题,题是这样的# include "stdio.h"void main(){int i,j,m,n;i=8;j=
一道C习题,
题是这样的
# include "stdio.h"
void main()
{
int i,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf("%d,%d,%d,%dn",i,j,m,n);
}
答案是9、11、9、10
但我怎么算都算不好,我不知道前面这两个9和11是怎么变出来的.自加符号我没太搞明白,
月亮在我手心里1年前1
caihong190 共回答了17个问题 | 采纳率100%
你首先要搞懂++在变量前后的含义
++在变量前,例如++i,就是先i自加,然后再去做运算
++在变量后,例如i++,就是先做运算,然后再将i自加
m=++i
这个意思是将先将i自加,然后再将i的值赋给m
n=j++
这个意思就是j的值赋给n,然后j自加
这样算下来的结果就是i=9 j=11 m=9 n=10
下列程序的输出结果为( ) void main() { int x, y, z; x = y = 1; z = x++,
下列程序的输出结果为( ) void main() { int x, y, z; x = y = 1; z = x++, y++, ++y; printf(“%d, %d,
下列程序的输出结果为( )
void main()
{ int x, y, z;
x = y = 1;
z = x++, y++, ++y;
printf(“%d, %d, %dn”, x, y, z);
}
选择一个答案

a. 2, 3, 3
b. 2, 3, 2
c. 2, 3, 1
d. 2, 2, 1
蔡莹1年前1
amina913 共回答了19个问题 | 采纳率84.2%
c
首先赋值后,x=1,y=1
z = x++,y++,++y;
先执行z=x++=1,后面的y++,++y是逗号表达式,赋值优先级高于它
当输出后x=2,y=3;(x自加了一次,y自加了2次)
c 语言改错#include "stdio.h"void main(){int a,b,year,day,month;s
c 语言改错
#include "stdio.h"
void main()
{int a,b,year,day,month;
scanf("%d%d%d",&year,&month,&day);
switch(month)
{case 1:month=0;break;
case 2:month=31;break;
case 3:month=59;break;
case 4:month=90;break;
case 5:month=120;break;
case 6:month=151;break;
case 7:month=181;break;
case 8:month=212;break;
case 9:month=243;break;
case 10:month=273;break;
case 11:month=304;break;
case 12:month=334;break;
}
day+=month;
if(year%100==0)
{if (year%400==0)
printf("这一天是一年中的第%d天.",day++);
}
else if(year%4==0&&month>59) {a=day+month+1&& printf("这一天是一年中的第%d天.",day++);}
printf("这一天是一年中的第%d天.",day);
}
我求的是输入一年的某月某日,求这天是这年中的第几天.
可是我输入2000年的3月1日,总是输出“这一天是一年中的第六十天”,请你们看看那里错了啊!
忘了,这句a=day+month+1&& 没有
我已经自己解决了,呵呵,看了看我的程序有点乱,现在才理清头绪,留个地址吧,呵呵,以后还望大家多多指教.
yinguy1年前1
122dfdf 共回答了24个问题 | 采纳率91.7%
那是因为楼主判断的逻辑弄乱了
我这就讲下思路吧,实践部分留给楼主
不行的话,我在改
case语句结束后
判断 if month>59(到三月了)
{ 再判断是否是 if 闰年,是day++ }
输出day
#include <stdio.h> void main() { int a=1,b=3,c=5,d=4,x=3; if
#include <stdio.h> void main() { int a=1,b=3,c=5,d=4,x=3; if(a<b) if(c>d) x=1; else if
wen_191年前1
nonoo1158 共回答了16个问题 | 采纳率93.8%
这个就是先判断a<b成立执行判断c>d成立,就执行x=1,所以最后输出1
另外,虚机团上产品团购,超级便宜
void main(){BTree a,b,c,d,e,f,g,h,j,k,left,right;j.MakeTree(
void main()
{
BTree a,b,c,d,e,f,g,h,j,k,left,right;
j.MakeTree('J',left,right);
g.MakeTree('G',left,right);
f.MakeTree('F',j,g);
h.MakeTree('H',left,right);
e.MakeTree('E',h,f);
d.MakeTree('D',e,right);
k.MakeTree('K',left,right);
c.MakeTree('C',k,right);
b.MakeTree('B',left,c);
a.MakeTree('A',d,b);
cout
wzzyq1年前1
paopaotanghaowan 共回答了25个问题 | 采纳率88%
程序不全,你把全的程序传上来
void main() { int a,b,c; scanf("Please enter two number %d,%
void main() { int a,b,c; scanf("Please enter two number %d,%d",&a,&b); c=max(a,b); printf("The max
main()
{ int a,b,c;
scanf("Please enter two number %d,%d",&a,&b);
c=max(a,b);
printf("The max number is %dn",c);
}
int max(int x,int y)
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
出错提示是这样的
undefined symbol '_main' in module COS
我只想有人给解释一下,我的错在哪了?如何修改呀?
Christiecherry1年前1
bzzg2dfre303d 共回答了15个问题 | 采纳率100%
这个错误的原因在于,你在使用max函数时没有对他进行申明,换句话说,main函数使用他时,找不到他,你可以在main函数前先对其进行申明,再使用,实现可以放在main函数后面,如下:#include int max(int x, int y);void main(...
·(一道选择题)帮我分析下!#include"stdio.h"void main(){int a,b,s;scanf("
·(一道选择题)帮我分析下!
#include"stdio.h"
void main()
{
int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(s=b) s*=s;
printf("%dn",s);
}
输入6和8,结果为()
A.36
B.64
C.48
D.其他.
我觉得选A.看答案好像不对.
wushuibo1年前1
frankxiang1224 共回答了14个问题 | 采纳率92.9%
一楼的回答是正确的,但是要正确理解if(s=b) s*=s这条语句.
它的判断过程是把b赋给s然后判断s是不是为0了,相当于转换后为s=b;if(s) s*=s;想必此时用该更好的理解这道题目故意扰人的用意了吧.但切不可就认为if(s=b)里就是判断语句,因为还少一个“=”符号.
下列语句错在哪#include "stdio.h"void main(){ float chengji; scanf (
下列语句错在哪
#include "stdio.h"
void main()
{
float chengji;
scanf ("%f",&chengji);
switch(chengji/10)
{ case 10 :printf("你的成绩是A+"):break;
case 9 :printf("你的成绩是A"):break;
case 8 :printf("你的成绩是B"):break;
default:printf("你的成绩是E"):break;

}
}
xiaodao05051年前1
ez蓝 共回答了11个问题 | 采纳率100%
#include "stdio.h"
void main()
{
float chengji;
scanf ("%f",&chengji);
switch((int)chengji/10)
{
case 10:printf("你的成绩是A+");break;
case 9 :printf("你的成绩是A");break;
case 8 :printf("你的成绩是B");break;
default:printf("你的成绩是E");break;
}
}
1到20的阶乘的和怎么求?#include "stdio.h"void main(){int i,n;long fact
1到20的阶乘的和怎么求?
#include "stdio.h"
void main()
{
int i,n;
long fact=1,sum=0;
scanf("%d",&n);
for(i=1;i
夏日茉茉茶1年前1
leechgasse76 共回答了21个问题 | 采纳率100%
long fact=1,sum=0;应该改为long double fact=1L,sum=0L;或者fact 和sum改为double型;
long double 为常双精度型;你的结果有19位,long是不行的!long最多有十位!