c语言问题,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:58:29
main()
{
unsingned int a;
int n1,n2;
printf(“input an octal number:”);
scanf(“%o”,&a);
printf(“input n1,n2:”);
scanf(“%d,%d”,&n1,&n2);
printf(“result:%o\n”,getbits(a,n1-1,n2));
}
getbits(unsigned value,int n1,n2)
{
unsigned int z;
z=~0;
z=(z>>n1)&(z<<(16-n2));
return(z);
}
哪里错了?好象是语法错误

语法错误有许多

unsingned int a;
应改为
unsigned int a;

printf(“input an octal number:”);
scanf(“%o”,&a);
printf(“input n1,n2:”);
scanf(“%d,%d”,&n1,&n2);
printf(“result:%o\n”,getbits(a,n1-1,n2));

这些语句中的所有引号都应该在英文状态下输入

getbits(unsigned value,int n1,n2)
应改为
unsigned getbits(unsigned value,int n1,int n2)
并且此函数应该在使用之前进行声明

value在getbits中没有被使用

修改后的程序如下:

//---------------------------------------------------------------------------
#include <stdio.h>

unsigned getbits(unsigned value,int n1,int n2);

int main(void)
{
unsigned int a;
int n1,n2;
printf("input an octal number:");
scanf("%o",&a);
printf("input n1,n2:");
scanf("%d,%d",&n1,&n2);
printf("result:%o\n",getbits(a,n1-1,n2));

return 0;

}
unsigned getbits(unsigned value,