2 回答
TA貢獻1794條經驗 獲得超8個贊
#include <stdio.h>#define MAX_SIZE 1000int getarray(int array[]){ int i = 0; while(scanf("%d", &array[i]) == 1 && array[i++]) ; return 0;}int insert(int array[], int key, int vol){ int i, j; for(i = 0; i < vol; i ++) if(!array[i]) break; if(i == vol) return -1;//full for(j = 0; j < i; j ++) if(array[j] == key) return -2; //already exist else if(array[j] > key) break; return j;}int result(int flag){ if(flag == -1) printf("The array if full!\n"); else if(flag == -2) printf("The key is already in this array!\n"); else printf("The key is inserted in position %d\n", flag); return 0;}int main() { int array[MAX_SIZE], cases, i, key; scanf("%d", &cases); for(i = 1; i <= cases; i++) { getarray(array); scanf("%d", &key); result(insert(array, key, MAX_SIZE - 1)); } return 0; }
TA貢獻1921條經驗 獲得超9個贊
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 1001
int getarray(int array[])
{
int j=0;
scanf("%d",&array[j]);
while (array[j]!=0)
{
j++;
scanf("%d",&array[j]);
}
return 0;
}
int insert(int array[],int key,int vol)
{
int i;
for(i=0; i<=vol; i++)
{
if(array[vol]==0)
return -1;
else
{
if(key==array[i])
return -2;
else
{
if(key<array[0])
return 0;
if(key>array[i]&&key<array[i+1])
return i+1;
if(key>array[i]&&array[i+1]==0)
return i+1;
}
}
}
}
void result(int flag)
{
if (flag==-1)
printf("The array if full!");
else if (flag==-2)
printf("The key is already in this array!\n");
else
printf("The key is inserted in position %d.\n",flag);
}
int main()
{
int array[MAX_SIZE], cases, i, key;
scanf("%d", &cases);
for(i = 1; i <= cases; i++)
{
getarray(array);
scanf("%d", &key);
result(insert(array, key, MAX_SIZE - 1));
}
return 0;
}
- 2 回答
- 0 關注
- 217 瀏覽
添加回答
舉報
