Вывод на экран символов - C (СИ)
Формулировка задачи:
Может кто объяснить, как вывести не цифрами вывод а символами?
#include <stdio.h>
#include <string.h>
const int ROZMIAR=4;
char* nieposortowane[]={"basia", "zosia", "ala", "genowefa"};
// funkcja porownujace dwa elementy typu integer
int porownaj(char a[], char b[])
{
return a>b;
}
int porownaj2(char a[], char b[])
{
return a<b;
}
// sortowanie babelkowe (ang. bubble sort)
void babelki(char* nieposortowane[], int N)
{
int zamienione, i, tmp;
do
{
zamienione=0; // jezeli nie bedzie zadnej zamiany, to tablica jest juz uporzadkowana
for(i=0;i<N-1;i++)
if(porownaj(nieposortowane[i], nieposortowane[i+1]))
{
// zamiana dwoch sasiednich elementow
tmp=nieposortowane[i];
nieposortowane[i]=nieposortowane[i+1];
nieposortowane[i+1]=tmp;
// tablica jeszcze nie jest uporzadkowana
zamienione=1;
}
}
while(zamienione);
}
// sortowanie przez wstawianie (ang. insertion sort)
void wstawianie(char* nieposortowane[], int N)
{
int i, j, tmp;
for(i=1; i<N; i++)
{
// elementy o indeksach 0 do i-1 sa juz uporzadkowane
tmp=nieposortowane[i]; // wartosc i-tego elementu
// przesuwanie elementow tablica[j]<=tmp
j=i-1;
while(j>=0 && porownaj(nieposortowane[j],tmp))
{
nieposortowane[j+1]=nieposortowane[j];
j--;
}
// wstawienie elementu (potrzebne jest dodanie 1 bo j bylo dekrementowane w linii 48)
nieposortowane[j+1]=tmp;
}
}
void babelki2(char* nieposortowane[], int N)
{
int zamienione, i, tmp;
do
{
zamienione=0; // jezeli nie bedzie zadnej zamiany, to tablica jest juz uporzadkowana
for(i=0;i<N-1;i++)
if(porownaj2(nieposortowane[i], nieposortowane[i+1]))
{
// zamiana dwoch sasiednich elementow
tmp=nieposortowane[i];
nieposortowane[i]=nieposortowane[i+1];
nieposortowane[i+1]=tmp;
// tablica jeszcze nie jest uporzadkowana
zamienione=1;
}
}
while(zamienione);
}
// sortowanie przez wstawianie (ang. insertion sort)
void wstawianie2(char* nieposortowane[], int N)
{
int i, j, tmp;
for(i=1; i<N; i++)
{
// elementy o indeksach 0 do i-1 sa juz uporzadkowane
tmp=nieposortowane[i]; // wartosc i-tego elementu
// przesuwanie elementow tablica[j]<=tmp
j=i-1;
while(j>=0 && porownaj2(nieposortowane[j],tmp))
{
nieposortowane[j+1]=nieposortowane[j];
j--;
}
// wstawienie elementu (potrzebne jest dodanie 1 bo j bylo dekrementowane w linii 48)
nieposortowane[j+1]=tmp;
}
}
// funkcja wypisujac N elementow z tablicy int
void wypisz(char* nieposortowane[], int N)
{
int i;
for(i=0;i<N;i++)
printf("%d\n", *(nieposortowane+i));
}
// funkcja kopiujace N elementw typu int
void kopiuj(int* skad, int* dokad, int N)
{
int i;
for(i=0;i<N; i++)
*(dokad++)=*(skad++);
}
int main()
{
int nieposortowane[ROZMIAR];
int porzadek;
printf("Wprowadz liczbe >=0(Porzadek rosnacy), lub <0(porzadek malejacy)");
scanf("%d", &porzadek);
if(porzadek>=0){
printf("Przed sortowaniem: \n");
wypisz(nieposortowane, ROZMIAR);
kopiuj(nieposortowane, nieposortowane, ROZMIAR);
babelki(nieposortowane, ROZMIAR);
printf("Po sortowaniu babelkowym: \n");
wypisz(nieposortowane, ROZMIAR);
kopiuj(nieposortowane, nieposortowane, ROZMIAR);
wstawianie(nieposortowane, ROZMIAR);
printf("Po sortowaniu przez wstawianie: \n");
wypisz(nieposortowane, ROZMIAR);
}
else {
printf("Przed sortowaniem: \n");
wypisz(nieposortowane, ROZMIAR);
kopiuj(nieposortowane, nieposortowane, ROZMIAR);
babelki2(nieposortowane, ROZMIAR);
printf("Po sortowaniu babelkowym: \n");
wypisz(nieposortowane, ROZMIAR);
kopiuj(nieposortowane, nieposortowane, ROZMIAR);
wstawianie2(nieposortowane, ROZMIAR);
printf("Po sortowaniu przez wstawianie: \n");
wypisz(nieposortowane, ROZMIAR);
}
return 0;
}Решение задачи: «Вывод на экран символов»
textual
Листинг программы
printf("%d\n", *(nieposortowane+i))
Объяснение кода листинга программы
Код представлен одним предложением и выполняет следующие действия:
- Выполняет операцию разыменования (*) на указателе nieposortowane.
- Прибавляет значение i к результату предыдущей операции.
- Использует функцию printf для вывода полученного значения на экран.
- Выводит символ новой строки (\n) для перехода на новую строку. Список действий в виде нумерованного списка:
- Выполняется операция разыменования на указателе nieposortowane.
- Прибавляется значение i к результату предыдущей операции.
- Выводится полученное значение на экран с помощью функции printf.
- Выводится символ новой строки для перехода на новую строку.