- 注册时间
- 2004-12-5
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2006-12-16 14:38:15
|
显示全部楼层
那个,那个,我把程序都自己写出来了,各位来看看,指出错误,总该可以吧……
不好意思……因为是写在纸上然后誊写上来的,所以米有注释……看得烦了的话就不用看了……
1.编写程序,统计学生每门功课的平均成绩和所有课程的平均成绩。学生数量由键盘输入,每个学生4门功课,并把所有不及格学生的成绩显示出来。
main()
{
float a[4][100],b[4];int i,j,k;
scanf("%d",&j);
for (i=0;i<j;i++)
for (k=0;k<4;k++)
{printf("\nThe No.%d Students No.%d Lession is",i+1,j+1);
scanf("%f",&a[k]);}
for(k=0;k<4;k++)
{for (i=0;i<j;i++)
b[k]+=a[k];
b[k]/=j;
printf("\nThe No.%d Lession's reverage is %f",k+1,b[k]);}
printf("\nThe whole reverage is %f",(b[0]+b[1]+b[2]+b[3])/4);
for (k=0;k<4;k++)
{printf ("\nThe No.%d Lession's Failer:",k+1);
for (i=0;i<j;i++)
if (a[k]<60)printf("\nNo.%d,%f",i+1,a[k]);}
}
2.编写一个程序,将1~10顺序赋给一个整型数组,然后从第一个元素开始间隔地输出该数组。
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},b=0;
while(b<10){printf("%d",a);b+=2;}
b=1;while(b<10){printf("%d",a);b+=2}
}
3.有N个人围成一圈,顺序排号。从第一个人开始报数(从1到3),凡报到3退出圈子。求退出顺序。
main()
{
int n,i[100],j,k,r;
scanf("%d",&n);while (n-r>2)
{j=0;while(j<n)
{if (i[j]==0)
{k++;if (k=3){printf("%d",j+1);i[j]=1;}r++;k=0;}}
j++}
}
4.编写程序,将数组A中的相同数据只保留一个,然后输出。
#include "stdio.h"
#include "string.h"
{char a[100];int n,i,j;
gets(a);
n=strlen(a);
for (i=0;i<n;i++)
if(a!=0)
for(j=i+1;j<n;j++)
if(a[j]=a)a[j]=0;
for(i=0;i<n;i++)
if(a!=0)printf("%s",a);
}
5.求一个字符串的长度。
#include "stdio.h"
main()
{char a[100];int i;
gets(a);while(a[i++]!='\0');i--;
printf("%d",i);
}
6.输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少。
#include "stdio.h"
main()
{char a[100];int b,c,d,e,f,i;
gets(a);
while(a!='\0')
{if(a>='A'&&a<='Z'){b++,i++;continue;}
if(a>='a'&&a<='z'){c++,i++;continue;}
if(a=' '){d++,i++;continue;}
if(a>='0'&&a<='9'){e++,i++;continue;}
f++,i++;}
printf("%d,%d,%d,%d,%d",b,c,d,e,f);
}
7.输入一个字符串,内有数字和非数字字符。输出子字符串,将其中连续的数字作为一个整数,依次存放到一维数组A中,统计共有多少个整数,并输出这些数。
#include "stdio.h"
{char a[100];int b[100],i,j;
gets(a);
while(a!='\0')
{while(a>='0'&&a<='9')
b[j]*=10+a[i++]-'0';
i++,j++;}
for(i=0;i<j+1;i++)
printf("%d\n",b);}
8.有一字符串,编写程序,将此字符串从第M个字符开始的全部字符复制为另一个字符串。
#include "stdio.h"
#include "string.h"
main()
{char a[100],b[100];int i,j,m,n;
n=strlen(a);
do scanf("%d",&m) while(m>n);
for(i=m-1;i<n;i++)
a=b[j++];
b[j]='\0';
puts(b);}
9.编写程序,完成字符串的替换功能。
#include "stdio.h"
main()
{char a[100],b,c;int i;
gets(a);
scanf("%s,%s",&b,&c);
while(a!='\0')
if(a==b)a[i++]=c;
puts(a);}
10.在三个数组里,存放有30个整数,对这30个整数进行排序,排序结果存放在另外一个数组中。
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},b[10]={11,12,13,14,15,16,17,18,19,20},c[10]={21,22,23,24,25,26,27,28,29,30},d[30],i,j,temp;
for(i=0;i<10;i++)
d=a;
for(i=10;i<20;i++)
d=b[i-10];
for(i=20;i<30;i++)
d=c[i-20];
for(i=30;i>0;i--)
for(j=0;j<i-1;j++)
if(a[j]>a[j+1]){temp=a[j+1];a[j+1]=a[j];a[j]=temp;}
for(i=0;i<30;i++)printf("%d\n",a);
}
11.求100~300中所有的素数,并存放到一个数组中。
#include "math.h"
main()
{int a,b,c[100],d,e;
for(a=100;a<301;a++)
{for(b=2;b<=sqrt(a);b++)if(sqrt(a)%10==0)break;
if(b>=sqrt(a)+1)c[d++]=a;}
for(e=0;e<=d;e++)
printf("%d\n",c[e]);}
12.判断一个字符串是否是回文。(例如:"abcdedcba"是回文,而"abcdedfa"不是。)
#include "stdio.h"
#include "string.h"
main()
{char a[100],b[100];int c,d;
gets(a);
c=strlen(a);
for(d=0;d<c;d++)
b[d]=a[c-d];
b[d]='\0';
for(d=0;d<c;d++)
if(a[d]!=b[d])
{printf("No\n");exit(0);}
printf("Yes\n");
}
13.定义两个整型数组,分别输入10个整数,对它们进行升序排序,结果存入新数组中。
main()
{int a[10],b[10],c[10],temp,i,j;
for(i=0;i<10;i++)scanf("%d",&a);
for(i=0;i<10;i++)scanf("%d",&b);
for(i=0;i<10;i++)c=a;
for(i=0;i<10;i++)c[i+10]=b;
for(i=0;i>0;i--)
for(j=0;j<i-1;j++)
if(c[j]>c[j+1]){temp=c[j+1];c[j+1]=c[j];c[j]=temp;}
for(i=0;i<20;i++)printf("%d",c);
}
14.从键盘输入一字符串(假定只有"*"和字母),删除所有字母前的*和字母后的*,字母中间的*号保留。
#include "stdio.h"
#include "string.h"
main()
{char a[100];int n,i=0;
gets(a);
n=strlen(a);
while(a[n]=='*')n--;a[n+1]='\0';n=0;
while(a=='*')i++;
while(a[i+n]!='\0'){a[n]=a[n+i];n++}
a[n]='\0';
puts(a);}
15.从键盘输入两个5*5的矩阵,求两矩阵的和。(c[j]=a[j]+b[j])
main()
{int a[5][5],b[5][5],i,j,c[5][5];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&b[j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
c[j]=a[j]+b[j];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
printf("%d",c[j]);}
16.从键盘输入一个十六进制数字字符串,将其转换为十进制数输出。
#include "stdio.h"
#include "string.h"
main()
{char a[100];int i,n;long r;
gets(a);n=strlen(a);
for(i=0;i<n;i++)
{if(a>='0'&&a<='9'}r*=10+a-'0';
else r*=10+a-'a'+10;}
printf("%ld",r);}
17.分别将字符串A和字符串B中的字符倒置。然后按交叉的顺序将两个字符数组合并到字符数组C中,过长的部分直接连接在C的尾部。("abcdefgh"和"1990",结果为"h0g9f9e1dcba")
#include "stdio.h"
#include "string.h"
main()
{char a[50],b[50],c[100],temp;int m,n,i;
gets(a);gets(b);
m=strlen(a)-1;n=strlen(b)-1;
for(i=0;i<m+n+2;){if(m>=0)c[i++]=a[m--];if(n>=0)(c[i++]=b[n--];}
c='\0';
puts(c);}
18.键入一串字符(换行符结束),用循环语句将其的大小写字母互换后输出。
#include "stdio.h"
main()
{char a[100];int i;
gets(a);while(a!='\0'){if(a>='A'&&a<='Z')a-='A'+'a';else a-='a'+'A';}
puts(a);}
19.设有语句"int a[3][4];",先为数组输满数据,再将该数组周边的元素输出。(输出次序不限)
{int a[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[j]);
for(j=0;j<4;j++)
printf("%d",a[0][j]);
for(j=0;j<4;j++)
printf("%d",a[2][j]);
printf("%d,%d",a[1][0],a[1][3]);} |
|