山东理工大学一维数组
7-1 sdut- C語言實驗—最值
分數?12
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
有一個長度為n的整數序列,其中最大值和最小值不會出現在序列的第一和最后一個位置。
請寫一個程序,把序列中的最小值與第一個數交換,最大值與最后一個數交換。輸出轉換好的序列。
輸入格式:
輸入包括兩行。
第一行為正整數n(1≤n≤10)。
第二行為n個正整數組成的序列。
輸出格式:
輸出轉換好的序列。數據之間用空格隔開。
輸入樣例:
6 2 3 8 1 4 5輸出樣例:
1 3 5 2 4 8#include <stdio.h>
#include <stdlib.h>
int a[15];
int main()
{
? ? int n,t;
? ? scanf("%d",&n);
? ? int i,d,x,max=0,min;
? ? for(i=1;i<=n;i++)
? ? {
? ? ? ? scanf("%d",&a[i]);
? ? }
? ? for(i=1;i<=n;i++)
? ? {
? ? ? ? if(a[i]>max)
? ? ? ? {
? ? ? ? ? ? max=a[i];
? ? ? ? ? ? d=i;
? ? ? ? }
? ? }
? ? min=a[1],x=1;
? ? for(i=2;i<=n;i++)
? ? {
? ? ? ? if(a[i]<min)
? ? ? ? {
? ? ? ? ? ? min=a[i];
? ? ? ? ? ? x=i;
? ? ? ? }
? ? }
? ? t=a[1];
? ? a[1]=a[x];
? ? a[x]=t;
? ? t=a[n];
? ? a[n]=a[d];
? ? a[d]=t;
? ? for(i=1;i<n;i++)
? ? {
? ? ? ? printf("%d ",a[i]);
? ? }
? ? printf("%d",a[n]);
? ? return 0;
}
7-2 sdut-C語言實驗-整數位
分數?12
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
輸入一個不多于5位的正整數,要求:
(1)求出它是幾位數;
(2)分別輸出每一位數字;
(3)按逆序輸出各位數字。
輸入格式:
輸入一個不多于5位的正整數。
輸出格式:
輸出數據有3行,第一行為正整數位數,第二行為各位數字,第三行為逆序的各位數字。
#include <stdio.h>
#include <stdlib.h>
int main()
{
? ? int a,wei=0,newa;
? ? scanf("%d",&a);
? ? newa=a;
? ? while(a)
? ? {
? ? ? ? a/=10;
? ? ? ? wei++;
? ? }
? ? int nwei=wei;
? ? printf("%d\n",wei);
? ? int n[wei];
? ? while(newa)
? ? {
? ? ? ? n[wei]=newa%10;
? ? ? ? newa/=10;
? ? ? ? wei--;
? ? }
? ? for(wei=1;wei<nwei;wei++)
? ? {
? ? ? ? printf("%d ",n[wei]);
? ? }
? ? printf("%d",n[nwei]);
? ? printf("\n");
? ? for(;nwei>1;nwei--)
? ? {
? ? ? ? printf("%d ",n[nwei]);
? ? }
? ? printf("%d",n[1]);
? ? return 0;
}
7-3 sdut-C語言實驗-區間之和
分數?10
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
給定一個由 n 個整數組成的序列A1,A2,……, An 和兩個整數L,R,你的任務是寫一個程序來計算序列號在L,R?這段位置區間內所有數的總和。
輸入格式:
輸入只有一組測試數據:
測試數據的第一行為一個整數 n (1< n < 10000);
第二行為 n 個 int 類型的整數;
第三行為兩個整數 L,R(0 < L < R <= n)。
輸出格式:
輸出序列號在區間[L,R]內所有數的和,數據保證和在 int 類型范圍內。
#include <stdio.h>
#include <stdlib.h>
int main()
{
? ? int n,i,sum=0;
? ? scanf("%d",&n);
? ? int a[10010],l,r;
? ? for(i=1;i<=n;i++)
? ? {
? ? ? ? scanf("%d",&a[i]);
? ? }
? ? scanf("%d %d",&l,&r);
? ? while(l<=r)
? ? {
? ? ? ? sum+=a[l];
? ? ? ? l++;
? ? }
? ? printf("%d",sum);
? ? return 0;
}
7-4 sdut-C語言實驗-分割整數
分數?10
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
從鍵盤輸入一個長整數(不超過10位),從高位開始逐位分割并輸出。
輸入格式:
正整數n,不含前導零。
輸出格式:
分割的整數序列,各整數之間用空格格開。
注意,最后一個數字后面沒有空格!
#include<stdio.h>
int main()
{
? ? int a[11],n;
? ? scanf("%d",&n);
? ? int i=1;
? ? for(;n;i++)
? ? {
? ? ? ? a[i]=n%10;
? ? ? ? n/=10;
? ? }
? ? for(i=i-1;i>1;i--)
? ? {
? ? ? ? printf("%d ",a[i]);
? ? }
? ? printf("%d",a[1]);
}
7-5 sdut-C語言實驗-眾數
分數?15
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
眾數是指在一組數據中,出現次數最多的數。例如:1, 1, 3 中出現次數最多的數為 1,則眾數為 1。
給定一組數,你能求出眾數嗎?
輸入格式:
輸入數據有多組(數據組數不超過 50),到 EOF 結束。
對于每組數據:
第 1 行輸入一個整數 n (1 <= n <= 10000),表示數的個數。
第 2 行輸入 n 個用空格隔開的整數 Ai (0 <= Ai <= 1000),依次表示每一個數。
輸出格式:
對于每組數據,在一行中輸出一個整數,表示這組數據的眾數。
數據保證有唯一的眾數。
#include <stdio.h>
#include <stdlib.h>
int main()
{
? ? int n,b,d;
? ? while(scanf("%d",&n)!=EOF)
? {
? ? ? ? if(scanf("EOF"))
? ? ? ? ? ? break;
? ? int a[1001]={0},max=0;
? ? for(int i=0;i<n;i++)
? ? {
? ? ? ? scanf("%d",&b);
? ? ? ? a[b]++;
? ? }
? ? for(int i=0;i<1001;i++)
? ? {
? ? ? ? if(a[i]>max)
? ? ? ? {
? ? ? ? ? ? max=a[i];
? ? ? ? ? ? d=i;
? ? ? ? }
? ? }
? ? printf("%d\n",d);
? }
? ? return 0;
}
?
7-6 sdut- C語言實驗-數日子
分數?12
全屏瀏覽題目
切換布局
作者?馬新娟
單位?山東理工大學
時間如白駒過隙,大一的時光也是轉眼就結束,因此要抓住每一寸光陰提升自己。你知道今天是這一年第幾天嗎,掐指一算還是要算好久,呵呵還是讓計算機來做吧。這里的問題就是讓你來寫一個程序,輸入某年某月某日,判斷這一天是這一年的第幾天?
輸入格式:
輸入第一行是數據的組數n<100,下面n行是n組數據,每組數據由3個正整數組成,分別為年、月、日,我們保證每組數據都是有效的日期。
輸出格式:
輸出所輸入的日期是這一年的第幾天。
#include <stdio.h>
#include <stdlib.h>
int main()
{
? ? int a,b,c,n;
? ? scanf("%d",&n);
? ? while(n--)
? ? {
? ? ? ? scanf("%d%d%d",&a,&b,&c);
? ? ? ? int sum=0,f=1;
? ? ? ? switch(b)
? ? ? ? {
? ? ? ? ? ? case 1:sum=c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 2:sum=31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 3:sum=31+28+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 4:sum=59+31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 5:sum=90+30+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 6:sum=120+31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 7:sum=151+30+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 8:sum=181+31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 9:sum=212+31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 10:sum=243+30+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 11:sum=273+31+c;
? ? ? ? ? ? break;
? ? ? ? ? ? case 12:sum=304+30+c;
? ? ? ? ? ? break;
? ? ? ? }
? ? ? ? if(a%400==0||(a%4==0&&a%100!=0))
? ? ? ? ? ? ? ? f=0;
? ? ? ? if(f==0&&b>2)
? ? ? ? ? ? ? ? sum+=1;
? ? ? ? printf("%d\n",sum);
? ? }
? ? return 0;
}
?
總結
以上是生活随笔為你收集整理的山东理工大学一维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网lora无线数传模块应用案例:Lo
- 下一篇: 大数据实践总结分享