小弟最近编写了两个c语言源程序,但其中种种问题无法解决,特来求助

作者&投稿:展珊 (若有异议请与网页底部的电邮联系)
编写一个C程序,运行时输入a,b,c三个值,输出其中值最大者~

#include
int main()
{
int a,b,c,max;
printf("请输入三个数:
");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
max=a;
if(c>max)
max = c;
printf("三个数中最大的数为:%d",max);
return 0;
}

扩展资料:
主要特点:
1,简洁的语言
C语言包含有各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且多以小写字母为主,对许多不必要的部分进行了精简。
2,具有结构化的控制语句
C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。
3,丰富的数据类型
C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
4,丰富的运算符
c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。
5,可对物理地址进行直接操作
C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。
6,代码具有较好的可移植性
c语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境。
7,可生成的高质量目标代码,高执行效率的程序
与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。

#include
#include
int main()
{
int i=0;
int j=0;
int mul=1;
int sum=0;
for(i=1;i<=10;i++)//和循环
{
mul=1;//每次循环前都需要初始化为1,要不然最后结果会变大
for(j=1;j<=i;j++)//阶乘循环
{
mul=mul*j;
}
sum=sum+mul;
}
printf("%d",sum);
system("pause");
return 0;
}
C11标准:
2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C语言的新标准,名叫ISO/IEC 9899:2011 - Information technology -- Programming languages -- C ,简称C11标准,原名C1X。这是C语言的第三个官方标准,也是C语言的最新标准。



扩展资料
C语言特点
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。
Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
参考资料来源:百度百科-c语言

首先我们来讨论下第一个程序。

第一个程序的问题并不大,编译的时候编译器提示:

错误 3 error C3861: “getch”: 找不到标识符

 

我们分析这个错误,是编译器无法识别"getch"这个函数。经过查询,我们了解到getch()函数的确存在,并且详细信息如下:

函数名

getch

功 能

在windows平台下从控制台无回显地取一个字符,在linux下是有回显的。

返回值

从键盘上读取到的字符

头文件

#include <conio.h>

 

注意这里提到的头文件,就是包含了这个函数定义的文件,你需要在文件开始加入进去进行编译才可以。所以加入#include <conio.h>后即编译通过!

程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
 FILE *out;
 char outfile[20],ch;
 long i=0;
 printf("!
");
 scanf("%s",outfile);
 if((out=fopen(outfile,"r"))==NULL)
  printf("NO !
");
 for(i=0;!feof(out);i++)
  ch=fgetc(out);
 fclose(out);
 getch();
 return 0;
}

 

再来看第二个程序。

首次编译后提示错误如下:

错误 5 error C3861: “fcloce”: 找不到标识符

提示如同上一个程序中关于"getch"的提示。我们查询后发现floce并不存在,但是联系上下文可以判断此处应当是关闭文件指针的操作,对应的函数应当为fclose。因此将其更改为fclose(in)即可编译通过。

程序如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
 FILE *in,*out;
 char ch,infile[20],outfile[20];
 long i=0;
 printf("in
");
 scanf("%s",infile);
 printf("out
");
 scanf("%s",outfile);
 if((in=fopen(infile,"r"))==NULL)
 {
  printf("NO in!
");exit(0);
 }
 if((out=fopen(outfile,"w"))==NULL)
 {
  printf("NO out!
");exit(0);
 }
 for(i=0;!feof(in);i++)
 {
  ch=fgetc(in);
  fputc(ch,out);
  printf("%ld//****
",i);
 }
 fclose(in);
 fclose(out);
 return 0;
}

 

问题都是小问题,但是反映出了一些问题。

1、首先是程序的书写问题。程序二中你将fclose(in)和fclose(out)放在了一行里书写,这样如果某一个语句出现了错误,程序提示错误出现在第几行的时候你无法准确判断究竟是哪一个语句出现了错误。所以建议单条语句单行书写。

2、其次是关于定义变量时的书写问题。我注意到你在定义文件指针的时候是将FILE*in,out;连在一起书写的。其实在定义指针类型的变量的时候,*号是跟随着变量名称的,所以尽量在FILE和*号之间添加上一个空格,便于查看。

3、最后是关于查看错误信息的能力问题。通常编译错误的时候,编译器都会明确的通知你错误是什么,以及错误出现在程序中的第几行。有时候可能编译器显示不全,你可以右键后点击复制,然后将其错误信息粘贴出来查看。如下图所示:

如果实在不知道如何来解决,可以尝试将错误信息黏贴到百度或是其他搜索引擎上面查找,试图看看有没有网友遇到过相同或是相似的问题,从而获得解决办法。

 

望有所帮助,并祝愿楼主编程能力更进一步!



文件一:使用getch() 要添加头文件#include<conio.h>。
你只是在最后做个断点而已,使用getchar() 就够了。
getchar()和getch()功能上是有区别的。这个你最近百度下就是了。
文件二:

倒数第二句代码:fcloce(in);fclose(out); 写错了。。。

改为fclose(in);fclose(out);

这两个问题都解决了,程序可以运行了。多学学调试技巧,加油吧少年。

getch() 要添加头文件#include<conio.h>

是fclose

急急急!!!会C语言编程的朋友 帮个忙啊
答:案例一 C++ include <iostream> using namespace std;char num[16] = { '0', '1', '2', '3', '4', '5', '6', '7','8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};int ToInt(char &n){ if (n<='9') return (int )(n-48);else return (int )(n-'A'+...

c语言源程序是有什么组成的
答:C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出构成。具体介绍:1、数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。2、常量与变量 常量其值不可改变,符号常量名通常用大写。

急求C语言编程!!!
答:printf("请输入两个字符串:");char ch[2][10];int i,j;for(i=0;i<2;i++)for(j=0;j<10;j++)ch[i][j]='\0';for(i=0;i<2;i++)gets(ch[i]);char c[20];int k;for(k=0;k<20;k++)c[k]='\0';for(i=0;ch[0][i]!='\0';i++)c[i]=ch[0][i];for(...

C语言编写一个程序,求x> y的运行结果
答:以下是一个简单的C语言程序,可以比较两个整数x和y,并打印出相应的结果:在这个程序中,我们首先声明了两个整数变量x和y,然后使用printf函数提示用户输入两个整数。接下来,我们使用scanf函数读取用户输入的整数,并将它们存储在变量x和y中。然后,我们使用一个if-else语句来比较x和y的值。如果x大于...

帮小弟做一道C语言编程作业题,谢谢大家了~(要详细的程序命令啊)_百度...
答:include<stdio.h> include<stdlib.h> struct student { char no[10];float score;};main(){ int i,N,count=0;float max;struct student *p;printf("please input students'number:N=");scanf("%d",&N);p=(struct student*)malloc(N*sizeof(struct student));printf("\nplease input ...

C语言中两道编程题求救!
答:至于第二题的程序 第22行,你写的是 scanf("%f',&s[i].avgcj);你把%f后面的双引号打成单引号了 另外还有倒数第二行,你写的是 printf("sname=%s sum=%f",s[j].sname sum);在s[j].sname和sum中间,你忘记打个逗号了 另外,你的struct定义写得不对,应该这样写:typedef struct { in...

C语言,求大神编程~
答:2.可以用函数调用,参考1 至于微积分的话,要看你的高数学的怎样 3.C语言中非0即为1那么-1是真是假呢?对于这问题你可以看一下第一题定义的bool类型。如果是循环的话1表示为真,0表示为假。4.include <stdio.h> void main(){ int i;char a[100];int b=0,c=0,d=0,e=0;printf("...

C语言源程序是由什么构成的
答:C语言源程序是由:数据类型、常量与变量、数组、指针、字符串、文件输入/输出构成。具体介绍:1、数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。2、常量与变量 常量其值不可改变,符号常量名通常用大写。

·1.已知Linux下的一个C语言程序代码写 在两个源文件a.c和b.c中,请...
答:CC = gccOBJS = a.o b.oCFLAGS = -c -g -DDEBUG_MODE -m64 -O2 -Wall -Wno-unused-resultLDFLAGS = -ldl -m64all: aaaa: $(OBJS) $(CC) $^ -o $@ $(LDFLAGS)%.o: %.c$(CC) $(CFLAGS) $< -o $@.PHONY: cleanclean: $(RM) a.o b.o ...

c语言高手进。 帮我编程下 。 小弟感激不尽~
答:case 2:if( dayB<=0 || dayB>29 ){ printf("Illegal date. exiting...");exit(1);} else if( dayB==29 && !((yearB%4==0&&yearB%100!=0)||yearB%400==0) ){ printf("Illegal date. Exiting...");exit(1);} break;case 4:case 6:case 9:case 11:if( dayB<=0 |...