标签:void 使用 ++ if语句 运用 ges 好处 main 字符串转换
int i,j;char a[80],b[80];int flag1=0,flag2=0;long number;其中flag2为是否有负号的判断标志,flag1为输出结果正负的判断标志
输入以’#‘结束的字符串a[]
遍历数组a[i], 滤去非16进制数
如果a[i]==‘-‘&&flag2==0 flag1=1;
如果为16进制数,b[j]=a[i] ; flag2=1 ; j++;
结束符b[j]=‘\0‘;
将新字符串逐个转换,存放在number中
如果flag1==1,输出0-number
否则 输出number
end
设置flag1和flag2,用两个if语句,如果在负号出现前已经有16进制数,flag2=1;要令flag1=1,需同时满足a[i]==’-‘且flag2=0;得到正确结果;
改正后得到正确答案
char s[32];int a[4]; int j=0,count=-1;sum=0,i
输入数组s[]
遍历数组s[]
count++;
sum=sum+(s[i]-48)*pow(2,7-count);
如果count==7
a[j]=sum;j++;count=-1;sum=0;
continue;
按格式输出a数组
后改用scanf("%s",)输入,答案就正确,鉴于两者的输入差别,应选择用scanf
朱杰伟
杰伟的代码
我更喜欢自己的代码,缩小范围,逐步判断,杰伟的代码没什么错误,只是思路上不一样而已。
指针变量定义时要使用指针声明符*,例如
int *p; char *q; char *p,*q;
指针加法运用在其指向的地址元素时,例如输入数组时
int *p,a[10];
p=a;
for(i=0;i<10;i++,p++)
scanf("%d",*p);
指针之间可以相减,但不可以相加:两个同一类型的指针变量是可以相减的,他们的意义表示两个指针指向的内存位置之间相隔多少个元素(注意是元素,并不是字节数)
程序崩溃过不了
用处:可以在函数中对实参进行修改,同时可以返回多个返回值;
#include<stdio.h>
void bubble(int *a,int n);
int main()
{
int n,a[8];
int i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
bubble(a,n);
for(i=0;i<n;i++)
printf("%3d",a[i]);
return 0;
}
void bubble(int *a,int n)
{
int i,j,t;
for(i=1;i<n;i++)
for(j=0;j<n-1;j++)
if(*(a+j)>*(a+j+1)){
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
int a[10];
int *p;
p=a;
此时p为指向数组a的指针。*(p+n) (n=0,1,2......9)可表示数组元素。
char *p;
char str[10] = "afjkfdhsjk";
p = str;
指针p指向字符串str的首地址.
字符串指针只占用一个可以存放地址的内存单元,存储字符串首字符的地址,而不是将字符串放到字符指针变量中去,总之,字符串指针可以指向一个不需要分配内存的地址
*p=a+3;表示p的首地址是a[3],++p后,应该指向a[4]
查看书本,巩固基础知识,自己尝试着去做,实在没办法再请教同学,老师。
时间不够,在前两题函数题耗费了太多时间,导致后面两题题目都没来得及看,编程第二题题目没有看透,思路没正确,整题也就废了,希望考完后,冷静思考可以做出来,感觉自己无论是从思维还是编程能力还是找错能力都很差,这些没提高,成绩也就没戏了吧。
标签:void 使用 ++ if语句 运用 ges 好处 main 字符串转换
原文地址:http://www.cnblogs.com/mayifang/p/8011298.html