1、查找指定字符
本题要求编写程序,从给定字符串中查找某指定的字符。
输入:输入待查找的字符c以及字符串s
输出:找到则输出字符c在字符串s中所对应的最大下标index;否则输出"Not Found"
优化目标:无
#include<stdio.h>
#include<string.h>
int main()
{
char c,ch;
char s[81];
int index=-1;
scanf("%c",&c);
ch=getchar();//用来吸取scanf留在缓冲区的'\n'
gets(s);//scanf以空格为分界,所以用gets获取字符串
for(int i=0;s[i]!='\0';i++)//遍历
{
if(c==s[i])
index=i;
}
if(index!=-1)
printf("index=%d",index);
else
printf("Not Found");
return 0;
}
2、本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。
输入:输入n个从小到大排好顺序的整数以及待插入整数x。
输出:输出将x插入后仍然从小到大有序的整数序列
优化目标:无
#include<stdio.h>
int main()
{
int n,i;
scanf("%d\n",&n);
int arr[n+1];
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
//输入待插入数x
int x;
scanf("%d",&x);
for(int j=n-1;j>=0&&arr[j]>x;j--)//从后往前依次查找插入位置,边查找边交换
{
arr[j+1]=arr[j]
}
arr[j+1]=x;//插入x
for(i=0;i<n+1;i++)//打印
{
printf("%d ",arr[i]);
}
return 0;
}
3、 三天打鱼两天晒网
中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?
输入:输入整型数a
输出:输出在第a天是“Fishing”还是“Drying”
优化目标:无
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>0&&a<=1000){//a不超过1000
if(a%5==1||a%5==2||a%5==3){
printf("Fishing in day %d",a);
}
else{
printf("Drying in day %d",a);
}
}
return 0;
}
4、近似求PI (15 分)
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。2/π=1+ 1! /3+ 2!/3×5+ 3!/ 3×5×7+⋯+ i!/ 3×5×⋯×(2×i+1)+⋯
输入:输入double型数eps
输出:输出π的近似值pi
优化目标:无
#include<stdio.h>
int main(){
double i=1;
double eps,sum=0,re=1,pi;
scanf("%lf", &eps);
while(re>=eps){
sum=sum+re;
re=re*i/(2*i+1);
i=i+1;
}
sum=sum+re;//最后一项
pi=2*sum;
printf("PI = %.5f",pi);//保留5位小数
return 0;
}
5、输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入:输入正整数n
输出:输出n行由字母A开始构成的三角形字符阵列
优化目标:无
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
char ch='A';
int i=0;
if(n<7)
{
while(n!=0)
{
for(i=0;i<n;i++)
{
printf("%c ",ch);
ch++; //下一个字母
}
printf("\n");
n--;
}
}
else
printf("输入不正确");
return 0;
}
6、换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入:输入待换的零钱数额n
输出:输出各种换法
优化目标:无
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k;
int n;
int t=0;
scanf("%d",&n);
for(i=n/5;i>=1;i--)
{
for(j=n/2;j>=1;j--)
{
for(k=n;k>=1;k--)
{
if(i*5+j*2+k==n)
{
t++;//方法数加一
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,k,i+j+k);
}
}
}
}
printf("count = %d\n",t);
}
总结:今天练习了一些c语言题,明天计划再去找链表的题练习。