我試圖編寫一個c程序時遇到問題。程序必須將整數存儲在數組中(從鍵盤讀取)。例如,如果輸入:3 2 0 5 5 5 8 9,輸出應爲:如何在C中按打字順序打印整數 - 增加,減少或均勻地打印
3 2 0 - 遞減 5 5 5 - 均勻 8 9 - 越來越多
對我來說問題是,我不能寫一個能夠在所有情況下工作的算法。 我試圖用另一個數組「標記」元素(使用相同的索引,爲每個整數保存一個值1-增加,-1減少和0均勻),但這部分工作。 你有其他想法嗎? 感謝提前:)
#include <stdio.h>
#include <stdlib.h>
main() {
int array[100];
int flag[100];
int num, i;
printf("Enter how many numbers you want to type: ");
scanf("%d",&num);
for(i=0;i<num;i++) {
scanf("%d",&array[i]);
}
for(i=0;i<num;i++){
if((array[i]<array[i+1])) {
flag[i]=flag[i+1]=1;
}
if(array[i]>array[i+1]) {
flag[i]=flag[i+1]=-1;
}
}
for(i=0;i<num;i++) {
if(array[i]==array[i+1]) {
flag[i]=flag[i+1]=0;
}
}
for(i=0;i<num;i++){
printf("%d ",flag[i]);
}
printf("\n");
for(i=0;i<num;i++) {
if(flag[i]==1) {
do{
if(flag[i]==1){
printf("%d ",array[i]);
i++;
}
}while(flag[i]==1);
printf(" - increasing\n");
}
if(flag[i]==0) {
do{
if(flag[i]==0){
printf("%d ",array[i]);
i++;
}
}while(flag[i]==0);
printf(" - evenly\n");
}
if(flag[i]==-1) {
do{
if(flag[i]==-1) {
printf("%d ",array[i]);
i++;
}
}while(flag[i]==-1);
printf(" - decreasing\n");
}
}
system("pause");
return 0;
}
你可以添加更多的例子?如果用戶輸入'4 2 5 8 0 9 1 6 6',你想要什麼? – vidit
是的,並且應該在打字的順序由用戶 – user2280550
4 2被劃分 - 遞減 5 8 - 增加 0 9 - 增加 1 6 - 增加 6 - 我不知道, – user2280550