第一题
从正数开始,依次两位相加,若两位相加大于0,则继续,取最大值
#include<stdio.h>
#include<stdlib.h>
int max(int a, int b){
if (a > b){
return a;
}
return b;
}
int main(){
int n;
printf("请输入数列个数n:");
scanf("%d", &n);
int nums[999];
printf("请输入数列:");
for (int i = 0; i < n; ++i){
scanf("%d", &nums[i]);
}
int max_t;
max_t = nums[0];
for (int i = 1; i < n; ++i){
if (nums[i - 1] > 0){
nums[i] += nums[i - 1];
}
max_t = max(max_t, nums[i]);
}
printf("%d", max_t);
system("pause");
return 0;
}
第二题
用双重for 循环
#include<stdio.h>
int main()
{
int a[10],b[10],i,j,t;
for(i=0;i<10;i++){
scanf("%d",&a[i]);
}
for(i=0;i<10;i++){
scanf("%d",&b[i]);
}
for(j=0;j<10;j++){
for(i=0;i<10;i++){
if(a[i]==b[j]){
t=a[i];
printf("%5d",t);
}
}
}
return 0;
}
第三题
冒泡排序法
数组为n,进行n-1轮
#include <stdio.h>
int main()
{
int a[10];
int i,t,n;
for (i=0;i<10;i++)
scanf("%d", &a[i]);
for(t=0;t<9;t++)
{
for(i=0;i<9-t;i++)
{
if(a[i]<a[i+1])
{
n=a[i+1];
a[i+1]=a[i];
a[i]=n;
}
}
}
for(i=0;i<10;i++)
{
printf("%6d",a[i]);
}
printf("\n");
for(i=9;i>=0;i--)
{
printf("%6d",a[i]);
}
}