1我觉得你定义a[i]这里有问题,定义数组是通常i是一个已知的数,所以定义后都有固定的长度,假如你定义一个数组a[100],如果这个这个数组是整形的你的长度就是2*100,如果是单精度的浮点数就是4*100,如此累推。上面的都是错误的,不能用
sizeof()来测一个i(a[i])
没确定的数组,这是C语言的一忌来的
此为正确答案:
#include
#include
#include
int
main()
{
long
int
x,y,k;
int
i,b[3];
scanf("%ld
%ld",&x,&y);
k=(int)pow(x,y);/*注意pow函数返回值为double型,,要加强制转换*/
if(k<100)
printf("%ld^%ld=%ld
不足三位数\n",x,y,k);
else
{
for(i=0;i<3;i++)
{
b[i]=k%10;
k=k/10;
}
for(i=2;i>=0;i--)
printf("%d",b[i]);
}
system("pause");
}
2.main()
{
int
year;
printf("请输入一个年份:\n");
scanf("%d",&year);
if((year%4==0&&year%100!=0)||(year%400==0))
printf("闰年!");
else
printf("不是闰年!");
}
3.
main()
{
int
num;
printf("请输入一个数:\n");
scanf("%d",&num);
if((num%3==0)||(num%5==0))
printf("能被3或5整除!");
else
printf("不能被3或5整除!");
}
用sizeof关键字,strlen用于字符串数组求大小,而且如果你定义了
char
array[n]
=
{‘s’,。。}
用strlen的话输出时不确定数值,用sizeof对任何类型数组时最保险的
1.首先return字符应该是单引号,不应该是双引号,否则表示的是字符串
2.grade=scoresToGrade(roundScores);
数组名是不可以用作左值的,scoresToGrade返回的是char型,所以你可以直接定义一个char型变量就可以了,可以把char grade[2];
改为char grade;
3.看你的意思是想输出字符,所以在前面改动的基础上把printf("%s",grade);改为printf("%c",grade);就行了