请问我的这个专业代码填错那儿错了吗?C语言初学者 一直没找到

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
关于c语言的void main
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
关于c语言的void main
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口后使用快捷导航没有帐号?
请完成以下验证码
查看: 3773|回复: 2
C语言helloworld讲解及简单数字拼图源码----献给C语言初学者
在线时间3 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
本帖最后由 blacker 于
20:00 编辑
& && &&&曾几何时,我刚学C语言,其实在这之前,也就是高中时候,我还了解过VB。那时候的我,刚刚步入编程的世界,憧憬着自己将来会成为一名出色的IT工程师。
& && &&&可是,不论是教程书上还是老师在课上讲的,大部分就是“变量、常量、数组等等的定义及使用” “打印hello world” “九九乘法表” “数组排序”等等。于是我就想啊:“难道以后我精通了C语言以后,就天天用这些玩意就能写出一个像样的软件了?比如QQ、浏览器、杀毒软件、桌面便签等”。
& && &&&再后来,随着学习的不断深入,我终于对编程语言有了宏观的认识:概括起来讲,编程语言由参与运算的量(常量变量等)、参与运算的运算符(加减乘除等)、流程控制语句(如C语言的if、while、goto、for等)、函数调用规范四大块构成。前面三块是很基础的了,当然,第四块也是很基础的,但我为什么要把第四块单独列出来呢?因为它是通往编程世界的一扇窗户。没有了函数调用,你只能定义一些变量,然后做做运算、跳转一下、循环几次,其他的什么也干不了了。
& && &&&通过调用函数,你可以实现很多很多功能,比如,printf就可以往屏幕上输出一些东西。任何一种编程语言做出来的真正的项目,都是由各种各样的库里的各种各样的函数通过前面三块来堆起来的。拿一个C语言helloworld来举例说明一下:
#include &stdio.h&//上面这句就是一个包含头文件的说明,因为我们要输出helloworld需要调用printf函数,而这个函数在ANSI C标准库中的stdio.h中声明,因此我们要通过该语句来指明printf的出处 int main(void)//上面这句是helloworld程序的入口点,当我们运行helloworld程序的时候,操作系统就调用这个main函数,以后你学的多了之后,你会知道其实他也是个函数,与程序中其他函数不同的一点是:这个函数由操作系统调用,参数由操作系统命令行传递给main函数,返回值也由操作系统接收。而程序中的函数参数由程序中的语句传递给被调用函数,被调用函数的返回值也由程序中的变量接收。{ printf(&Hello World!\n&);//上面这句完成了我们helloworld最关键的功能:在屏幕上打印输出helloworld字符串。从宏观上讲,这是一个函数,是个函数就有参数以及返回值,在这里,我们传递给printf函数的参数是&Hello World!\n&,而我们并不关心这个函数的返回值,所以就没设置变量去接收返回值。return 0;//上面这句就是程序的返回值,也就是main函数的返回值,前面我们说了,这个值“0”最终是返回到操作系统中去了,操作系统怎么处理这个值你暂时可以不用关心。}看完了helloworld源码解释,你会明白:原来,我要实现XX功能,就要学会XX函数的使用方法。是的,学习一种编程语言,最难的不是学编程语言本身,而是学习能够实现你所需要的功能的函数!任何一种编程语言,无非就是各种量的定义及使用、各种运算符的使用、程序流向控制、函数的调用方法。还是那句话,函数是你通往代码世界的一扇窗。
----------------分割线,以上为helloworld和编程语言宏观讲解-------------------& && &很久以前,我上班无聊玩win7桌面小游戏——数字拼图时,突然想到自己编写一个数字拼图游戏,于是……//------------------------------分割线,以下是源码-------------------------------//编译环境:VC++6.0,(若用Win TC,可能需要把注释去掉,否则有非法注释的提示)
#include &time.h&
#include &stdio.h&
#include &stdlib.h&
#include &conio.h&
//存储按键码,也就是玩游戏时候按下的“上下左右”方向键的码
//x、y、i用于循环,x0y0指示当前空位&0&,rnd存放随机数值,t标记排序是否成功
int x,y,x0,y0,rnd,i,t=0;
//数字存储矩阵
int matrix[4][4];
//以下为函数声明
void show(void);& && & //显示当前排序
void initmatrix(void); //初始化随机矩阵
int sett(void);& && && && &//判断当前排序是否成功
void up(void);& && && &&&//向下移动空位(空位下方数字上移)
void down(void);& && &
void lft(void);
void rght(void);
void iptkey(void);& &&&//接收按键(只接收方向键)
int main(void)
//显示提示信息并暂停 按任意键后开始游戏
printf(&Use arrow key to move the numbers,press anykey to start playing.\n&);
//标号 游戏成功后如果按r重玩则跳转至此
//清成功标志,否则一直为成功状态
//取随机数初始化
srand((unsigned int)time(0));
initmatrix();
//如果游戏没结束,也就是不满足1-15按顺序排列,则循环等待按下方向键并操作矩阵数字交换
& & iptkey();
& & t=sett();
& & system(&CLS&);
& & show();
printf(&Congratulations,you win!\n&);
printf(&Press R to Restart,anykey to Quit,thank you for playing the Game!\n&);
key=getch();
system(&CLS&);
if(key=='R' || key=='r')
void initmatrix(void)
& & {& &&&
& &&&x0=3;
& &&&y0=3;
& &&&for(y=0;y&4;y++)& && && && &&&//嵌套循环先按成功序列排序
& && && &for(x=0;x&4;x++)
& && && &{
& && && && & if(y==3 && x==3)
& && && && & matrix[y][x]=0;
& && && && & else
& && && && & matrix[y][x]=1+i++;
& && && &}& &&&
& &&&for(i=0;i&1000;i++)& && &&&//一千次循环,每次循环都按随即方向移动
& &&&rnd=rand()%(4);& && && &&&//取0-3随机数,分别代表上下左右四个方向
& &&&switch(rnd)
& && &&&case 0:
& && && && &{
& && && && &up();
& && && && &
& && && && &}
& && &&&case 1:
& && && && &{
& && && && &down();
& && && && &
& && && && &}
& && &&&case 2:
& && && && &{
& && && && &lft();
& && && && &
& && && && &}
& && &&&case 3:
& && && && &{
& && && && &rght();
& && && && &
& && && && &}
& &&&show();
int sett(void)
& & for(y=0;y&4;y++)
& && &&&for(x=0;x&4;x++)
& && && && &{
& && && && &if (matrix[y][x]!=1+i++)
& && && && && & return (i==16)?1:0;
& && && && &}
void iptkey(void)
& & key=getch();
& & switch(key)
& && &&&case 72:
& && && && &{
& && && && &up();
& && && && &
& && && && &}
& && &&&case 80:
& && && && &{
& && && && &down();
& && && && &
& && && && &}
& && &&&case 75:
& && && && &{
& && && && &lft();
& && && && &
& && && && &}
& && &&&case 77:
& && && && &{
& && && && &rght();
& && && && &
& && && && &}
void up(void)
& & if(y0!=3)& && && && && && && && && && && && && && &//移动时要考虑空位&0&是否已经在边界,上下左右各边界各有一个方向不能移动
& && &&&matrix[y0][x0]=matrix[y0+1][x0];
& && &&&y0++;
& && &&&matrix[y0][x0]=0;
void down(void)
& & if(y0!=0)
& && &&&matrix[y0][x0]=matrix[y0-1][x0];
& && &&&y0--;
& && &&&matrix[y0][x0]=0;
void lft(void)
& & if(x0!=3)
& && &&&matrix[y0][x0]=matrix[y0][x0+1];
& && &&&x0++;
& && &&&matrix[y0][x0]=0;
void rght(void)
& & if(x0!=0)
& && &&&matrix[y0][x0]=matrix[y0][x0-1];
& && &&&x0--;
& && &&&matrix[y0][x0]=0;
void show(void)
& & for(y=0;y&4;y++)
& && &&&for(x=0;x&4;x++)
& && && && &if(x==3)
& && && && && & printf(&%d\n&,matrix[y][x]);& && & //“\n&保证每行只有四个数显示 满四个数就换行
& && && && &else
& && && && && & printf(&%d\t&,matrix[y][x]);
//-------------------------------分割线,以上是源码-------------------------
程序很简陋,注释也不多,好在都玩过这个游戏,一看代码结构就知道怎样实现的了。
ps:其实这是第二版,第一版的时候,没考虑到数字拼图无解的情况。第一版和第二版的区别在于游戏初始化的时候,各数字位置的随机确定上。第一版的实现方法大概为:从0-15中随机取值,每取出一个值就把它按顺序放到4*4矩阵中,然后从0-15中剔除这个值,防止再次取到它,这样直到16个值全部取完。由于这种方法是“真正”的随机,并没有遵循“保证数字拼图有解”的规则,因此,每次初始化有1/2的概率出现无解的情况。第一版出生后,我自己玩了几次,发现了无解的情况之后,改进了拼图初始化的随机方法:从正确答案(也就是1-15按顺序在矩阵中排列,最后为空位0)开始,随机移动空位0一定次数(我设定的是1000次,空位随机移动1000次,得到的初始化排列足够随机的了)。由于最终初始化结果是由正确答案逆向移动得出来的,那么这个初始化的排列一定是有解的。
pps:关于初始化,你有其他方法吗?欢迎讨论。
在线时间1750 小时
芯币1818枚
TA的帖子TA的资源
一粒金砂(中级), 积分 134, 距离下一级还需 66 积分
一粒金砂(中级), 积分 134, 距离下一级还需 66 积分
每次初始化有1/2的概率出现无解的情况
可以大胆猜想,交换任意两块,从有解变无解,再任意交换两块,有变有解。
如果可以证明猜想,那么偶数次任意交换,显然比移动快。
如果可以证明猜想错误,...
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
EEWORLD 官方微信
Powered byC语言初学者代码中的常见错误与瑕疵(9)
字母的个数
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。&
输入:第一行输入一个正整数T(0&T&25)&
随后T行输入一个字符串s,s长度小于1010。&
输出:每组数据输出占一行,输出出现次数最多的字符;&
jsdhfjkshdfjksahdfjkhsajkf
#include &stdio.h&
#include &string.h&
int maxchar(char x[1010])
&int i,j,temp,
&int a[26]={0};
&for (i = 0,temp =0;i&strlen(x);i++)
& temp=x[i]-97;
& a[temp]+=1;
&for(i=1,max = a[0],j=0;i&26;i++)
& if(max&a[i])
& &max = a[i];
&return j+97;
int maxchar(char x[1010]);
int main()
&char s[1010],c[26];
&scanf(&%d&,&T);
&for (i=0;i&T;i++)
& scanf(&%s&,s);
& c[i]=maxchar(s);
&for (i=0;i&T;i++)
& printf(&%c\n&,c[i]);
&return 0;
  已经学会把函数类型声明写在函数定义外面了,但把其他函数定义写在main()之前,总体上还是有头重脚轻之感。
&char s[1010],c[26];
  s数组显然不应该定义在这里,因为这个数组只在第一个for语句内部用到。
  c数组不应该定义为26个元素,因为题目中说的是&0&T&25&。
&scanf(&%d&,&T);
  这条语句无可指责,但输入后没考虑数据有效性。&
&for (i=0;i&T;i++)
& scanf(&%s&,s);
& c[i]=maxchar(s);
&for (i=0;i&T;i++)
& printf(&%c\n&,c[i]);
  原作者显然不了解这类ACM问题的套路(参见 C语言初学者代码中的常见错误与瑕疵(5) & 11楼~13楼)。不过话说回来,ACM对这类问题的描述确实容易让外人误解,ACM是否应该自我检讨一下呢?
  除了不了解ACM的套路,这里的一个有欠考虑的地方是没有注意检查输入数据的有效性(当然,ACM对此是不管不顾的)。如果考虑输入数据的有效性应该不理会无效数据:
scanf(&%d&,&T);
if ( 0 &T && T &25 )
& &//求解问题
或者&死等&
while ( scanf(&%d&,&T) , !( 0 &T && T &25 ) )
& & //提示重新输入
  考虑的更周到些的话,可以
while ( scanf(&%d&,&T)!= 1 || !( 0 &T && T &25 ) )
& & while ( getchar()!='\n')
& & //提示重新输入
  此外,这段代码中的
scanf(&%s&,s);
这句如果写成
scanf(&%1009s&,s);
就无可挑剔了。尽管ACM的测试数据不会出问题,但这是应该考虑到的一个问题。程序员最重要的品质应该是思虑周到。
maxchar()函数 :
int maxchar(char x[1010])
&int i,j,temp,
&int a[26]={0};
&for (i = 0,temp =0;i&strlen(x);i++)
& temp=x[i]-97;
& a[temp]+=1;
&for(i=1,max = a[0],j=0;i&26;i++)
& if(max&a[i])
& &max = a[i];
&return j+97;
int maxchar(char x[1010]);
&  函数定义和函数类型声明都存在同一个问题,就是[]内的1010。这个是不应该写的,写了编译器也不&看&,写得毫无意义。
int a[26]={0};
&  这个写成
&int a['z'-'a'+1]={0};
&为好。注意这里应该是假定使用ASCII码制,如果不是ASCII码,代码不能这样写。
&for (i = 0,temp =0;i&strlen(x);i++)
& temp=x[i]-97;
& a[temp]+=1;
  这个槽点较多。首先temp明显多余,其次那个97太难看了,典型的谭浩强风格。应该写为'a'。
a[temp]+=1;
  可以直接写为&
a[ x[i] - 'a']+=1;
  再有,i&strlen(x)写得很糟糕,因为在这里调用strlen(x),意味着在循环过程中每次循环都要调用这个函数,然而对于这个循环来说,strlen(x)其实是一个常量,并不需要每次都调用。这也是初学者常见的一个毛病,总忍不住有调用库函数的冲动,而不考虑有没有更好的写法。strlen(x)是被滥用最多的库函数之一。其实这里简单地写x[i]!='\0'就可以了。由此可见源文件开头的
#include &string.h&
也完全是多余的。
  另外这条语句的功能与下一条for语句的功能相对各自独立,各抽象为一个独立的函数为好。
&for(i=1,max = a[0],j=0;i&26;i++)
& if(max&a[i])
& &max = a[i];
  这个地方写得有点笨,主要是变量太多。作者用max记录最大值元素,用j记录其下标,其实只要一个j就够了
&for(i=1,j=0;i&26;i++)
& if(a[j]&a[i])
& &j=i; &&
return j+97;
这个也是谭浩强之流不入流的写法,非常难看。应该写为
return j+'a';
字母的个数&
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,
如果出现次数最多字母有多个那么输出最小的那个。&
输入:第一行输入一个正整数T(0&T&25)&
随后T行输入一个字符串s,s长度小于1010。&
输出:每组数据输出占一行,输出出现次数最多的字符;&
样例:输入&
jsdhfjkshdfjksahdfjkhsajkf&
作者:薛非
出处:https://www.cnblogs.com/pmer/ & &C语言初学者代码中的常见错误与瑕疵&系列博文&
#include &stdio.h&
#define S_LEN 1009
#define MAX_LEN (S_LEN + 1)&
#define N(x) N_(x)
#define N_(x) #x
char find_major( char * );
void count( int [] , char * ) ;
unsigned be_most( int [], unsigned );
int main( void )
& &int T ;
& &puts(&行数?&);
& &scanf(&%d& , &T);
& &if ( ! ( 0 & T && T & 25 ) )
& & & return 1;
& &while ( T -- & 0 )
& & & char s[ MAX_LEN ];
& & & scanf(&%&N(S_LEN)&s& , s );
& & & printf(&%c\n& , find_major( s ) );
& &return 0;
char find_major( char * s )
& &int num[ 'z' - 'a' + 1 ] = { 0 } ;
& &count( num , s ) ; & & & & & & & & //统计字母个数&
& &return 'a' + be_most( num , sizeof num / sizeof num[0] );//返回出现最多字符&
void count( int num[] , char * s )&
& &while ( *s != '\0' )
& & & num[ * s ++ - 'a' ] ++ ;&
unsigned be_most( int a[] , unsigned n )
& &unsigned max = 0
& &for ( i = 1 i & i ++ )
& & & if ( a[max] & a[i] )
& & & & &max =
& &//最大值元素下标c语言初学者需要掌握的55个程序&(源代码)【一】
1&有一个函数<img WIDTH="161" HEIGHT="75" NAME="image_operate_16355"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />,写一段程序,输入<img WIDTH="14" HEIGHT="15"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />的值,输出<img WIDTH="15" HEIGHT="18"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />的值。
#&include&stdio.h&
int&main&()
double&x,y;
printf("x&=&");
scanf("%lf",&x);
if(0&==&x)
if&(x&0&&&&x&&=&100)
else&y&=&-1;
printf("y&=&%f",y);
2.&输入3个数a,b,c,按大由到小的顺序输出。
#&include&&stdio.h&
int&main()
void&change(int&*p1,int&*p2);
int&a,b,c;
printf("请输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
change(&a,&b);
change(&a,&c);
change(&b,&c);
printf("a&=&%d\nb&&=&%d\nc&=&%d\n",a,b,c);
void&change(int&*p1,int&*p2)
if(*p1&&&*p2)
*p1&=&*p2;
3.&输入4个数,输出4个数中的最大值、最小值。
#&include&&stdio.h&
int&main()
void&change(int&*p1,int&*p2);
int&a,b,c,d;
printf("请输入a,b,c,d的值\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
change(&a,&b);
change(&a,&c);
change(&a,&d);
change(&b,&c);
change(&b,&d);
change(&c,&d);
printf("最大值是%d最小值是%d\n",a,d);
void&change(int&*p1,int&*p2)
if(*p1&&&*p2)
*p1&=&*p2;
4.&输入成绩,要求输出成绩等级A、B、C、D、E或error。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,0~60分为‘E’。若输入成绩低于0分和高于100分则输出error。
#include&&stdio.h&&
int&main()
printf("请输入成绩\n");
scanf("%d",&a);
b&=&a&/&10;
case&9:printf&("A");
case&8:printf&("B");
case&7:printf&("C");
case&6:printf&("D");
case&0:printf&("E");
default:printf("ERROR");
printf("\n");
5.&有一个函数:
<img WIDTH="207" HEIGHT="75"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />
#&include&stdio.h&
int&main&()
double&x,y;
printf("x&=&");
scanf("%lf",&x);
if&(x&=&10)
y&=&3&*&x&-&11;
else&y&=&2&*&x&-&1;
printf("y&=&%f",y);
6.&输出300~400之间的全部素数,并按每行5个数输出。
#&include&stdio.h&
int&main&()
int&i,j,f,m&=&0;
for(i&=&300;i&=400;i++)
for(j&=&2;j&i;j++)
if(0&==&i&%&j)
printf("M",i);
if(0&==&m%5)
printf("\n");
7.&求Fibonacci数列的前20个数,并将其分5行输出。
#&include&stdio.h&
int&main&()
int&i,a[20]&={1,1};
for(i&=&0;i&18;i++)
a[i+2]&=&a[i]+a[i+1];
for(i&=&0;i&20;i++)
if(0&==&i%5)
printf&("\n");
printf&("M",a[i]);
8.&求<img WIDTH="67" HEIGHT="46"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />。
#&include&stdio.h&
int&main&()
int&n&,i,j,sum&=&0;
for(i&=&1;i&11;i++)
for(j&=&1;j&&=&i;j++)
sum&=&sum+3+n;
printf&("结果是%d\n",sum);
9.&有一分数序列<img WIDTH="138" HEIGHT="42"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />,求其前20项的和。
#&include&&stdio.h&
int&main&()
double&a[21]&=&{1,1},b[20];
int&i;double&sum&=&0;
for(i&=&2;i&&&21;i++)
a[i]&=&a[i-1]&+&a[i-2];
for(i&=&0;i&&&20;i++)
b[i]&=&a[i]&/&a[i+1];
for(i&=&0;i&&&20;i++)
sum&=&b[i]&+&
printf&("%6.2f\n",sum);
10.&输出小于500的所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为<img WIDTH="109" HEIGHT="22"
ALT="c语言初学者需要掌握的55个程序&(源代码)【一】"
TITLE="c语言初学者需要掌握的55个程序&(源代码)【一】" />。
#&include&&stdio.h&
#&include&math.h&
int&main&()
int&a,b,c,i;
for(i&=&100;i&500;i++)
a&=&i&%&10;
b&=&i&/&10&%&10;
c&=&i&/&100;
if(i&==&pow(a,3)+pow(b,3)&+&pow(c,3))
printf("M",i);
printf&("\n");
11.&给一个不多于6位的正整数,要求:&#9312;求出它是几位数;&#9313;分别输出每一位数字;&#9314;按逆序输出各位数字,例如原数为158,应输出851。
#&include&&stdio.h&
#&include&math.h&
int&main&()
int&n,i,m&=&0,k;
printf&("请输入一个数\n");
scanf("%d",&n);
printf("倒着输出是:");
while(n*10/10&!=&0)
printf&("M",k);
printf&("\n是一个%d位数\n",m);
12.&求5+55+555+的值。
#&include&&stdio.h&
int&main&()
int&i,sum&=&0,b[5]=&{5};
for&(i&=&0;i&&4;i++)
b[i+1]&=&b[i]*10+5;
for&(i&=&0;i&&5;i++)
sum&=&b[i]+
printf&("\n结果是%d\n",sum);
13求ax2+bx+c=0方程的解。
#&include&&stdio.h&
#&include&&math.h&
int&main&()
double&m,x1,x2,a,b,c;
printf&("分别输入a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
m&=&b*b&-&4*a*c;
printf("无解\n");
x1&=&(-b&+&sqrt(m))/(2*a);
x2&=&(-b&-&sqrt(m))/(2*a);
printf&("\n结果是x1&=&%f&x2&=&%f&\n",x1,x2);
14输入一行字符,分别统计出其中的英文字符、数字和其他字符的个数。
#&include&&stdio.h&
int&main&()
int&letters1&=&0,letters2&=&0,space&=&0,digit&=&0,other&=&0;
printf&("请输入一行字符\n");
while&(&(c&=&getchar())&!=&'\n')
if&(c&&=&'a'&&&c&&=&'z')
letters1++;
if&(c&=&'A'&&&c&&=&'Z')
letters2++;
if&(&c&=='&')
if&(c&&=&'0'&&c&='9')
printf&("大写字母数%d\n&小写字母数%d\n空格数%d\n&数字数%d\n其他字符数%d\n",letters1,letters2,space,digit,other);
15.&输入10个整型整数,用起泡法对这10个数排序,并该由小到大顺序在屏幕上输出。
#&include&&stdio.h&
int&main&()
int&i,j,t,a[10];
for(i&=&0;i&10;i++)
printf&("请输入第%d个数\n",i+1);
scanf("%d",&a[i]);
for&(i&=&0;i&&&10;i++)
for&(j&=&i;j&10;j++)
if&(a[i]&a[j])
a[i]&=&a[j];
for&(i&=&0;i&&&10;i++)
printf&("M",a[i]);
16.&将一个二维数组a的行和列的元素互换(即行列互换),存到另一个二维数组b中。
#&include&&stdio.h&
int&main&()
int&a[2][3]&=&{
int&i,j,b[3][2];
for&(i&=&0;i&2;i++)
for&(j&=&0;j&3;j++)
b[j][i]&=&a[i][j];
for&(i&=&0;i&3;i++)
{for&(j&=&0;j&2;j++)
printf&("M",b[i][j]);
printf("\n");
17.&在一个3*4的二维数组a中,要求编程求出其中值最大的那个元素的值,并输出其所在的行号和列号。
#&include&&stdio.h&
int&main&()
int&a[3][4]&=&{
{2,5,8,7},
{45,65,7}};
int&i,j,max&=&a[0][0],maxi&=&0,maxj&=&0;
for&(i&=&0;i&3;i++)
for&(j&=&0;j&4;j++)
if&(max&&&a[i][j])
{max&=&a[i][j];
printf&("最大值是第%d行第%d列的%d",maxi+1,maxj+1,max);
printf("\n");
18.&输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
#&include&&stdio.h&
int&main&()
int&i=&1,n=&0;
char&ch[80];
while(ch[i]!=&'\0')
if(ch[i-1]&==&'&'&&ch[i]!='&')
printf&("%d个单词\n",n+1);
19.&有3个字符串,要求找出其中最大者。
#&include&&stdio.h&
#&include&&string.h&
int&main&()
void&change&(char&*p1,char&*p2);
char&a[3][40],(*p)[40];
for(i&=&0;i&&&3;i++)
printf&("&Please&enter&\n");
gets(a[i]);
char&temp[40];char&*p1&=&
for(i&=&0;i&&&3;&i++)
for(j&=&i+1;j&&&3;&j++)
if(strcmp(p[i],p[j])&0)
strcpy(p1,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],p1);
printf("%s\n",p[2]);
20.&输入两个整数,要求用一个函数求出其中的大者,并在主函数中输出此值。
#&include&&stdio.h&
int&max(int&a,int&b)
return&(a&b)?a:b;
int&main&()
printf("please&enter&two&\n");
scanf("%d%d",&a,&b);
printf&("较大值是%d",max(a,b));
21.&输入两个整数,要求用一个函数求出其最大公约数和最小公倍数,并在主函数中调用该子函数。
#&include&&stdio.h&
int&a,b,c,d;
void&move()
int&divisor()
for&(int&i&=&2;i&&=a;i++)
if&(0&==&a%i&&&&0&==&b%i)
int&main&()
printf&("请输入两个数\n");
scanf&("%d%d",&a,&b);
c&=&divisor();
printf&("%d&&%d\n",c,a*b/c);
22.&输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。
#&include&&stdio.h&
int&max(int&a,int&b)
return&a&b?a:b;
int&main&()
int&a,b,c,d,e;
printf&("请输入4个数\n");
scanf&("%d%d%d%d",&a,&b,&c,&d);
e&=&max(d,max(c,max(a,b)));;
printf&("%d\n",e);
23.&用递归方法求5!。
#&include&&stdio.h&
int&mul(int&n)
if(0==n||1==n)
return&n*mul(n-1);
int&main&()
int&a=&4,b;
b&=&mul(a);
printf&("%d\n",b)
24.&编写一个函数,用来分别求数组score_1(有5个元素)和数组score_2(有10个元素)各元素的平均值。
#&include&&stdio.h&
int&aver(int&*p,int&n)
int&i,sum&=0;
for(i&=&0;i&n;i++)
sum=&*(p+i)&+
return&sum/n;
int&main&()
int&i,score_1[5]={3,4,5,7,9},score_2[10]=&{43,65,5,3,6,65,23,12,78,3};
a&=&aver(score_1,5);
b&=&aver(score_2,10);
printf&("%d,%d",a,b);
25&将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。
#&include&&stdio.h&
int&main&()
int&i,a[5]={3,4,5,7,9};
for(i&=&0;i&&5;i++)
printf&("M",a[i]);
printf&("\n");
for(i&=&0;i&5/2;i++)
a[i]&=&a[4-i];
a[4-i]&=&t;
for(i&=&0;i&&5;i++)
printf&("M",a[i]);
printf&("\n");
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 发票代码错了 的文章

 

随机推荐