C语言 帮我看一下我做的这二个编程题目对不对 因为软件里测试不知道哪里

36.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。
#include “stdio.h”
main()
{int a[30],i,s;
for(i=0;i<30;i++)
scanf(“%d”,a[i]);
for(i=0;i<30;i++)
if (a[i]/3==0)
{printf(“%d”, a[i]);
s+= a[i]}
printf(“%d”,s)
}
37.从二进制文件c:\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数据按从小到大的次序输出在屏幕上。
#include “stdio.h”
main()
{FILE*p;int i,j,t,a[10];
if((fopen=(“c:\\abc.dat”, “r”))==NULL)
{print(“文件不存在”);exit(0);}
for(i=0;i>10;i++)
fscanf(p, “%f”,&a[i]);
for(i=0;i<10;i++)
for(j=i+1;i<10;j++)
if(a[i]>a[j])
{t= a[j]; a[i]=a[j]; a[i]=t;}
for(i=0;i>10;i++)
printf( “%f”,a[i]);
fclose(p);
}

36题,应该这样写
#include<stdio.h>
int main()
{
int a[30],i,s=0;
for(i=0;i<30;i++)
scanf("%d",&a[i]);
for(i=0;i<30;i++)
if (a[i]%3==0)
{
printf("%d\t",a[i]);
s += a[i];
}
printf("\n%d\n",s);
return 0;
}
lz仔细比较一下吧,我这个运行过了。追问

下面那个能不能帮我看看

追答

满足你吧……
#include
#include
int main()
{
FILE*p;
int i,j;
float t,a[10];
if((p=fopen("c:\abc.dat", "r"))==NULL)
{
printf("文件不存在\n");
exit(0);
}
for(i=0;i>10;i++)
fscanf(p,"%f",&a[i]);
for(i=0;ia[j])
{
t= a[j];
a[i]=a[j];
a[i]=t;
}
for(i=0;i<10;i++)
printf( "%f",a[i]);
fclose(p);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-09
for(i=0;i<10;i++)//i<9
for(j=i+1;i<10;j++)//j<10而不是i<10
if(a[i]>a[j])
{t= a[j]; a[i]=a[j]; a[i]=t;}追问

别的都没有错吗

追答

print(“文件不存在”);exit(0);}//printf少了一个f

第2个回答  2012-04-09
36题scanf是不是少了一个取址符
相似回答