1.题目:冒泡排序
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
void Bubble_sort(int a[],int n){//n为数组长度
for(int i=1;i<=n-1;i++){ //n-1趟
for(int j=0;j<=n-i-1;j++){
//当i=1时,内循环结束时的j+1(即j==n-i-1时,j+1==n-1)为数组边界
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
int main()
{
int a[10];
for(int i=0;i<=9;i++){
scanf("%d",a+i);
}
Bubble_sort(a,10);
for(int i=0;i<=9;i++){
printf("%d\n",a[i]);
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
void vowels(char s1[],char s2[]){
int len1=strlen(s1);
int num=0;
for(int i=0;i<=len1-1;i++){
if(s1[i]=='a'||s1[i]=='e'||s1[i]=='i'||s1[i]=='o'||s1[i]=='u'||s1[i]=='A'||s1[i]=='E'||s1[i]=='I'||s1[i]=='O'||s1[i]=='U'){
s2[num++]=s1[i];
}
}
s2[num]='\0';
//在字符数组s2末尾添加空字符'\0',否则puts出错(因为不能识别到字符串结尾,puts是通过识别空字符'\0'作为字符串的结尾来输出的。在使用gets或scanf输入字符串时会自动在输入字符串的末尾添加'\0'。)
}
int main(){
char s1[100],s2[100];
gets(s1);
vowels(s1,s2);
puts(s2);
return 0;
}
3.结构体与指针
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
struct student{
int num;
char name[20];
char sex;
int age;
};
int main(){
int n;
scanf("%d",&n);
struct student stu[30];
struct student *p;
p=stu;//定义指向结构体数组stu的指针,stu等价于&stu[0]
for(int i=0;i<=n-1;i++){
scanf("%d",&(p+i)->num);//别忘了加取地址运算符&,因为(p+i)->num是变量
scanf("%s",(p+i)->name);
getchar();//吃掉在输入字符串后输入的空格,防止sex被%c读取
scanf("%c",&(p+i)->sex);
scanf("%d",&(p+i)->age);
}
for(int i=0;i<=n-1;i++){
printf("%d %s %c %d\n",(p+i)->num,(p+i)->name,(p+i)->sex,(p+i)->age);
}
return 0;
}
4.字符型A+B
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
char a[10000];
char b[10000];
int change(char *a){//删去字符中的',',并返回新的字符和新的长度
int len=strlen(a);
int flag=1;//如果是正数返回1,负数返回-1
for(int i=0;i<=len-1;i++){
if(a[0]=='-'){
flag=-1;
for(int j=0;j<=len-2;j++){
a[j]=a[j+1]; //删去负号
}
a[len-1]='\0';// 将原末尾改为'\0',得到新的字符串
len--;
}
if(a[i]==','){
for(int j=i;j<=len-2;j++){
a[j]=a[j+1]; //删去逗号
}
a[len-1]='\0';// 将原末尾改为'\0',得到新的字符串
len--;
}
}
int A;
sscanf(a,"%d",&A);//把字符数组转换成数字
if(flag==-1) A=-A;//如果是负数,在数字前面添负号
return A; //返回数字的真实值
}
int main(){
while(scanf("%s%s",a,b)!=EOF){//一直输入两个字符串a和b
int A,B;
A=change(a); //得到字符数组a对应的真实数值A
B=change(b);
printf("%d\n",A+B);
}
return 0;
}