帮我看看我的这道C程序设计题哪里做错了吧

编写程序,在长度是n的数组a中,删除一个指定的元素num。并把删除后的数组输出。被删除的数在数组中可能出现多次,也可能没有。
主函数如下:
#include<stdio.h>
#define N 10
void main( )
{
int a[N] , num ,i , *p , n=N;
scanf(“%d”,&num);
/*输入N个数到数组a中;*/

/*在数组a中删除指定的数num;*/

/*输出删除了num后的数组a;*/
}
下面是我做的
#include<stdio.h>
#define N 10
void main()
{int a[N],num,i,*p,n=N;
scanf("%d",num);
for(i=0;i<10;i++)
scanf("%d",p+i);
for(i=0,p=a;i<10;i++)
if(*p==num)p++;
printf("%d",*p++);
}
谢谢啦

p指针最初没有指向a数组
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-16
#include<stdio.h>
#define N 10
void main()
{
int a[N],num,i,*p,n=N;

scanf("%d",&num);

p=a;

for(i=0; i<10; i++)
scanf("%d",p+i);

for(i=0,p=a; i<10; i++)
{
if(*p==num)
{
p++;
continue;
}
printf("%d\t",*p++);
}
}
第2个回答  2010-12-16
你这的指针*p没有赋值,是不能(实际上可以但其值却不是你想要的)拿来做运算的,一般要在指针声明时赋值.希望我的回答会对你有帮助,
第3个回答  2010-12-16
我马上发给你
我不是高手,是一个入门者
以后有什么问题,尽管问我
QQ 695694054

第一大题
1. 机器语言,低级语言,高级语言
2. 定义固定的大小
3. 顺序结构,循环结构,选择结构
4. int A define PI 3.14159
5. 主函数和被调用函数
6. 一 0 最大的下标减一
7. 从键盘读取字符串 strlen() strcpy()
8. 5
9. 0
10. 0~32767

第二大题
1. B
2. C
3. D
4. B
5. A
6. B
7. C
8. C
9. C
10. C

第四大题

15.
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
float score[10]=;
float ever=0.0;
int i,number=0;
for (i=0;i<10;i++)
{
ever+=score[i];
}
ever=ever/10;
printf("平均分数是\n%5.2f\n",ever);
for (i=0;i<10;i++)
{
if(score[i]<ever)
}
printf("低入平均分数的人数为\n%d",number);
printf("\n");
return 0;
}

16.
#include "stdafx.h"

#include "stdio.h"

int main(int argc, char* argv[])
{
int data,i,j=0;
scanf("%d",&data);
i=data;
while (i!=0)
{
i=i/10;
j++;
}
for(i=0;i<j;i++)
{
printf("%d",data%10);
data=data/10;
}
printf("\n");

return 0;
}

17.
#include "stdafx.h"

#include "stdio.h"

int main(int argc, char* argv[])
{
int i,j,t;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d,",&a[i]);
}
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
if(i<9)printf(",");
}
printf("\n");
return 0;
}

18.
#include "stdafx.h"

#include "stdio.h"
int max(int i,int j)
{
if(i<j) return j;
else return i;
}

int main(int argc, char* argv[])
{
int m,n,k;
scanf("%d,%d",&m,&n);
k=max(m,n);
printf("两者中的最大者是 %d\n",k);
return 0;
}

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网