十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先:子函数(*变量) 调用 函数(变量) 这样的形式是要带回返回值得
创新互联建站:2013年开创至今为各行业开拓出企业自己的“网站建设”服务,为成百上千公司企业提供了专业的成都做网站、成都网站制作、网页设计和网站推广服务, 按需设计网站由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。
其次:此题在主函数里调用子函数的时候把x y故意颠倒下 这里考得应该是你对实参和形参的理解。对应如下:(调用时)
主 子 数值
y x 2
x y 1
看到这应该明白 子函数里显示的x y是子函数里的x y 当然是 2 1 了
然后再子函数里赋值 x = 3 y = 4 子函数结束,刚才说了 这样的形式是要带回返回值的,所以主函数里的x y 也跟着变化 输出主函数里的 x y 当然是
4 3了
所以结果应该是 ? 你自己说吧
祝你进步 在有疑问可以发信到 gabmyd@126.com 愿意为你解答!
#include stdio.h
#define STUDENTNUM 10
/* 由于学号只有9个数字,一个long型的整数就可以表示 */
/* 成绩只是0~100之间,一个char就可以表示了 */
struct student
{
long xh;
char dxyy;
char cyycxsj;
char jsjdl;
} students[STUDENTNUM];
int ResearchStu(long xh);
/* 从文件读取学生成绩,如果文件不存在,需要手工输入成绩 */
/* 成绩数值必须在0~100之间。*/
void init()
{
int i, tmp, err;
FILE * fp = fopen("cj.dat", "rb");
if(fp) fread(students, STUDENTNUM, sizeof(struct student), fp);
else
{
for(i=0; iSTUDENTNUM; i++)
{
err = 0;
printf("请输入学号:");
scanf("%ld", students[i].xh);
printf("请输入大学英语成绩:");
scanf("%d", tmp);
if(0 = tmp tmp = 100) students[i].dxyy = (char)tmp;
else err = 1;
printf("请输入C语言程序设计成绩:");
scanf("%d", tmp);
if(0 = tmp tmp = 100) students[i].cyycxsj = (char)tmp;
else err = 1;
printf("请输入计算机导论成绩:");
scanf("%d", tmp);
if(0 = tmp tmp = 100) students[i].cyycxsj = (char)tmp;
else err = 1;
if(err)
{
printf("成绩输入错误,需要重新输入!\n");
i--;
}
}
}
}
void main()
{
long xh, pos;
init();
scanf("%ld", xh);
pos = ResearchStu(xh);
if(pos == -1) printf("查无此人!");
else
{
printf("%d\t大学英语\t%d分\n", students[pos].xh, students[pos].dxyy);
printf("%d\tC语言程序设计\t%d分\n", students[pos].xh, students[pos].cyycxsj);
printf("%d\t计算机导论\t%d分\n", students[pos].xh, students[pos].jsjdl);
}
}
int ResearchStu(long xh)
{
int i;
for(i=0; iSTUDENTNUM; i++) if(students[i].xh == xh) return i;
return -1;
}
在线讨论
#include stdio.h
char chang(char x)
{
if(x='a'x='z')
x-=32;
return x;
}
void main()
{
char x;
int i;
scanf("%c",x);
printf("%c",chang(x));
}
#include stdio.h
int fib(int n)
{
if(n==1||n==2)
return 1;
else
return fib(n-1)+fib(n-2);
}
int main(void)
{
int m,n;
printf("plz input m,n\n");
scanf("%d%d",m,n);
while(m1||n10000)
{
printf("input again\n");
scanf("%d%d",m,n);
}
int i=1;
while(fib(i)=n)
{
if(fib(i)=m)
printf("%d\t",fib(i));
i++;
}
return 0;
}
自己刚写的,匆忙,没过多考虑复杂度,但功能完全正确,已调试通过!
呵呵,希望楼主赏点分吧