C语言程序设计,

#include "stdio.h"
int func(int a,int *p);
void main()
{ int a=1,b=2,c=0;
c=fun(a,&b);b=fun(c,&a);a=fun(b,&c);printf("a=%d,b=%d,c=%d",a,b,c);
}
int fun(int a,int *p)
{
a=++;
*p=a+1;
return(*p+a);
}

第1个回答  2011-03-04
#include "stdio.h"
void main()
{
int func(int a,int *p);//函数声明应放在主函数中
int a=1,b=2,c=0;
c=func(a,&b);
b=func(c,&a);
a=func(b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);//书写格式我已改过,应空一格退格键
}
int func(int a,int *p)//函数名要一致
{
a+=a;//自加形式应纠正
*p=(a+1);//含义是将a+1的地址付给p
return(*p+a);//返回p所指向的值加上a的值
}
你可以试试我的代码,而且,希望在以后的编程过程中,将书写格式注意一下,严格将函数体退一个退格键,这样写出来会漂亮些。
第2个回答  2011-03-05
h>

int isprime(int n)
{
int i,end=sqrt(n);
if(n<2)//处理非正整数
return 0;
for(i=2;i<=end;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
int main()
{
int n;
scanf("%d",&n);
if(isprime(n))
printf("YES\n");
else
printf("NO\n");
return 0;
}
(2)
#include <stdio.h>

int isprime(int n)
{
int i,end=sqrt(n);
if(n<2)//处理非正整数
return 0;
for(i=2;i<=end;i++)
{
if(n%i==0)
return 0;
}
return 1;
}

int main()
{
int i;
for(i=2;i<=1000;i++)
if(isprime(i))
printf("%d ",i);
return 0;
}
(3)
#include <stdio.h>

int isprime(int n)
{
int i,end=sqrt(n);
if(n<2)//处理非正整数
return 0;
for(i=2;i<=end;i++)
{
if(n%i==0)
return 0;
}
return 1;
}

int main()
{
int i;
for(i=2;i<=1000;i++)
if(isprime(i))
{
if(i%10==3||i%10==7)
printf("%d ",i);
}
return 0;
}
(4)
减少循环次数的方法有,因为偶数,只有2是,所以可以先输出2.然后从3开始判断,每次+2,不+1,这样就不用判断偶数了。
应该写的差不多了。
第3个回答  2011-03-04
程序有如下几处错误,给你注释出来和修改方法。
#include "stdio.h"
int func(int a,int *p); //函数声明func()和下面调用fun()不一致,修改其中之一。
void main()
{ int a=1,b=2,c=0;
c=fun(a,&b);b=fun(c,&a);a=fun(b,&c);printf("a=%d,b=%d,c=%d",a,b,c);
}
int fun(int a,int *p)
{
a=++;//此处语法错误,你想表达是a加1吗,如果是可改为a++或想表达a*2改为a+=a;
*p=a+1;
return(*p+a);
}本回答被提问者采纳
第4个回答  2011-03-04
wangboxy2008 的 回答 赞同
程序两处错误。

一、 int func(int a,int *p); 而下面 变成了fun 即 函数声明时和函数定义 函数调用时 函数名不一样 属于粗心

二、fun 函数定义中, a=++ 这一句话 语法错误 。 看你具体想表达什么意思, a自加1 就是 a++;
a=*p++ ; 或a=++*p;
不知道你是想表达哪个意思 呵呵

望采纳
第5个回答  2011-03-05
#include "stdio.h"
int fun(int a,int *p);
void main()
{ int a=1,b=2,c=0;
c=fun(a,&b);b=fun(c,&a);a=fun(b,&c);printf("a=%d,b=%d,c=%d",a,b,c);
}
int fun(int a,int *p)
{
a++;
*p=a+1;
return(*p+a);
}
程序有个小错误:答案应该是
a=6, b=2,c=4