主函数中for (i=0;i!='\0';i++)要改成for (i=0;i100;i++),scanf ("%c",str[i]);要改成scanf (" %c",str[i]);。
在淇县等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、成都网站制作 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站建设,成都营销网站建设,成都外贸网站制作,淇县网站建设费用合理。
del_samechar函数中第二个for就不能用i变量控制了,不然第二个for循环完后i就越界了,第一个for就不再执行了还有,控制应该是str[i]!='\0'而不应该是i!='\0'。
其实把函数 del_samechar写成以下就可以了——
void del_samechar(char str[]){
int i,n;
for(n=i=0;str[j]=str[i];i++)
if(str[j]!=str[j-1] || j==0)
j++;
}
#include
assert.h
//设定插入点
#include
ctype.h
//字符处理
#include
errno.h
//定义错误码
#include
float.h
//浮点数处理
#include
fstream.h
//文件输入/输出
#include
iomanip.h
//参数化输入/输出
#include
iostream.h
//数据流输入/输出
#include
limits.h
//定义各种数据类型最值常量
#include
locale.h
//定义本地化函数
#include
math.h
//定义数学函数
#include
stdio.h
//定义输入/输出函数
#include
stdlib.h
//定义杂项函数及内存分配函数
#include
string.h
//字符串处理
#include
strstrea.h
//基于数组的输入/输出
#include
time.h
//定义关于时间的函数
#include
wchar.h
//宽字符处理及输入/输出
#include
wctype.h
//宽字符分类
标准
C/C++
(同上的不再注释)
#include
algorithm
//STL
通用算法
#include
bitset
//STL
位集容器
#include
cctype
#include
cerrno
#include
clocale
#include
cmath
#include
complex
//复数类
#include
cstdio
#include
cstdlib
#include
cstring
#include
ctime
#include
deque
//STL
双端队列容器
#include
exception
//异常处理类
#include
fstream
#include
functional
//STL
定义运算函数(代替运算符)
#include
limits
#include
list
//STL
线性列表容器
#include
map
//STL
映射容器
#include
iomanip
#include
ios
//基本输入/输出支持
#include
iosfwd
//输入/输出系统使用的前置声明
#include
iostream
#include
istream
//基本输入流
#include
ostream
//基本输出流
#include
queue
//STL
队列容器
#include
set
//STL
集合容器
#include
sstream
//基于字符串的流
#include
stack
//STL
堆栈容器
#include
stdexcept
//标准异常类
#include
streambuf
//底层输入/输出支持
#include
string
//字符串类
#include
utility
//STL
通用模板类
#include
vector
//STL
动态数组容器
#include
cwchar
#include
cwctype
using
namespace
std;
C99
增加
#include
complex.h
//复数处理
#include
fenv.h
//浮点环境
#include
inttypes.h
//整数格式转换
#include
stdbool.h
//布尔环境
#include
stdint.h
//整型环境
#include
tgmath.h
//通用类型数学宏
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。
main函数——主函数;
printf函数——格式输出函数;
scanf函数——格式输入函数;
getchar函数——字符输入函数;
putchar函数——字符输出函数;
gets函数——字符串输入函数;
puts函数——字符串输出函数;
strlen函数——求字符串长度的函数;
strcmp函数——比较字符串的函数;
sqrt函数——求开平方值的函数。
你说要十个的,所以我就写了十个!!这些,本人认为都是基础的函数!!
C语言库函数,常用库函数有:
1、scanf格式输入函数
2、printf格式输出函数
3、systemdos命令函数
4、sort排序
5、main主函数
6、fgets文件读取字符串函数
7、fputs文件写入字符串函数
8、fscanf文件格式读取函数
9、fprintf文件格式写入函数
10、fopen打开文件函数
11、getchar输入字符函数
12、putchar输出字符函数
13、malloc动态申请内存函数
14、free释放内存函数
15、abs求绝对值数学函数
16、sqrt求平方根数学函数
扩展资料
语言组成:
1、数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量
常量其值不可改变,符号常量名通常用大写。
变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组
如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
参考资料来源:百度百科-函数
#includestdio.h
#includemath.h
//这是声明引用的文件,用括起来的一般是系统的库,用“”一般是用户自己的文件
//stdio是标准输入输出,math是数学函数库,一般还需要用stdlib.h标准库包含常用的操作,如system("pause");这个是用来使控制台暂停,能让你看清结果用的,否则程序运行完一闪就没了
int f(int h) //此处是声明子函数,也可以使用;结束,然后再在别的地方写实现方法
//第一个int 这是返回的值的类型,f是函数名,括号里的int是传入的参数类型,h是参数名,多个参数用,隔开
{int i,b,n=0,s=0;//声明局部变量,在此处可以直接赋值
do{b=sqrt(h);//b=h的平方,sqrt是math库里的已有的函数
for(i=2;i=b;i++)//for(变量初始化;循环继续的条件;每次循环后执行的操作)
if(h%i==0) break;//if(条件)条件成立的操作 此处break是指如果h除以i的余数等于0,则退出for循环
if(ib){n++;s=s+h;}//这里if的判断是因为上面如果没有break,即这个数是素数,肯定最后ib,那么就把n增加1,然后s增加h
h--;//h是传入的参数,递减, 从而和n结合就是,取从传入进来的数以下最大的十个素数
}
while(n10); //do{循环内执行的操作} while(循环继续的条件)
return(s);//函数f的返回值
}
main()
{int h;scanf("%d",h);//scanf是读取键盘输入
printf("%d\n",f(h));//这个就是屏幕输出了
}
建议拿本书看下吧,基本的什么判断、循环语句至少要知道,才看程序吧。