一組數據編程
這樣「掐頭去尾」,讓人怎麼做?
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d",&x);
計算y=f(x);
printf("%d\n",y);
}
Ⅱ 編程:給一維數組a輸入任意一組數據,然後在a[k]的位置插入一個數據,
題目要求是插入原有序列,並且存儲在數組中
所以在要插入的位置之後所有的元素都要後移一個位置——不能前移,因為已經到0了
你的錯誤在for循環內部一直比較a[i]和a[i+1],沒剛讀入的a[9]什麼事,一直到i=8了才會涉及到a[9],不過也就交換了8和9的位置而已,根本不算插入
以下程序可以正確編譯運行
void main()
{
int a[10]={0,1,3,4,5,6,7,8,9};
int i,t;
int found = 0; //是否已經插入的標志位
scanf("%d",&a[9]);
t= a[9];
for(i=0;i<9;i++)
{
if(a[i]>t && !found) //判斷是否為插入位置
{
t=a[i]; //插入數據並設置標志位
a[i]=a[9];
found = 1;
}
else if(found) //已經插入,之後數據全部後移1格
{
a[9] = a[i];
a[i] = t;
t = a[9];
}
}
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
Ⅲ 隨意給出一組數據,編寫程序將其排序。
數組的話,使用 Arrays.sort
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ⅳ 怎麼將一組數據歸一化到(0,1)之間,用matlab編程
很簡單,用函數mapminmax,文檔太長我就不翻譯了,只提醒幾個關鍵
1 默認的map范圍是[-1, 1],所以如果需要[0, 1],則按這樣的格式提供參數:
MappedData = mapminmax(OriginalData, 0, 1);
2 只按行歸一化,如果是矩陣,則每行各自歸一化,如果需要對整個矩陣歸一化,用如下方法:
FlattenedData = OriginalData(:)'; % 展開矩陣為一列,然後轉置為一行。
MappedFlattened = mapminmax(FlattenedData, 0, 1); % 歸一化。
MappedData = reshape(MappedFlattened, size(OriginalData)); % 還原為原始矩陣形式。此處不需轉置回去,因為reshape恰好是按列重新排序
文檔全文如下:
mapminmax
Process matrices by mapping row minimum and maximum values to [-1 1]
Syntax
[Y,PS] = mapminmax(YMIN,YMAX)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)
dx_dy = mapminmax('dx',X,Y,PS)
dx_dy = mapminmax('dx',X,[],PS)
name = mapminmax('name');
fp = mapminmax('pdefaults');
names = mapminmax('pnames');
remconst('pcheck',FP);
Description
mapminmax processes matrices by normalizing the minimum and maximum values of each row to [YMIN, YMAX].
mapminmax(X,YMIN,YMAX) takes X and optional parameters
X
N x Q matrix or a 1 x TS row cell array of N x Q matrices
YMIN
Minimum value for each row of Y (default is -1)
YMAX
Maximum value for each row of Y (default is +1)
and returns
Y
Each M x Q matrix (where M == N) (optional)
PS
Process settings that allow consistent processing of values
mapminmax(X,FP) takes parameters as a struct: FP.ymin, FP.ymax.
mapminmax('apply',X,PS) returns Y, given X and settings PS.
mapminmax('reverse',Y,PS) returns X, given Y and settings PS.
mapminmax('dx',X,Y,PS) returns the M x N x Q derivative of Y with respect to X.
mapminmax('dx',X,[],PS) returns the derivative, less efficiently.
mapminmax('name') returns the name of this process method.
mapminmax('pdefaults') returns the default process parameter structure.
mapminmax('pdesc') returns the process parameter descriptions.
mapminmax('pcheck',FP) throws an error if any parameter is illegal.
Examples
Here is how to format a matrix so that the minimum and maximum values of each row are mapped to default interval [-1,+1].
*
x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)
Next, apply the same processing settings to new values.
*
x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)
Reverse the processing of y1 to get x1 again.
*
x1_again = mapminmax('reverse',y1,PS)
Algorithm
It is assumed that X has only finite real values, and that the elements of each row are not all equal.
*
y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;
Ⅳ c語言編程,有一組數據,98,12,87,4,65,23,54,33,48,78,將其由小到大排序
#include<stdio.h>
//序列「98,12,87,4,65,23,54,33,48,78」
void QuickSort(int a[],int left,int right)
{
int i,j,temp,tp;
temp=a[left];//暫存基準數
i=left;//最左位置
j=right;//最右位置
if(left>right)//遞歸結束條件
return;
while(i!=j)//當i和j不重合時
{
while(a[j]>=temp && i<j) //從右往左尋找小於基準數的值
j--;
while(a[i]<=temp && i<j) //從左往右尋找大於基準數的值
i++;
//找到了且i<j則交換數值
if(i<j)
{
tp=a[i];
a[i]=a[j];
a[j]=tp;
}
}
//將基準數和i、j的相遇數值進行交換
a[left]=a[i];
a[i]=temp;
//應用遞歸對此時基準數的左邊進行快速排序
QuickSort(a,left,i-1);
//應用遞歸對此時基準數的右邊進行快速排序
QuickSort(a,i+1,right);
}
void main()
{
int a[10],i;
printf("please input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("The array is: "); //輸入序列「98,12,87,4,65,23,54,33,48,78」
for(i=0;i<10;i++)
printf("%-4d",a[i]);
QuickSort(a,0,9); //調用快速排序函數
printf(" After sort the array is: ");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
printf(" ");
}
(5)一組數據編程擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。
Ⅵ 用Excel實現一組數據的組合
我有個自己編寫的全組合工具,可以幫你完成C取n的工作,不過有多少列,你就要運行多少次,當然實際數據需要你自行填寫:
Ⅶ 有一組數據,數據可以重復使用,編程實現數據相加的結果等於給定的值,並輸出這些數據
.版本2
.程序集窗口程序集1
.程序集變數數據組,整數型,,"0"
.程序集變數給定值,整數型
.程序集變數計次,整數型
.程序集變數計數,整數型
.子程序__啟動窗口_創建完畢
.計次循環首(50,計次)
加入成員(數據組,計次)
.計次循環尾()
編輯框2.是否允許多行=真
編輯框2.滾動條=2
.子程序_按鈕1_被單擊
給定值=到數值(編輯框1.內容)
.如果真(給定值<3或給定值>99)
返回()
.如果真結束
編輯框2.內容=「」
.計次循環首(50,計次)
.變數循環首(計次+1,50,1,計數)
.如果真(數據組[計次]+數據組[計數]=給定值)
編輯框2.加入文本(到文本(數據組[計次]),「+」,到文本(數據組[計數]),「=」,編輯框1.內容,#換行符)
.如果真結束
.變數循環尾()
.計次循環尾()
-------------------這是簡單的兩位相加,可以擴展為多位相加.
Ⅷ 編程查找一組數據中的最大最小數
data segment
count equ 10
number db count p(?)
max db ?
min db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,count
dec cx
mov al,number[si]
mov max,al
mov min,al
next:
inc si
mov al,number[si]
cmp al,max
jna bdy
mov max,al
jnz next1
bdy:
cmp al,min
jnb next1
mov min,al
next1:
loop next
mov ah,4ch
int 21h
code ends
end start
Ⅸ 急!!!編程求一組數據的大小排序
冒泡法排序#include<stdio.h>
#include<string.h>/*string包含gets,puts,strlen函數*/
void main()
{
char n[500];/*定義具有五百個字元的數組n,可以根據字元串的長度適當調整*/
int i,j,x,temp;
printf("輸入n個字元串:");/*屏幕輸出"輸入n個字元串:"*/
gets(n);/*鍵盤敲入數組n*/
x=strlen(n);/*將n數組的字元長度賦給x*/
for(i=0;i<=x-1-1;i++)/*冒泡法排序:進行數組的ascii碼排序,共需進行x-1-1組排序,
0到x-1為數組n的長度x,故只需進行x-1-1組排序*/
for(j=0;j<x-1-i;j++)/*第j組排序要排序為j<x-1-i次*/
{
if(n[j]>n[j+1])/*如果這個數比下面一個數大,則這兩個數互換*/
{
temp=n[j];
n[j]=n[j+1];
n[j+1]=temp;
}
}
puts(n);/*輸出排序後的字元數組n*/
}
Ⅹ c語言編程利用數組的知識求一組數據的最小值
用C11的變長數組,但是最終還是需要確定數組a裡面的n值,變長數組最主要是用來做數值計算的。我覺得你提出的這個問題其實沒有多大的實際意義,可以考慮用鏈表。